diff --git a/MAINTAINERS b/MAINTAINERS index d0ed735994a5..677ef41cb012 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -3122,6 +3122,7 @@ F: arch/arm/mach-bcm/ BROADCOM BCM2835 ARM ARCHITECTURE M: Eric Anholt M: Stefan Wahren +L: bcm-kernel-feedback-list@broadcom.com L: linux-rpi-kernel@lists.infradead.org (moderated for non-subscribers) L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) T: git git://github.com/anholt/linux @@ -3151,6 +3152,7 @@ F: arch/arm/boot/dts/bcm953012* BROADCOM BCM53573 ARM ARCHITECTURE M: Rafał Miłecki +L: bcm-kernel-feedback-list@broadcom.com L: linux-arm-kernel@lists.infradead.org S: Maintained F: arch/arm/boot/dts/bcm53573* @@ -3940,6 +3942,14 @@ M: Miguel Ojeda S: Maintained F: .clang-format +CLANG/LLVM BUILD SUPPORT +L: clang-built-linux@googlegroups.com +W: https://clangbuiltlinux.github.io/ +B: https://github.com/ClangBuiltLinux/linux/issues +C: irc://chat.freenode.net/clangbuiltlinux +S: Supported +K: \b(?i:clang|llvm)\b + CLEANCACHE API M: Konrad Rzeszutek Wilk L: linux-kernel@vger.kernel.org @@ -7800,7 +7810,7 @@ INGENIC JZ4780 NAND DRIVER M: Harvey Hunt L: linux-mtd@lists.infradead.org S: Maintained -F: drivers/mtd/nand/raw/jz4780_* +F: drivers/mtd/nand/raw/ingenic/ INOTIFY M: Jan Kara @@ -15493,6 +15503,7 @@ F: drivers/dma/tegra* TEGRA I2C DRIVER M: Laxman Dewangan +R: Dmitry Osipenko S: Supported F: drivers/i2c/busses/i2c-tegra.c diff --git a/Makefile b/Makefile index 41176d8e1a5b..bdec9b6ae2f0 100644 --- a/Makefile +++ b/Makefile @@ -2,8 +2,8 @@ VERSION = 5 PATCHLEVEL = 2 SUBLEVEL = 0 -EXTRAVERSION = -rc6 -NAME = Golden Lions +EXTRAVERSION = +NAME = Bobtail Squid # *DOCUMENTATION* # To see a list of typical targets execute "make help" diff --git a/abi_gki_aarch64.xml b/abi_gki_aarch64.xml index c85340d6c65c..a81a2081737c 100644 --- a/abi_gki_aarch64.xml +++ b/abi_gki_aarch64.xml @@ -7237,6 +7237,7 @@ + @@ -10466,7 +10467,7 @@ - + @@ -12166,77 +12167,15 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - + + @@ -12262,20 +12201,20 @@ - - + + - + - - + + - + @@ -12284,51 +12223,51 @@ - + - + - + - + - + - + - + - + - - - + + + - + - + - + - + - + @@ -12343,63 +12282,63 @@ - + - - + + - + - + - + - + - + - + - + - + - - - + + + - + - + - - - - - + + + + + - + @@ -12414,11 +12353,11 @@ - - - - - + + + + + @@ -12426,32 +12365,32 @@ - + - + - + - + - + - + - + - - + + - + @@ -12460,34 +12399,34 @@ - + - - + + - + - - + + - - + + - + - + - - + + @@ -12514,71 +12453,71 @@ - + - - - + + + - + - - - - - - - + + + + + + + - + - + - + - + - + - + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - + - - + + - + @@ -12587,53 +12526,53 @@ - - - - - - + + + + + + - + - - - + + + - + - - - + + + - + - + - + - + - + - + @@ -12642,23 +12581,23 @@ - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - + @@ -12669,15 +12608,15 @@ - + - + - + @@ -12688,30 +12627,30 @@ - + - + - + - + - + - + - + - + @@ -12719,49 +12658,49 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -12771,7 +12710,7 @@ - + @@ -12784,51 +12723,51 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + @@ -12836,60 +12775,60 @@ - - + + - + - + - + - + - + - + - + - + - - - + + + - + - + - + - + - + - - + + - + @@ -12899,19 +12838,19 @@ - + - + - + - + @@ -12919,7 +12858,7 @@ - + @@ -12930,8 +12869,8 @@ - - + + @@ -12958,25 +12897,25 @@ - + - + - - - - - - - - - - - + + + + + + + + + + + - - + + @@ -12987,23 +12926,23 @@ - + - + - - + + - + @@ -13012,22 +12951,22 @@ - - - - - - + + + + + + - - - - - - + + + + + + - + @@ -13035,15 +12974,15 @@ - + - + - + @@ -13064,13 +13003,13 @@ - + - + - + @@ -13111,7 +13050,7 @@ - + @@ -13119,12 +13058,12 @@ - + - + - + @@ -13133,22 +13072,22 @@ - + - - + + - - + + - - + + - + @@ -13159,37 +13098,37 @@ - + - + - - + + - - + + - + - + - + - + - + - + - + @@ -13197,67 +13136,67 @@ - - - - - - - + + + + + + + - + - - + + - + - + - + - + - + - + - + - + - + - + @@ -13280,9 +13219,9 @@ - + - + @@ -13297,7 +13236,7 @@ - + @@ -13308,20 +13247,20 @@ - + - + - + - + - + - + @@ -13330,33 +13269,33 @@ - + - + - + - + - + - - + + - + - + @@ -13478,10 +13417,10 @@ - + - + @@ -13640,13 +13579,13 @@ - + - + - + @@ -13661,10 +13600,10 @@ - + - + @@ -13745,7 +13684,7 @@ - + @@ -13820,10 +13759,10 @@ - + - + @@ -13892,7 +13831,7 @@ - + @@ -13904,11 +13843,11 @@ - + - + - + @@ -13917,7 +13856,7 @@ - + @@ -13932,7 +13871,7 @@ - + @@ -13950,7 +13889,7 @@ - + @@ -14019,22 +13958,22 @@ - + - + - + - + - + @@ -14043,38 +13982,38 @@ - + - + - + - + - + - + - + - + - + @@ -14083,7 +14022,7 @@ - + @@ -14098,7 +14037,7 @@ - + @@ -14116,7 +14055,7 @@ - + @@ -14185,22 +14124,22 @@ - + - + - + - + - + @@ -14209,32 +14148,32 @@ - + - + - + - + - + - + - + - + @@ -14248,10 +14187,10 @@ - + - + @@ -14260,31 +14199,31 @@ - + - + - + - + - + - + @@ -14293,27 +14232,27 @@ - + - - - + + + - + - - - + + + - + - + @@ -14321,56 +14260,56 @@ - - - + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - + + + + + - + @@ -14385,64 +14324,64 @@ - + - + - + - + - + - + - + - + - + - + - - - - + + + + - + - + - + - - - - - + + + + + - + - - + + - + @@ -14461,7 +14400,7 @@ - + @@ -14470,18 +14409,18 @@ - + - + - + - + - + @@ -14489,15 +14428,15 @@ - + - + - + @@ -14505,7 +14444,7 @@ - + @@ -14521,7 +14460,7 @@ - + @@ -14534,18 +14473,18 @@ - + - + - + @@ -14553,9 +14492,9 @@ - + - + @@ -14566,18 +14505,18 @@ - + - + - + @@ -14586,12 +14525,12 @@ - + - + - + @@ -14603,7 +14542,7 @@ - + @@ -14615,13 +14554,13 @@ - + - + @@ -14633,11 +14572,11 @@ - + - + - + @@ -14645,28 +14584,28 @@ - + - + - + - + - + - + - + - + @@ -14674,18 +14613,18 @@ - + - + - + - + - + @@ -14693,7 +14632,7 @@ - + @@ -14702,25 +14641,25 @@ - + - + - + - + - + - + @@ -14729,22 +14668,22 @@ - + - + - + - + - + - + @@ -14759,13 +14698,13 @@ - + - + @@ -14774,13 +14713,13 @@ - + - + @@ -14813,10 +14752,10 @@ - + - + @@ -14828,109 +14767,109 @@ - + - + - - + + - + - - - - - - + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -14944,28 +14883,28 @@ - + - + - + - + - + - + - + - + @@ -14974,7 +14913,7 @@ - + @@ -14983,25 +14922,25 @@ - + - + - + - + - - - - + + + + - + - + @@ -15009,21 +14948,21 @@ - + - + - + - + - + @@ -15031,38 +14970,38 @@ - - - + + + - - + + - + - + - + - + - + - + - + @@ -15070,87 +15009,87 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + + + + + - - - - + + + + + - - - - - - - - + + + - + - + - - - - - - - - - - - + + + + + + + + + + + - + @@ -15159,22 +15098,22 @@ - + - + - + - + - + - + @@ -15186,10 +15125,10 @@ - + - + @@ -15201,37 +15140,37 @@ - + - + - + - + - + - + - + - + @@ -15243,19 +15182,19 @@ - + - + - + - + @@ -15264,13 +15203,13 @@ - + - + @@ -15282,25 +15221,25 @@ - + - + - + - + - + - + @@ -15321,9 +15260,9 @@ - - - + + + @@ -15331,73 +15270,73 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - + + + + + + + + + + + - + - + - + - + @@ -15406,13 +15345,13 @@ - + - + - + @@ -15421,7 +15360,7 @@ - + @@ -15430,19 +15369,19 @@ - + - + - + - + @@ -15451,19 +15390,19 @@ - + - + - + - + - + @@ -15475,22 +15414,22 @@ - + - + - + - + - + - + @@ -15502,28 +15441,28 @@ - + - + - + - + - + @@ -15532,7 +15471,7 @@ - + @@ -15541,13 +15480,13 @@ - + - + @@ -15555,28 +15494,28 @@ - - + + - + - + - + - + - + - + @@ -15584,16 +15523,16 @@ - + - + - + - + @@ -15614,8 +15553,8 @@ - - + + @@ -15623,134 +15562,134 @@ - + - + - + - + - + - + - - - - - - + + + + + + - + - + - + - - + + - - + + - - + + - - - - - - + + + + + + - + - + - + - + - + - + - + - - + + - + - + - - - + + + - + - - - - - - - + + + + + + + - + - + - + - + - - + + - + @@ -15759,18 +15698,18 @@ - + - + - + - + - + @@ -15780,22 +15719,22 @@ - + - + - + - + - + @@ -15804,22 +15743,22 @@ - + - + - + - + - + @@ -15837,13 +15776,13 @@ - + - + - + @@ -15851,119 +15790,119 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - + + + + + + + - + - + - + @@ -15981,16 +15920,16 @@ - - - + + + - + - + @@ -16004,34 +15943,34 @@ - + - + - + - + - + - + - + - + - - - + + + @@ -16039,17 +15978,17 @@ - - - - - - + + + + + + - + @@ -16079,22 +16018,22 @@ - + - + - + - + - + - + @@ -16102,11 +16041,11 @@ - - - + + + - + @@ -16115,65 +16054,65 @@ - + - + - + - + - + - + - + - + - + - + - + - + - - + + - - - - + + + + - + @@ -16182,7 +16121,7 @@ - + @@ -16191,28 +16130,28 @@ - + - + - + - + - + - - - - - - - - + + + + + + + + @@ -16235,13 +16174,13 @@ - + - + - + @@ -16250,47 +16189,47 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -16298,31 +16237,31 @@ - + - + - + - + - + - + - + @@ -16331,18 +16270,18 @@ - + - + - - - + + + @@ -16350,7 +16289,7 @@ - + @@ -16358,7 +16297,7 @@ - + @@ -16367,14 +16306,14 @@ - - - - - - + + + + + + - + @@ -16383,67 +16322,67 @@ - - - + + + - + - + - + - + - + - + - + - + - + - - - + + + - + - + - + - - + + + + + - - - - - - + + + @@ -16466,8 +16405,8 @@ - - + + @@ -16475,41 +16414,41 @@ - - - - + + + + - + - + - + + + + + + - - - - - - - - - - - - - - + + + + + + + + + - + - + @@ -16518,7 +16457,7 @@ - + @@ -16533,19 +16472,19 @@ - + - + - + - + - + @@ -16554,100 +16493,100 @@ - + - + - + - - + + - + - + - - - - - + + + + + - + - + - + - + - + - + - + - + - + + + + + - - - - - - - - - + + + + + - + - + - + - + - + - - - + + + - + - - - + + + @@ -16658,18 +16597,18 @@ - - - - - - - - - - + + + + + + + + + + - + @@ -16684,10 +16623,10 @@ - + - + @@ -16696,47 +16635,47 @@ - + - + - + - + - + - + - + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + @@ -16745,16 +16684,16 @@ - - + + - + - + @@ -16766,7 +16705,7 @@ - + @@ -16774,7 +16713,7 @@ - + @@ -16782,96 +16721,96 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + @@ -16880,7 +16819,7 @@ - + @@ -16889,29 +16828,29 @@ - + - + - + - + - + - + - + - + @@ -16919,18 +16858,18 @@ - + - + - + - + - + @@ -16942,21 +16881,21 @@ - - + + - + - + - + - - - + + + @@ -16964,35 +16903,35 @@ - + - - - - + + + + - + - + - - - + + + - + - + - + - + @@ -17000,41 +16939,41 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -17046,7 +16985,7 @@ - + @@ -17057,16 +16996,16 @@ - + - + - + - + @@ -17075,64 +17014,64 @@ - - - - - + + + + + - + - - + + - + - + - + - + - + - + - - - - - - - - - + + + + + + + + + - + - + - + - + @@ -17141,20 +17080,20 @@ - + - - + + - - + + - + @@ -17162,18 +17101,18 @@ - + - - + + - - - - + + + + @@ -17190,68 +17129,68 @@ - + - - - - - - - - - - - + + + + + + + + + + + - + - + - + - + - + - + - + - - - + + + + + + + - - - - - - - - - + + + + + - + - + - + - + @@ -17262,7 +17201,7 @@ - + @@ -17277,37 +17216,37 @@ - + - + - + - + - - + + - + - + - + - + @@ -17315,35 +17254,35 @@ - + - + - + - + - + - + - + - + @@ -17352,81 +17291,81 @@ - + - + - + - + - + - + - + - + - + - + - + + + + + - - - - - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -17435,24 +17374,24 @@ - + - + - + - + - + - + - + @@ -17470,7 +17409,7 @@ - + @@ -17482,34 +17421,24 @@ - + - - - + + + + + + + - - - - - - - - - + + + + + - - - - - - - - - - - + @@ -17519,13 +17448,13 @@ - + - + @@ -17533,38 +17462,38 @@ - - - - - + + + + + - + - + - + - + - + - + - - - - - - - - + + + + + + + + @@ -17572,21 +17501,21 @@ - - - - - + + + + + - + - + - + @@ -17594,70 +17523,70 @@ - + - + - + - + - + - + - + - + - + - - - - - - - - - - - + + + + + + + + + + + - + - + - + - + - - - + + + @@ -17665,20 +17594,20 @@ - + - + - - - - - + + + + + @@ -17686,9 +17615,9 @@ - - - + + + @@ -17705,39 +17634,39 @@ - + - + - + - + - + - + - - + + - + - + - + - + - + @@ -17748,20 +17677,20 @@ - + - + - + - + - - - + + + @@ -17775,24 +17704,24 @@ - - + + - + - + - + - + - + @@ -17801,32 +17730,32 @@ - + - + - + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - + @@ -17838,30 +17767,30 @@ - + - + - + - + - + - + - - + + @@ -17872,122 +17801,122 @@ - - - - - - - - - - - - + + + + + + + + + + + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - + @@ -18008,101 +17937,101 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - + + + - + - + - + - + - + - + - + - + - + - + - - - - - - + + + + + + @@ -18119,95 +18048,95 @@ - - - - - + + + + + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - + + + + + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - - - + + + @@ -18233,9 +18162,9 @@ - - - + + + @@ -18285,18 +18214,18 @@ - - - - + + + + - + - + @@ -18322,49 +18251,49 @@ - + - + - + - - + + - - - - - + + + + + + + + + + + + - - - - - - - - - + + - + - + - + - + - + @@ -18385,7 +18314,7 @@ - + @@ -18394,7 +18323,7 @@ - + @@ -18403,7 +18332,7 @@ - + @@ -18424,38 +18353,38 @@ - - - - - - - - + + + + + + + + - + - + - + - + - - + + - + - + @@ -18473,97 +18402,97 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - + + + - - + + - - + + - + - + - + - + - + - + - + - + - + @@ -18571,7 +18500,7 @@ - + @@ -18580,49 +18509,49 @@ - + - + - + - - + + - - + + - - + + - + - + - - + + - - + + - + - + @@ -18640,17 +18569,17 @@ - + - - - - - - + + + + + + - + @@ -18662,21 +18591,21 @@ - + - + - + - + @@ -18684,114 +18613,114 @@ - + - + - + - - + + - - - + + + - + - - + + - + - + - - + + - + - - - - - - - - - - - - - + + + + + + + + + + + + + - + - + - + - + - + - + - + - + - + - - - + + + - + - + @@ -18803,40 +18732,40 @@ - + - + - + - + - + - + - + - + - - - - + + + + @@ -18847,10 +18776,10 @@ - + - + @@ -18861,46 +18790,46 @@ - + - + - - + + - - + + - - - - - - - - - - + + + + + + + + + + - + - - - - + + + + @@ -18914,122 +18843,122 @@ - - - - - - + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - + - + - + @@ -19038,9 +18967,9 @@ - - - + + + @@ -19051,58 +18980,58 @@ - - + + - + - + - + - + - + - + - + - + - + - + - - - + + + - + - + @@ -19114,13 +19043,13 @@ - - + + - + - + @@ -19132,19 +19061,19 @@ - + - + - + - - - - + + + + @@ -19152,10 +19081,10 @@ - + - + @@ -19164,239 +19093,239 @@ - - - - - + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - + + + + - + - + - + - + - + - - - - - + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - + + + + + + @@ -19404,75 +19333,75 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -19481,92 +19410,92 @@ - + - + - + - + - + - + - + - + - + - + - + - + - - + + - - - - - - - + + + + + + + - - - - - - - - - - - - + + + + + + + + + + + + - + - + - + - + - + - + @@ -19608,10 +19537,10 @@ - + - + @@ -19635,13 +19564,13 @@ - + - + - + @@ -19686,10 +19615,10 @@ - + - + @@ -19710,16 +19639,16 @@ - + - + - + - + @@ -19730,10 +19659,10 @@ - + - + @@ -19775,26 +19704,26 @@ - - - + + + - + - + - - - - + + + + @@ -19802,14 +19731,14 @@ - + - + @@ -19820,96 +19749,96 @@ - - - - - + + + + + - + - + - + - + - + - - - - - - - + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - + + + + + - + @@ -19918,7 +19847,7 @@ - + @@ -19929,144 +19858,144 @@ - + - - - - + + + + + + + + + - - - - - - - - + + + - + - + - - - - - - + + + + + + - - - + + + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - + + + + + + + + + + + + - - - - - - + - + - + - + - - - + + + @@ -20074,113 +20003,113 @@ - + - - - - - + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - + + + + + + + + + + - - - - - - + + + + + + - - - - - - - - + + + + + + + + - - + + - + - + - + - - - + + + @@ -20191,66 +20120,66 @@ - - + + - + - + - + - + - - - - - + + + + + - + - - + + - - + + - + - + - + - + - + - + - + - + @@ -20258,7 +20187,7 @@ - + @@ -20267,13 +20196,13 @@ - - + + - + @@ -20285,34 +20214,34 @@ - + - + - + - + - + - + - + - + @@ -20324,8 +20253,8 @@ - - + + @@ -20351,7 +20280,7 @@ - + @@ -20360,37 +20289,37 @@ - + - + - + - + - + - + - + - + - + @@ -20408,73 +20337,73 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - + + + + + + + + - + @@ -20483,199 +20412,199 @@ - + - - - + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - - + + - + - + - - + + - - - + + + - + - - + + - - + + - + - - + + - - + + - + - - + + - - + + - + - - + + - - + + - + - - + + - - + + - + - - + + - + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -20684,55 +20613,55 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -20753,7 +20682,7 @@ - + @@ -20936,10 +20865,10 @@ - + - + @@ -20948,7 +20877,7 @@ - + @@ -20957,10 +20886,10 @@ - + - + @@ -20993,25 +20922,25 @@ - + - + - + - + @@ -21020,21 +20949,21 @@ - + - - - - - - - - - - - - + + + + + + + + + + + + @@ -21048,47 +20977,47 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -21100,10 +21029,10 @@ - + - + @@ -21121,32 +21050,32 @@ - + - + - + - - + + - + - + - + - + - + @@ -21155,75 +21084,75 @@ - + - - - + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -21231,7 +21160,7 @@ - + @@ -21241,9 +21170,9 @@ - + - + @@ -21251,17 +21180,17 @@ - + - + - + - + @@ -21271,7 +21200,7 @@ - + @@ -21281,9 +21210,9 @@ - + - + @@ -21291,9 +21220,9 @@ - + - + @@ -21301,10 +21230,10 @@ - + - + @@ -21325,7 +21254,7 @@ - + @@ -21349,10 +21278,10 @@ - + - + @@ -21394,7 +21323,7 @@ - + @@ -21448,7 +21377,7 @@ - + @@ -21466,7 +21395,7 @@ - + @@ -21478,19 +21407,19 @@ - + - + - + - + - + @@ -21499,12 +21428,12 @@ - + - + - + @@ -21513,52 +21442,52 @@ - + - + - + - + - - + + - + - - + + - + - + - + - - + + - - + + - - + + @@ -21566,38 +21495,38 @@ - - - + + + - + - + - - + + - - + + - - - - - - + + + + + + @@ -21620,29 +21549,29 @@ - + - + - + - - - - + + + + - + - + - + @@ -21651,13 +21580,13 @@ - + - + @@ -21669,27 +21598,27 @@ - - - - - - - - - - + + + + + + + + + + - + - + - + @@ -21697,118 +21626,118 @@ - + - - + + - - + + - + - + - - - - - - - - + + + + + + + + - + - + - - + + - - - + + + - + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -21826,31 +21755,31 @@ - + - + - + - + - + - + - + - + - + @@ -21859,36 +21788,36 @@ - + - + - + - + - + - + - + - + - + - + @@ -21942,7 +21871,7 @@ - + @@ -21984,17 +21913,17 @@ - - - - - - - - - - - + + + + + + + + + + + @@ -22002,75 +21931,75 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - + + + + + + + + + + + + + - - - - - - - - - - - + + + + + @@ -22081,15 +22010,15 @@ - + - - - - + + + + - + @@ -22098,30 +22027,30 @@ - + - + - + - + - + - + - + - + - + @@ -22130,32 +22059,32 @@ - - - - - - + + + + + + - - + + - - + + - - + + - - + + - + - + @@ -22165,11 +22094,11 @@ - - + + - + @@ -22177,7 +22106,7 @@ - + @@ -22186,7 +22115,7 @@ - + @@ -22207,63 +22136,63 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - + + + + @@ -22301,45 +22230,45 @@ - - - - - - + + + + + + - + - + - + - + - + - + - + - + - + - + - + @@ -22352,72 +22281,72 @@ - - + + - + - + - - + + - + - + - + - - + + - + - + - + - + - + - + - - - - - + + + + + - + - + - + @@ -22426,40 +22355,40 @@ - + - + - + - + - + - + - + - + - + @@ -22474,13 +22403,13 @@ - + - + - + @@ -22493,13 +22422,13 @@ - - + + - + - + @@ -22518,21 +22447,21 @@ - - + + - - + + - + - + - + @@ -22547,8 +22476,8 @@ - - + + @@ -22562,7 +22491,7 @@ - + @@ -22571,7 +22500,7 @@ - + @@ -22607,10 +22536,10 @@ - + - + @@ -22619,7 +22548,7 @@ - + @@ -22628,13 +22557,13 @@ - + - + - + @@ -22706,34 +22635,34 @@ - + - + - + - + - + - + - + @@ -22742,13 +22671,13 @@ - - + + - + - + @@ -22757,7 +22686,7 @@ - + @@ -22769,77 +22698,77 @@ - + - - - - - + + + + + - + - + - - + + - - - - - - + + + + + + - + - + - + - + - + - + - + - - - - - - + + + + + + - - + + - + @@ -22862,23 +22791,23 @@ - + - + - + - + - + - + - + @@ -22889,46 +22818,46 @@ - + - + - - + + - + - - + + - + - + - + - + - + - - - + + + - + @@ -22937,7 +22866,7 @@ - + @@ -22951,11 +22880,11 @@ - + - + - + @@ -22965,39 +22894,39 @@ - + - + - + - + - + - + - + - + @@ -23007,23 +22936,23 @@ - + - + - + - - - - + + + + - + @@ -23038,13 +22967,13 @@ - + - - + + - + @@ -23056,1333 +22985,1333 @@ - + - + - - - - - - + + + + + + - + - - - - + + + + - - - - - - + + + + + + - - - - + + + + - - - + + + - - + + - - - + + + - - - + + + - - + + + + + + - - - - - + - - - + + + - + - - + + - + - - - + + + - - - + + + - - + + - + - - - + + + - - + + - + - - - - + + + + - - - + + + - - - + + + - + - - - + + + - - - - - + + + + + - - - + + + - - - + + + - + - - - - - + - - + - - + + + + + + + - + - - + + - + - - + + - + - - + + - - - + + + - - - + + + - - + + - - + + - - + + - - - + + + - - + + - - + + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - + + + + - - - - - + + + - - - - - + + + - - - + + - - + + + + + + + + + + + + + + + - - - + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - - + + + + + + + - - - - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - + + - - + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - - + + + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - + - + - - + + - + - - + + - + - - - + + + - - - - + + + + - - - + + + - - - + + + - - - - + + + + - - + + - - - - + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - + - - + + - + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - + + + - + - - - + + + - - + + - - + + - - + + - - - - - - + + + + + + - - - - - - - - - + - - - - - - - - - - - - - + + + - + - - - + + + + - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + - + - - - - + + + - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - + - - + + - - - + + + - + - - - + + + - + - - - + + + - - - - + + + + - - + + - + - - + + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - - - + + - - - + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + + - - - + + + - - - + + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - + + - - + + - + - - + + - - - + + + - - + + - + - - + + - - + + - + - + - + @@ -24394,15 +24323,15 @@ - + - + - + @@ -24410,7 +24339,7 @@ - + @@ -24418,7 +24347,7 @@ - + @@ -24426,48 +24355,48 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -24497,26 +24426,26 @@ - + - + - + - + - + - - - + + + - + @@ -24532,7 +24461,7 @@ - + @@ -24551,18 +24480,18 @@ - + - + - + - + @@ -24571,7 +24500,7 @@ - + @@ -24580,19 +24509,19 @@ - - + + - + - + - + - + @@ -24600,15 +24529,15 @@ - + - + - + @@ -24616,7 +24545,7 @@ - + @@ -24632,7 +24561,7 @@ - + @@ -24645,18 +24574,18 @@ - + - + - + @@ -24664,9 +24593,9 @@ - + - + @@ -24677,45 +24606,45 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -24736,19 +24665,19 @@ - + - + - + - + @@ -24763,7 +24692,7 @@ - + @@ -24772,22 +24701,22 @@ - + - + - + - + - + - + @@ -24802,7 +24731,7 @@ - + @@ -24814,7 +24743,7 @@ - + @@ -24823,15 +24752,15 @@ - + - + - + @@ -24840,7 +24769,7 @@ - + @@ -24851,65 +24780,65 @@ - + - + - + - + - - + + - - + + - - + + - + - - + + - - + + - + - + - + - + - + - + @@ -24933,16 +24862,16 @@ - + - + - + - + @@ -24950,20 +24879,20 @@ - + - + - + - + - + - + @@ -24977,7 +24906,7 @@ - + @@ -25004,7 +24933,7 @@ - + @@ -25018,7 +24947,7 @@ - + @@ -25027,18 +24956,18 @@ - + - + - + - + @@ -25050,9 +24979,9 @@ - + - + @@ -25061,15 +24990,15 @@ - - - - - - - + + + + + + + - + @@ -25078,38 +25007,38 @@ - + - + - + - + - + - + - + - - + + - + - + @@ -25145,13 +25074,13 @@ - + - + - + @@ -25166,34 +25095,34 @@ - + - + - + - + - + - + - + - + @@ -25205,81 +25134,81 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -25306,45 +25235,45 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -25359,10 +25288,10 @@ - + - + @@ -25370,71 +25299,71 @@ - + - - + + - - + + - - + + - - - - - - + + + + + + - - - - - - + + + + + + - - + + - - - + + + - - + + - - + + - + - + - + - + - + - + @@ -25448,12 +25377,12 @@ - + - + - + @@ -25462,18 +25391,18 @@ - + - + - + - + @@ -25482,22 +25411,22 @@ - + - + - + - + - + @@ -25506,7 +25435,7 @@ - + @@ -25515,7 +25444,7 @@ - + @@ -25524,73 +25453,73 @@ - - + + - + - - - - - - - + + + + + + + - - - + + + - - + + - - + + - - - + + + - + - - + + - - + + - - + + - + - - - + + + - - + + - - - + + + - + @@ -25605,54 +25534,54 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -25661,7 +25590,7 @@ - + @@ -25676,141 +25605,141 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - - + + - - + + - + - - + + - - + + - + - - - + + + - - + + - - - - - - + + + + + + - + - + - + - + - + - + @@ -25827,15 +25756,15 @@ - + - + - + - + @@ -25856,10 +25785,10 @@ - + - + @@ -25868,7 +25797,7 @@ - + @@ -25877,10 +25806,10 @@ - + - + @@ -25889,7 +25818,7 @@ - + @@ -25904,131 +25833,131 @@ - + - + - + - + - + - + - + - + - - - - + + + + - - + + - + - - - + + + - - - + + + - - - + + + - - - + + + - - - - - + + + + + - + - - - + + + - + - - + + - - + + - - + + - - + + - + - + - + - + - + - + - + - + @@ -26037,13 +25966,13 @@ - + - + - + @@ -26064,16 +25993,16 @@ - + - + - + @@ -26082,7 +26011,7 @@ - + @@ -26091,7 +26020,7 @@ - + @@ -26115,95 +26044,95 @@ - + - + - + - + - + - - - + + + - - + + - - + + - - + + - - + + - - + + - - - + + + - + - - + + - + - + - + - + - + - + - + - - + + - + - + - + - + @@ -26215,7 +26144,7 @@ - + @@ -26229,9 +26158,9 @@ - - - + + + @@ -26239,22 +26168,22 @@ - + - + - - - + + + - + @@ -26269,15 +26198,15 @@ - + - + - + @@ -26292,21 +26221,21 @@ - + - + - + - + - + - + @@ -26324,7 +26253,7 @@ - + @@ -26446,10 +26375,10 @@ - + - + @@ -26512,7 +26441,7 @@ - + @@ -26608,13 +26537,13 @@ - + - + - + @@ -26629,10 +26558,10 @@ - + - + @@ -26701,7 +26630,7 @@ - + @@ -26710,10 +26639,10 @@ - + - + @@ -26791,7 +26720,7 @@ - + @@ -26833,7 +26762,7 @@ - + @@ -26845,10 +26774,10 @@ - + - + @@ -26860,7 +26789,7 @@ - + @@ -26872,29 +26801,28 @@ - + - + - + - - + - + - + - + - + - + @@ -26909,34 +26837,34 @@ - + - + - + - + - + - + - + - + - + @@ -26951,43 +26879,43 @@ - + - + - + - + - + - + - + - + - + - + - - - + + + @@ -26995,7 +26923,7 @@ - + @@ -27004,9 +26932,9 @@ - + - + @@ -27015,7 +26943,7 @@ - + @@ -27033,7 +26961,7 @@ - + @@ -27042,7 +26970,7 @@ - + @@ -27054,10 +26982,10 @@ - + - + @@ -27083,27 +27011,17 @@ - + - - - - - - - - - - - - - - + + + + @@ -27141,13 +27059,13 @@ - + - + @@ -27241,27 +27159,27 @@ - - + + - + - + - + - + - + - + - + @@ -27276,7 +27194,7 @@ - + @@ -27285,25 +27203,25 @@ - + - + - + - + - + @@ -27315,17 +27233,17 @@ - + - + - + - - + + @@ -27336,10 +27254,10 @@ - + - + @@ -27348,16 +27266,16 @@ - + - + - + - + @@ -27366,33 +27284,33 @@ - + - + - + - + - + - + - - - + + + @@ -27400,33 +27318,33 @@ - + - + - + - + - + - + - + - + @@ -27435,52 +27353,52 @@ - + - + - + - + - + - + - + - - + + - - + + - - + + - + - + - + - + @@ -27489,81 +27407,81 @@ - + - - + + - + - + - - + + - - + + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - + + + @@ -27587,16 +27505,16 @@ - - - - - - - - - - + + + + + + + + + + @@ -27619,48 +27537,48 @@ - + - - + + - - - - - - - - + + + + + + + + - + - + - + - + - + - + - + - + @@ -27669,13 +27587,13 @@ - + - + @@ -27696,13 +27614,13 @@ - + - + - + @@ -27732,31 +27650,31 @@ - + - + - + - + - + - + - + @@ -27768,7 +27686,7 @@ - + @@ -27777,7 +27695,7 @@ - + @@ -27792,37 +27710,37 @@ - + - + - + - + - + - + - + - + @@ -27831,20 +27749,20 @@ - + - + - + - + - + @@ -27855,19 +27773,19 @@ - + - + - + - + - + @@ -27875,9 +27793,9 @@ - + - + @@ -27885,19 +27803,19 @@ - + - + - + - + @@ -27909,25 +27827,25 @@ - + - + - + - + - + - + @@ -27948,7 +27866,7 @@ - + @@ -27960,29 +27878,29 @@ - + - - - - - - - + + + + + + + - + - + - + @@ -27991,19 +27909,19 @@ - + - + - + - + - + - + @@ -28011,19 +27929,19 @@ - + - + - + - + @@ -28046,34 +27964,34 @@ - + - + - + - + - - - + + + - + - - + + - + @@ -28081,25 +27999,25 @@ - + - - - - - + + + + + - + - + @@ -28108,16 +28026,16 @@ - - + + - + - + @@ -28126,15 +28044,15 @@ - + - + - + - + @@ -28143,7 +28061,7 @@ - + @@ -28152,164 +28070,164 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - + + + + + + + + + + + + - - - - - - - - - - - - - - + + + + + + + + + + + + + + - + - + - + - - - - - - + + + + + + - - + + - - + + - - - - - - - - - - - - - - + + + + + + + + + + + + + + @@ -28320,7 +28238,7 @@ - + @@ -28347,13 +28265,13 @@ - + - + @@ -28362,32 +28280,32 @@ - + - + - + - + - + - + - + - - - + + + - + @@ -28411,10 +28329,10 @@ - + - + @@ -28438,13 +28356,13 @@ - + - + @@ -28453,7 +28371,7 @@ - + @@ -28462,16 +28380,16 @@ - + - + - + - + @@ -28480,16 +28398,16 @@ - + - + - + - + @@ -28497,7 +28415,7 @@ - + @@ -28506,10 +28424,10 @@ - - + + - + @@ -28518,7 +28436,7 @@ - + @@ -28530,17 +28448,17 @@ - + - + - - - + + + @@ -28558,43 +28476,43 @@ - - + + - + - + - + - + - + - + - + - + - + - + @@ -28615,24 +28533,24 @@ - + - + - + - + - + - + @@ -28644,55 +28562,55 @@ - - + + - + - - + + - - + + - + - + - + - - + + - - + + - + - + - + - - + + - + @@ -28769,48 +28687,48 @@ - + - + - - - + + + - + - + - + - + - + - + - + - + - + - + @@ -28894,10 +28812,10 @@ - + - + @@ -28909,41 +28827,41 @@ - - - - - - - - - + + + + + + + + + - + - + - + - + - + - + - + @@ -28954,36 +28872,36 @@ - + - + - + - + - - - - - - - - - - - - - + + + + + + + + + + + + + - + @@ -28995,23 +28913,23 @@ - - - + + + - - - + + + - - + + - - + + @@ -29025,434 +28943,434 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + @@ -29461,15 +29379,15 @@ - + - + - - + + - + @@ -29479,7 +29397,7 @@ - + @@ -29495,7 +29413,7 @@ - + @@ -29511,7 +29429,7 @@ - + @@ -29536,7 +29454,7 @@ - + @@ -29650,7 +29568,7 @@ - + @@ -29665,7 +29583,7 @@ - + @@ -29673,25 +29591,25 @@ - + - + - + - + - + @@ -29701,9 +29619,9 @@ - + - + @@ -29711,7 +29629,7 @@ - + @@ -29730,12 +29648,12 @@ - + - + @@ -29750,7 +29668,7 @@ - + @@ -29759,7 +29677,7 @@ - + @@ -29774,23 +29692,23 @@ - + - + - + - + @@ -29800,9 +29718,9 @@ - + - + @@ -29810,7 +29728,7 @@ - + @@ -29829,10 +29747,10 @@ - + - + @@ -29858,13 +29776,13 @@ - + - + - + @@ -29878,7 +29796,7 @@ - + @@ -29886,10 +29804,10 @@ - + - + @@ -29906,9 +29824,9 @@ - - - + + + @@ -29916,109 +29834,109 @@ - + - - - + + + - + - + - + - + - + - + - - - - + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -30027,27 +29945,27 @@ - + - + - - - - - + + + + + - + - + @@ -30077,20 +29995,20 @@ - - + + - - + + - + - + @@ -30119,63 +30037,63 @@ - + - + - + - + - + - + - + - + - - + + - - + + - + - + - + - + - + - + - + @@ -30187,20 +30105,20 @@ - + - + - + - + - + - + @@ -30213,13 +30131,13 @@ - - + + - + - + @@ -30232,22 +30150,22 @@ - - + + - - - - - + + + + + - + - + - + @@ -30255,19 +30173,19 @@ - + - + - + - + - + @@ -30282,16 +30200,16 @@ - + - + - + - + @@ -30302,23 +30220,23 @@ - + - + - + - + - - + + @@ -30329,21 +30247,21 @@ - - - - - + + + + + - + - + - + - + @@ -30352,39 +30270,39 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -30396,25 +30314,25 @@ - + - + - + - + - + @@ -30432,40 +30350,40 @@ - + - - - - - - - - - - + + + + + + + + + + - + - + - - + + - + - + @@ -30474,16 +30392,16 @@ - + - - + + - - + + @@ -30497,21 +30415,21 @@ - - - - - - - - - - + + + + + + + + + + - + - + @@ -30520,16 +30438,16 @@ - + - + - + - + @@ -30538,413 +30456,407 @@ - - - - + + + + - + - + - - - - - - - - - - - - - - + + + + + + + + + + + + + + - + - + - - - - - - - - - - - - - - + + + + + + + + + + + + + + - + - - - - + + + + - - + + - - + + - - + + - - - - - - - + + - - - + + + + + + + + - - - - + + + + + + + + - - - - - - - - + + + + - + - - + + - - + + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - + + - + - + - + - - + + - - + + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - + + - - + + - - + + - - + + + - - + + + + + + + + + + + + + + - - - + + + - - - + + + - - + + - - + + - - + + - - + + - - - + + + - - - - - - - - - - - - - - + + + - - - + + - + + + + + + + + + + + + + - + - + - - + + - + - - - + + + - + - + @@ -30970,15 +30882,15 @@ - + - + - + - + @@ -30992,7 +30904,7 @@ - + @@ -31000,19 +30912,19 @@ - + - + - - + + - + @@ -31134,10 +31046,10 @@ - + - + @@ -31296,13 +31208,13 @@ - + - + - + @@ -31317,10 +31229,10 @@ - + - + @@ -31401,7 +31313,7 @@ - + @@ -31479,7 +31391,7 @@ - + @@ -31560,17 +31472,17 @@ - + - + - + - + - + @@ -31579,7 +31491,7 @@ - + @@ -31594,7 +31506,7 @@ - + @@ -31612,7 +31524,7 @@ - + @@ -31681,22 +31593,22 @@ - + - + - + - + - + @@ -31705,7 +31617,7 @@ - + @@ -31714,77 +31626,77 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - + + + - + - + - + - + @@ -31797,19 +31709,19 @@ - + - + - - + + - - - + + + @@ -31823,7 +31735,7 @@ - + @@ -31847,26 +31759,26 @@ - - + + - + - + - + - + - + - - - + + + @@ -31893,12 +31805,12 @@ - + - + - + @@ -31917,7 +31829,7 @@ - + @@ -31926,18 +31838,18 @@ - + - + - + - + - + @@ -31945,15 +31857,15 @@ - + - + - + @@ -31961,7 +31873,7 @@ - + @@ -31977,7 +31889,7 @@ - + @@ -31990,18 +31902,18 @@ - + - + - + @@ -32009,9 +31921,9 @@ - + - + @@ -32022,18 +31934,18 @@ - + - + - + @@ -32042,17 +31954,17 @@ - + - + - + - + @@ -32061,7 +31973,7 @@ - + @@ -32072,70 +31984,70 @@ - + - + - + - + - + - + - + - + - + - + - + - - - + + + - + - + - + - + - + @@ -32144,29 +32056,29 @@ - - + + - - + + - + - + - + - + - + @@ -32175,22 +32087,22 @@ - + - + - + - + - + @@ -32208,13 +32120,13 @@ - + - + - + @@ -32222,20 +32134,20 @@ - + - + - + - + - + @@ -32243,7 +32155,7 @@ - + @@ -32252,25 +32164,25 @@ - + - + - + - + - + - + @@ -32279,22 +32191,22 @@ - + - + - + - + - + - + @@ -32309,13 +32221,13 @@ - + - + @@ -32324,13 +32236,13 @@ - + - + @@ -32363,10 +32275,10 @@ - + - + @@ -32378,28 +32290,28 @@ - + - + - + - + - + - + - + @@ -32407,7 +32319,7 @@ - + @@ -32431,10 +32343,10 @@ - + - + @@ -32458,13 +32370,13 @@ - + - + @@ -32473,7 +32385,7 @@ - + @@ -32482,16 +32394,16 @@ - + - + - + - + @@ -32500,30 +32412,30 @@ - + - + - + - - + + - + - + - + @@ -32544,7 +32456,7 @@ - + @@ -32553,7 +32465,7 @@ - + @@ -32562,13 +32474,13 @@ - + - + @@ -32583,717 +32495,117 @@ - - - + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + - + - - + + @@ -33303,13 +32615,13 @@ - - + + - + @@ -33431,10 +32743,10 @@ - + - + @@ -33497,7 +32809,7 @@ - + @@ -33593,13 +32905,13 @@ - + - + - + @@ -33611,13 +32923,13 @@ - + - + - + @@ -33686,7 +32998,7 @@ - + @@ -33695,10 +33007,10 @@ - + - + @@ -33773,10 +33085,10 @@ - + - + @@ -33818,7 +33130,7 @@ - + @@ -33830,10 +33142,10 @@ - + - + @@ -33845,7 +33157,7 @@ - + @@ -33857,17 +33169,17 @@ - + - + - + - + - + @@ -33876,7 +33188,7 @@ - + @@ -33891,7 +33203,7 @@ - + @@ -33909,7 +33221,7 @@ - + @@ -33978,22 +33290,22 @@ - + - + - + - + - + @@ -34002,231 +33314,232 @@ - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + @@ -34247,10 +33560,10 @@ - + - + @@ -34283,30 +33596,205 @@ - + - + - - - - - - - - - - + - - - - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -34315,18 +33803,18 @@ - + - + - - - - - - + + + + + + @@ -34343,13 +33831,13 @@ - + - + - + @@ -34357,13 +33845,13 @@ - + - + - + @@ -34372,71 +33860,71 @@ - + - + - + - + - + - + - + - + - + - - + + - - + + - - + + - + - + - + - + - + - + - - + + @@ -34450,7 +33938,7 @@ - + @@ -34459,7 +33947,7 @@ - + @@ -34495,10 +33983,10 @@ - + - + @@ -34507,7 +33995,7 @@ - + @@ -34516,13 +34004,13 @@ - + - + - + @@ -34594,34 +34082,34 @@ - + - + - + - + - + - + - + @@ -34629,22 +34117,22 @@ - + - + - + - + - + @@ -34656,7 +34144,7 @@ - + @@ -34668,16 +34156,16 @@ - + - + - + - + @@ -34692,7 +34180,7 @@ - + @@ -34722,19 +34210,19 @@ - + - + - + - + - + @@ -34752,19 +34240,19 @@ - + - + - + - + @@ -34772,10 +34260,10 @@ - + - + @@ -34796,95 +34284,95 @@ - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - - + + - - + + - - - - - + + + + + - + - + - + - + - + @@ -34896,10 +34384,10 @@ - + - + @@ -34920,7 +34408,7 @@ - + @@ -34938,12 +34426,12 @@ - + - + - + @@ -34952,10 +34440,10 @@ - + - + @@ -34964,12 +34452,12 @@ - + - + - + @@ -34987,182 +34475,182 @@ - + - + - + - - + + - + - + - + - + - + - + - - - - - - - - + + + + + + + + - + - + - - - - - - - + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + @@ -35176,9 +34664,9 @@ - - - + + + @@ -35186,28 +34674,28 @@ - + - - + + - - - - - - - - - + + + + + + + + + - + @@ -35222,10 +34710,10 @@ - + - + @@ -35234,25 +34722,25 @@ - + - + - - - - - - - + + + + + + + @@ -35269,20 +34757,20 @@ - + - + - + - + - + @@ -35291,70 +34779,80 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - + @@ -35377,23 +34875,23 @@ - + - + - + - + - + - + - + @@ -35401,45 +34899,45 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -35448,13 +34946,13 @@ - + - + @@ -35475,13 +34973,13 @@ - + - + - + @@ -35511,31 +35009,31 @@ - + - + - + - + - + - + - + @@ -35547,7 +35045,7 @@ - + @@ -35556,7 +35054,7 @@ - + @@ -35571,37 +35069,37 @@ - + - + - + - + - + - + - + - + @@ -35610,59 +35108,59 @@ - + - + - - - + + + - + - + - + - - - + + + - + - - + + - + - + - + - + - - + + - + @@ -35671,9 +35169,9 @@ - + - + @@ -35685,273 +35183,279 @@ - + - + - - - + + + - - + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - + + - - + + - - - + + + - - + + - - - - + + + + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - + - - - - - + + + + + - - - - + + + + - + - - - - + + + + - + - - - + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - + + - - - - + + + + - - - + + + - - + + - - - + + + - - - + + + - - + + - + - + - + - + - + - - - - + + + + - - + + - + @@ -35959,14 +35463,14 @@ - + - + @@ -35977,13 +35481,13 @@ - - + + - + @@ -35991,24 +35495,24 @@ - + - + - + - + - - - - + + + + @@ -36025,14 +35529,14 @@ - + - + - + @@ -36194,48 +35698,48 @@ - - + + - + - + - - + + - + - - + + - - + + - + - + - - + + @@ -36254,21 +35758,21 @@ - + - + - - + + - - + + @@ -36277,9 +35781,9 @@ - + - + @@ -36288,57 +35792,57 @@ - + - - + + - + - + - - + + - + - + - - + + - - + + - + - + - + @@ -36346,189 +35850,189 @@ - + - - - + + + - - - - - - - + + + + + + + - - + + - + - - - + + + - - - + + + - + - - - + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -36537,248 +36041,248 @@ - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - + + + - - + + - - - - + + + + - + - - - - + + + + - + - + - + - + - + - + - + - - + + - + - - - - + + + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - + - - + + - - - + + + @@ -36900,10 +36404,10 @@ - + - + @@ -36966,7 +36470,7 @@ - + @@ -37062,13 +36566,13 @@ - + - + - + @@ -37083,10 +36587,10 @@ - + - + @@ -37167,7 +36671,7 @@ - + @@ -37245,7 +36749,7 @@ - + @@ -37332,18 +36836,18 @@ - + - - + + - - + + @@ -37351,1243 +36855,46 @@ - - + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + - + - + @@ -38605,7 +36912,7 @@ - + @@ -38623,154 +36930,51 @@ - - + + - - + + - - - + + + - + - + - + - - + + - - - + + + - - - + + + - + + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -38789,9 +36993,9 @@ - + - + @@ -38800,13 +37004,13 @@ - + - + - + @@ -38818,85 +37022,85 @@ - + - + - - - - + + + + - - + + - - + + - + - + - + - + - + - - + + - + - + - - + + - - - + + + - - + + - - + + - + @@ -38916,7 +37120,7 @@ - + @@ -38928,7 +37132,7 @@ - + @@ -38937,16 +37141,16 @@ - + - + - + - + @@ -38955,13 +37159,13 @@ - + - + - + @@ -38969,22 +37173,22 @@ - + - - + + - + - + - + - + @@ -38993,7 +37197,7 @@ - + @@ -39011,29 +37215,29 @@ - + - + - + - + - + - + - + - + @@ -39045,7 +37249,7 @@ - + @@ -39063,13 +37267,13 @@ - + - + @@ -39101,16 +37305,16 @@ - + - + - + - + @@ -39119,13 +37323,13 @@ - + - + - + @@ -39137,32 +37341,32 @@ - - + + - + - + - + - - + + - - + + - - + + @@ -39284,10 +37488,10 @@ - + - + @@ -39350,7 +37554,7 @@ - + @@ -39446,13 +37650,13 @@ - + - + - + @@ -39467,10 +37671,10 @@ - + - + @@ -39551,7 +37755,7 @@ - + @@ -39629,7 +37833,7 @@ - + @@ -39698,7 +37902,7 @@ - + @@ -39711,22 +37915,22 @@ - - + + - + - + - + - + - - + + @@ -39734,121 +37938,121 @@ - + - - - - - - - + + + + + + + - - + + - - + + - + - + - - + + - - + + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - - + + - - + + - - + + - + - + - + - + - + @@ -39856,33 +38060,33 @@ - + - + - + - + - + - + @@ -39891,21 +38095,21 @@ - + - + - + - + @@ -39914,7 +38118,7 @@ - + @@ -39923,151 +38127,151 @@ - - + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - + - - + + @@ -40075,51 +38279,51 @@ - - + + - - + + - + - + - - + + - - + + - + - - + + - + - + @@ -40127,7 +38331,7 @@ - + @@ -40249,10 +38453,10 @@ - + - + @@ -40411,13 +38615,13 @@ - + - + - + @@ -40432,10 +38636,10 @@ - + - + @@ -40516,7 +38720,7 @@ - + @@ -40594,7 +38798,7 @@ - + @@ -40675,17 +38879,17 @@ - + - + - + - + - + @@ -40694,7 +38898,7 @@ - + @@ -40709,7 +38913,7 @@ - + @@ -40727,7 +38931,7 @@ - + @@ -40796,22 +39000,22 @@ - + - + - + - + - + @@ -40820,144 +39024,48 @@ - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -40966,15 +39074,15 @@ - + - + - + @@ -40998,11 +39106,11 @@ - + - + - + @@ -41013,87 +39121,87 @@ - + - + - - + + - + - + - - + + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -41120,7 +39228,7 @@ - + @@ -41129,16 +39237,16 @@ - + - + - + @@ -41152,7 +39260,7 @@ - + @@ -41161,29 +39269,29 @@ - + - - + + - - + + - + - + - + - + @@ -41195,16 +39303,16 @@ - + - + - + @@ -41213,15 +39321,15 @@ - + - + - + @@ -41233,32 +39341,32 @@ - + - + - - - + + + - + - + - - + + - - + + - + @@ -41266,37 +39374,37 @@ - + - + - + - + - + - - + + - - + + - - + + - + @@ -41304,29 +39412,29 @@ - + - + - + - + - - + + - - + + - + @@ -41334,23 +39442,23 @@ - + - - + + - - + + - + @@ -41358,105 +39466,105 @@ - + - + - + - + - + - + - + - + - + - - + + - + - - + + - + - + - + - - + + - + - + - + - - + + - + - + - + @@ -41474,10 +39582,10 @@ - - - - + + + + @@ -41485,77 +39593,77 @@ - + - + - - + + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + @@ -41564,7 +39672,7 @@ - + @@ -41686,10 +39794,10 @@ - + - + @@ -41869,7 +39977,7 @@ - + @@ -42031,7 +40139,7 @@ - + @@ -42112,17 +40220,17 @@ - + - + - + - + - + @@ -42131,7 +40239,7 @@ - + @@ -42146,7 +40254,7 @@ - + @@ -42164,7 +40272,7 @@ - + @@ -42233,22 +40341,22 @@ - + - + - + - + - + @@ -42257,7 +40365,7 @@ - + @@ -42266,25 +40374,25 @@ - + - + - + - - - - - + + + + + - + @@ -42293,12 +40401,12 @@ - + - + @@ -42307,18 +40415,18 @@ - + - + - + - + - + @@ -42326,15 +40434,15 @@ - + - + - + @@ -42342,7 +40450,7 @@ - + @@ -42358,7 +40466,7 @@ - + @@ -42371,18 +40479,18 @@ - + - + - + @@ -42390,9 +40498,9 @@ - + - + @@ -42403,18 +40511,18 @@ - + - + - + @@ -42423,19 +40531,19 @@ - - - + + + - + - + - + @@ -42444,8 +40552,8 @@ - - + + @@ -42456,26 +40564,26 @@ - - - - - - - + + + + + + + - + - + - + - + @@ -42492,56 +40600,209 @@ - + - + - + - - + + - + - + - + - + - + - - + + - + - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -42663,10 +40924,10 @@ - + - + @@ -42729,7 +40990,7 @@ - + @@ -42825,13 +41086,13 @@ - + - + - + @@ -42846,10 +41107,10 @@ - + - + @@ -42918,7 +41179,7 @@ - + @@ -42927,10 +41188,10 @@ - + - + @@ -43005,10 +41266,10 @@ - + - + @@ -43050,7 +41311,7 @@ - + @@ -43062,10 +41323,10 @@ - + - + @@ -43077,7 +41338,7 @@ - + @@ -43094,76 +41355,76 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -43171,7 +41432,7 @@ - + @@ -43204,7 +41465,7 @@ - + @@ -43228,7 +41489,7 @@ - + @@ -43249,10 +41510,10 @@ - + - + @@ -43276,7 +41537,7 @@ - + @@ -43315,7 +41576,7 @@ - + @@ -43342,20 +41603,20 @@ - + - + - - + + - + @@ -43413,7 +41674,7 @@ - + @@ -43434,7 +41695,7 @@ - + @@ -43446,7 +41707,7 @@ - + @@ -43463,16 +41724,16 @@ - + - + - + - + @@ -43481,13 +41742,13 @@ - + - + - + @@ -43505,17 +41766,17 @@ - + - + - - + + - + @@ -43524,7 +41785,7 @@ - + @@ -43536,7 +41797,7 @@ - + @@ -43557,26 +41818,26 @@ - + - + - + - + - - + + - + @@ -43584,14 +41845,14 @@ - + - - - + + + @@ -43608,7 +41869,7 @@ - + @@ -43616,7 +41877,7 @@ - + @@ -43625,8 +41886,8 @@ - - + + @@ -43634,7 +41895,7 @@ - + @@ -43658,7 +41919,7 @@ - + @@ -43666,17 +41927,17 @@ - + - + - + - + - + @@ -43685,7 +41946,7 @@ - + @@ -43700,7 +41961,7 @@ - + @@ -43718,7 +41979,7 @@ - + @@ -43787,22 +42048,22 @@ - + - + - + - + - + @@ -43811,28 +42072,28 @@ - + - + - + - + - + - + @@ -43843,10 +42104,10 @@ - + - + @@ -43855,19 +42116,19 @@ - + - + - + - + @@ -43885,19 +42146,19 @@ - + - + - + - + @@ -43908,7 +42169,7 @@ - + @@ -43916,13 +42177,13 @@ - + - + - + @@ -43933,51 +42194,51 @@ - - + + - + - + - + - - + + - + - + - + - + - + - + - + @@ -43988,19 +42249,19 @@ - - - - - + + + + + - + - + - + @@ -44060,28 +42321,28 @@ - + - + - + - + - + - + - + - + @@ -44120,25 +42381,25 @@ - + - + - + - + - - + + - + @@ -44147,17 +42408,17 @@ - + - + - - + + @@ -44180,11 +42441,11 @@ - + - - + + @@ -44192,7 +42453,7 @@ - + @@ -44203,31 +42464,31 @@ - - + + - + - + - - - - - + + + + + - + @@ -44245,16 +42506,16 @@ - + - + - + - + @@ -44277,22 +42538,22 @@ - + - + - + - + - + @@ -44316,28 +42577,28 @@ - - + + - - + + - - + + - - - - - - + + + + + + - + @@ -44346,7 +42607,7 @@ - + @@ -44355,267 +42616,114 @@ - + - - + + - - - - - - - - - - + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -44624,120 +42732,120 @@ - + - + - + - - + + - - + + - - + + - + - + - + - + - + - + - - - + + + - - + + - - - + + + - + - + - - + + - - + + - - + + - - + + - + - + @@ -44748,24 +42856,24 @@ - + - + - + - + - + - + @@ -44776,48 +42884,48 @@ - - - - + + + + - - - + + + - + - + - - - - + + + + - + - + @@ -44829,10 +42937,10 @@ - + - + @@ -44842,33 +42950,33 @@ - + - - + + - + - - + + - - + + - + @@ -44876,26 +42984,26 @@ - + - + - + - + - + - + - + @@ -44903,22 +43011,22 @@ - + - - + + - - + + - - + + @@ -44928,7 +43036,7 @@ - + @@ -44941,12 +43049,12 @@ - + - - + + @@ -44959,12 +43067,12 @@ - + - - + + @@ -44987,33 +43095,33 @@ - + - + - - + + - - + + - - + + - - + + @@ -45024,49 +43132,49 @@ - + - - + + - + - + - + - + - + - + - + - + - + - + @@ -45083,7 +43191,7 @@ - + @@ -45367,13 +43475,13 @@ - + - + - + @@ -45388,10 +43496,10 @@ - + - + @@ -45631,7 +43739,7 @@ - + @@ -45639,78 +43747,78 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - + + + @@ -45724,7 +43832,7 @@ - + @@ -45733,7 +43841,7 @@ - + @@ -45769,10 +43877,10 @@ - + - + @@ -45781,7 +43889,7 @@ - + @@ -45790,13 +43898,13 @@ - + - + - + @@ -45868,25 +43976,25 @@ - + - + - + - + - + @@ -45895,48 +44003,48 @@ - - - + + + - + - + - + - + - + - - + + - - + + - + - - + + - + @@ -45947,250 +44055,250 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + @@ -46199,15 +44307,15 @@ - + - + - + @@ -46218,7 +44326,7 @@ - + @@ -46229,7 +44337,7 @@ - + @@ -46238,16 +44346,16 @@ - + - + - + - + @@ -46255,39 +44363,39 @@ - + - - + + - + - + - + - + - + - + - + - + @@ -46296,7 +44404,7 @@ - + @@ -46304,42 +44412,42 @@ - + - + - + - + - + - - + + - + - + - - + + - + @@ -46350,17 +44458,17 @@ - + - + - - + + @@ -46368,118 +44476,118 @@ - + - + - + - + - + - + - + - + - + - + - + - - - + + + - + - + - - + + - - + + - + - - + + - + - - + + - + - + - - - + + + - + - + - + - + - + - + - + - + - + - + @@ -46488,28 +44596,28 @@ - + - - - - - - + + + + + + - + - + - + @@ -46526,25 +44634,25 @@ - - + + - + - + - + @@ -46560,15 +44668,15 @@ - + - + - + @@ -46576,19 +44684,19 @@ - + - + - + - + @@ -46609,8 +44717,8 @@ - - + + @@ -46620,87 +44728,87 @@ - + - + - + - + - + - + - + - + - + - + - - - + + + - - - + + + - + - - - + + + - - + + - + - - + + - - - + + + - + - + - + - + - + - + @@ -46736,16 +44844,16 @@ - + - + - + - + @@ -46754,7 +44862,7 @@ - + @@ -46769,13 +44877,13 @@ - + - + @@ -46784,13 +44892,13 @@ - + - + @@ -46798,18 +44906,18 @@ - + - + - + - - - + + + @@ -46820,282 +44928,282 @@ - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + @@ -47105,12 +45213,12 @@ - - + + - - + + @@ -47118,7 +45226,7 @@ - + @@ -47130,19 +45238,19 @@ - + - + - + - + - + @@ -47151,78 +45259,78 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + @@ -47231,10 +45339,10 @@ - - + + - + @@ -47243,14 +45351,14 @@ - + - + - - + + @@ -47262,40 +45370,40 @@ - - + + - + - + - - + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + @@ -47309,13 +45417,13 @@ - + - + - + @@ -47323,7 +45431,7 @@ - + @@ -47331,16 +45439,16 @@ - + - + - + - + @@ -47376,28 +45484,28 @@ - + - + - - - - - + + + + + - + - + - + @@ -47406,10 +45514,10 @@ - + - + @@ -47432,52 +45540,52 @@ - - - + + + - - + + - - + + - + - - + + - - - - - - - - - - - - + + + + + + + + + + + + - - - - - - - + + + + + + + - + @@ -47486,16 +45594,16 @@ - + - + - + @@ -47513,20 +45621,20 @@ - + - + - - - - - + + + + + @@ -47648,10 +45756,10 @@ - + - + @@ -47831,7 +45939,7 @@ - + @@ -47993,7 +46101,7 @@ - + @@ -48062,7 +46170,7 @@ - + @@ -48074,9 +46182,9 @@ - + - + @@ -48085,7 +46193,7 @@ - + @@ -48100,7 +46208,7 @@ - + @@ -48118,7 +46226,7 @@ - + @@ -48187,22 +46295,22 @@ - + - + - + - + - + @@ -48211,7 +46319,7 @@ - + @@ -48220,21 +46328,21 @@ - + - + - + - + - + @@ -48246,20 +46354,20 @@ - + - + - - + + @@ -48267,24 +46375,24 @@ - + - + - + - - - - - - + + + + + + - + @@ -48295,7 +46403,7 @@ - + @@ -48303,193 +46411,193 @@ - - + + - - + + - + - - + + - - - + + + - - - - + + + + - - - + + + - - + + - - + + - - - - + + + + - - + + - - - - + + + + - - - + + + - - - - + + + + - - - - - + + + + + - - + + - + - - + + - + - + - + - - + + - - - + + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - + + - - - + + + - - + + - - + + - - + + - + - + - + - + - + - + - + @@ -48525,16 +46633,16 @@ - + - + - + - + @@ -48543,7 +46651,7 @@ - + @@ -48558,13 +46666,13 @@ - + - + @@ -48573,13 +46681,13 @@ - + - + @@ -48590,31 +46698,31 @@ - + - + - + - + - - + + - + - + @@ -48629,12 +46737,12 @@ - + - + @@ -48647,7 +46755,7 @@ - + @@ -48675,12 +46783,12 @@ - + - + @@ -48690,8 +46798,8 @@ - - + + @@ -48699,7 +46807,7 @@ - + @@ -48725,7 +46833,7 @@ - + @@ -48733,19 +46841,39 @@ - - + + - + - + + + + + + + + + + + + + + + + + + + + + @@ -48756,22 +46884,22 @@ - + - + - + - + - + @@ -48779,29 +46907,29 @@ - + - + - + - + - + - + - + - + - + @@ -48815,22 +46943,22 @@ - + - + - + - + - + @@ -48841,33 +46969,33 @@ - - + + - + - + - + - + - + - + - + - + @@ -48890,7 +47018,7 @@ - + @@ -48898,72 +47026,52 @@ - + - + - - - + + + - + - - - - - - - - - - - - - - - - - - - - - - - + + + - + - + - + - + - + - + - + @@ -48999,16 +47107,16 @@ - + - + - + - + @@ -49017,7 +47125,7 @@ - + @@ -49032,13 +47140,13 @@ - + - + @@ -49047,65 +47155,54 @@ - + - - - - - - - - - - - - + - + - + - + - + - + - + - + - + - - + + @@ -49116,69 +47213,69 @@ - + - + - + - + - + - + - + - - + + - + - - + + - + - + - + - + - + - + @@ -49188,42 +47285,42 @@ - + - + - - + + - + - + - + - + - - + + @@ -49242,220 +47339,220 @@ - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - - + + - + - - - + + + - + - + - + - - + + - - + + - + - + - + - + - + - + - - + + - + - + - + - + - - - + + + - - + + - + - - - + + + - - + + - - - - + + + + - - - - - - + + + + + + - + - - + + - + - + - - + + - + - - + + - + - + - + - + - + - + - + @@ -49473,7 +47570,7 @@ - + @@ -49495,24 +47592,24 @@ - - - - - + + + + + - + - + - - + + @@ -49525,7 +47622,7 @@ - + @@ -49534,53 +47631,53 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -49588,16 +47685,16 @@ - - + + - + - - - + + + @@ -49620,9 +47717,9 @@ - + - + @@ -49636,12 +47733,12 @@ - + - - + + @@ -49673,38 +47770,38 @@ - + - + - + - + - + - + - - + + - + - + @@ -49712,10 +47809,10 @@ - + - + @@ -49724,31 +47821,31 @@ - + - + - + - + - + - + @@ -49757,20 +47854,20 @@ - + - + - + - + - + - + @@ -49779,7 +47876,7 @@ - + @@ -49794,7 +47891,7 @@ - + @@ -49812,7 +47909,7 @@ - + @@ -49881,22 +47978,22 @@ - + - + - + - + - + @@ -49905,7 +48002,7 @@ - + @@ -49914,36 +48011,36 @@ - + - + - + - + - + - + - + - + - + @@ -49952,22 +48049,22 @@ - + - + - + - + @@ -49985,151 +48082,159 @@ - + - + - - - + + + - + + + + + + + + + - - + + - + - + - + - + - + - + - - + + - + - + - + - - + + - + - - + + - + - - - - + + + + - - - - + + + + - - + + - + - - + + - + - - + + - + - + - - + + - + - - + + - + - + - + - + - + @@ -50138,7 +48243,7 @@ - + @@ -50148,17 +48253,17 @@ - - - + + + - + - + @@ -50166,10 +48271,10 @@ - + - + @@ -50178,31 +48283,31 @@ - + - + - + - + - + - + @@ -50211,20 +48316,20 @@ - + - + - + - + - + - + @@ -50233,7 +48338,7 @@ - + @@ -50248,7 +48353,7 @@ - + @@ -50266,7 +48371,7 @@ - + @@ -50335,22 +48440,22 @@ - + - + - + - + - + @@ -50359,7 +48464,7 @@ - + @@ -50368,36 +48473,36 @@ - + - + - + - + - + - + - + - + - + @@ -50406,22 +48511,22 @@ - + - + - + - + @@ -50439,17 +48544,17 @@ - + - + - - + + - - + + @@ -50467,554 +48572,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -51030,26 +48587,26 @@ - + - + - + - - + + - - + + @@ -51061,28 +48618,28 @@ - + - + - + - + - + @@ -51090,108 +48647,108 @@ - + - + - + - - - - - - - + + + + + + + - + - + - - + + - - + + - + - + - + - + - - + + - + - + - + - - + + - - + + - - + + - + - + - - + + - + - - + + - - + + - + - + - - + + - + - + @@ -51205,92 +48762,92 @@ - + - + - + - - + + - - + + - - + + - + - + - + - + - + - - + + - + - + - - + + - - + + - - - + + + - - + + - + - + - + - - + + - - + + - + - - + + @@ -51311,69 +48868,69 @@ - + - - + + - - + + - + - + - - + + - + - + - - + + - - + + - + - + - + - + - + @@ -51385,15 +48942,15 @@ - + - + - + @@ -51412,10 +48969,10 @@ - + - - + + @@ -51424,7 +48981,7 @@ - + @@ -51437,18 +48994,18 @@ - + - + - - + + - + @@ -51460,31 +49017,31 @@ - + - + - + - + - + - + - - + + @@ -51502,15 +49059,15 @@ - + - + - + @@ -51519,7 +49076,7 @@ - + @@ -51527,32 +49084,32 @@ - + - + - + - + - + - + - + @@ -51569,22 +49126,22 @@ - + - + - + - + - + - + @@ -51602,7 +49159,7 @@ - + @@ -51617,42 +49174,42 @@ - + - + - + - + - + - + - + - - - + + + - - - - - + + + + + @@ -51663,86 +49220,86 @@ - + - + - - + + - + - + - + - + - + - - + + - - - + + + - - + + - - + + - + - - + + - + - + - + - + @@ -51768,18 +49325,18 @@ - + - + - + - + - + @@ -51794,9 +49351,9 @@ - + - + @@ -51808,49 +49365,49 @@ - - - - + + + + - - + + - + - + - - + + - + - + - + - + - + @@ -51862,10 +49419,10 @@ - + - + @@ -51877,10 +49434,10 @@ - + - + @@ -51889,7 +49446,7 @@ - + @@ -51904,55 +49461,55 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + @@ -51981,9 +49538,9 @@ - - - + + + @@ -51991,19 +49548,19 @@ - + - - - - - - - - - - + + + + + + + + + + @@ -52011,22 +49568,22 @@ - + - + - - - + + + - + - + @@ -52034,10 +49591,10 @@ - + - + @@ -52046,14 +49603,14 @@ - + - - - + + + @@ -52061,317 +49618,152 @@ - - + + - + - - - + + + - + - + - + - + - + - + - + - - + + - + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + @@ -52400,7 +49792,7 @@ - + @@ -52433,94 +49825,94 @@ - + - + - - - - - - - - - - - - - + + + + + + + + + + + + + - - + + - + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - - - - + + + + + - - - - + + + + - + - - + + - + - + - + - + @@ -52538,7 +49930,7 @@ - + @@ -52547,28 +49939,28 @@ - + - + - + - + - + - + - + - + @@ -52589,20 +49981,20 @@ - + - + - - - - - + + + + + @@ -52610,72 +50002,72 @@ - - + + - + - + - + - + - - + + - + - + - + - + - - + + - - + + - + - + - + - + @@ -52691,8 +50083,8 @@ - - + + @@ -52701,63 +50093,63 @@ - + - + - + - - + + - - + + - + - + - - + + - + - - + + - + - - + + @@ -52771,91 +50163,91 @@ - + - + - + - + - + - + - + - + - + - - - + + + - + - + - + - + - + - - + + - + - + - + - - + + - + - + @@ -52863,43 +50255,43 @@ - + - + - + - + - - + + - - + + - + - + - - + + - + @@ -52912,14 +50304,14 @@ - + - + - + @@ -52928,31 +50320,31 @@ - + - + - + - - - - + + + + - - - - - + + + + + - - - + + + @@ -52962,57 +50354,57 @@ - + - + - + - - + + - + - + - + - + - + - + - - + + - + - - + + @@ -53021,33 +50413,33 @@ - + - + - - - - - - - - - - - - - - + + + + + + + + + + + + + + - + - + - + @@ -53065,7 +50457,7 @@ - + @@ -53077,51 +50469,51 @@ - + - + - - + + - - + + - + - + - + - + - + - + - + @@ -53243,10 +50635,10 @@ - + - + @@ -53405,13 +50797,13 @@ - + - + - + @@ -53426,10 +50818,10 @@ - + - + @@ -53510,7 +50902,7 @@ - + @@ -53588,7 +50980,7 @@ - + @@ -53657,7 +51049,7 @@ - + @@ -53682,17 +51074,17 @@ - + - + - + - + @@ -53701,11 +51093,11 @@ - + - + - + @@ -53713,9 +51105,19 @@ - + - + + + + + + + + + + + @@ -53723,10 +51125,10 @@ - + - + @@ -53747,7 +51149,7 @@ - + @@ -53771,10 +51173,10 @@ - + - + @@ -53816,7 +51218,7 @@ - + @@ -53870,7 +51272,7 @@ - + @@ -53888,7 +51290,7 @@ - + @@ -53900,19 +51302,19 @@ - + - + - + - + - + @@ -53921,12 +51323,12 @@ - + - + - + @@ -53935,28 +51337,28 @@ - + - + - + - + - + - + - + - + @@ -53966,7 +51368,7 @@ - + @@ -53977,25 +51379,25 @@ - + - + - + - + - + @@ -54003,10 +51405,10 @@ - + - + @@ -54042,28 +51444,28 @@ - + - + - + - + - + - + - + - + @@ -54072,7 +51474,7 @@ - + @@ -54090,16 +51492,16 @@ - + - + - + - + @@ -54150,7 +51552,7 @@ - + @@ -54177,16 +51579,16 @@ - + - + - + - + @@ -54195,22 +51597,22 @@ - + - + - + - + - + - + @@ -54219,37 +51621,37 @@ - + - + - + - + - + - + - + - + - + @@ -54258,10 +51660,10 @@ - + - + @@ -54273,16 +51675,16 @@ - + - + - + - + @@ -54294,37 +51696,37 @@ - + - + - + - + - + - + - + - + - + @@ -54333,25 +51735,25 @@ - + - + - + - + - + - + - + @@ -54360,16 +51762,16 @@ - + - + - - + + @@ -54377,8 +51779,8 @@ - - + + @@ -54449,251 +51851,251 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - + + + + - - - - - - - + + + + + + + - + - + - + - + - + - + - + - + @@ -54702,7 +52104,7 @@ - + @@ -54714,40 +52116,40 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -54756,7 +52158,7 @@ - + @@ -54768,24 +52170,25 @@ - + - + - + - + - + + - - + + - + @@ -54805,29 +52208,29 @@ - + - + - + - + - + - + - + - + - + @@ -54838,33 +52241,33 @@ - + - + - + - + - + - + - + - + - + - + @@ -54872,9 +52275,9 @@ - - - + + + @@ -54882,9 +52285,9 @@ - - - + + + @@ -54907,16 +52310,16 @@ - - - + + + - - - + + + @@ -54924,9 +52327,9 @@ - - - + + + @@ -54937,9 +52340,9 @@ - - - + + + @@ -54953,31 +52356,31 @@ - - - - - - - - + + + + + + + + - + - + - + - + - + @@ -54995,23 +52398,23 @@ - + - + - - - + + + - + - + - + @@ -55020,7 +52423,7 @@ - + @@ -55029,10 +52432,10 @@ - + - + @@ -55056,19 +52459,19 @@ - + - + - + - + - + @@ -55077,14 +52480,14 @@ - + - + - - + + @@ -55095,34 +52498,34 @@ - + - + - + - + - + - + - + - + - + - + @@ -55143,13 +52546,13 @@ - + - + - + @@ -55161,38 +52564,38 @@ - + - + - + - + - - - - - - - - - + + + + + + + + + - + - + - + @@ -55201,32 +52604,32 @@ - + - + - - + + - - - + + + - + - + - + @@ -55234,21 +52637,21 @@ - - + + - - + + - - - + + + - + - + @@ -55257,7 +52660,7 @@ - + @@ -55295,76 +52698,76 @@ - - + + - + - + - + - + - - - - - + + + + + - + - + - - + + - - + + - + - + - + - + - - - - + + + + - - + + - - + + @@ -55438,24 +52841,24 @@ - - - - - - - - - - - - - + + + + + + + + + + + + + - + @@ -55482,18 +52885,18 @@ - + - - + + - - - - + + + + @@ -55519,14 +52922,14 @@ - - - - - - - - + + + + + + + + @@ -55542,17 +52945,17 @@ - - - - - - - - - - - + + + + + + + + + + + @@ -55563,7 +52966,7 @@ - + @@ -55575,30 +52978,30 @@ - - - - + + + + - + - + - + - + - + - + @@ -55619,10 +53022,10 @@ - + - + @@ -55639,42 +53042,47 @@ - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - + + + + + + + + + + + + - + - + @@ -55684,28 +53092,28 @@ - + - + - + - + - + - + - + @@ -55715,9 +53123,9 @@ - + - + @@ -55727,38 +53135,38 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -55793,10 +53201,10 @@ - + - + @@ -55805,22 +53213,22 @@ - + - + - + - + - + - + @@ -55848,7 +53256,7 @@ - + @@ -55874,11 +53282,11 @@ - + - + @@ -55910,34 +53318,34 @@ - + - + - + - + - + - + - + @@ -55946,19 +53354,19 @@ - + - + - + - + - + @@ -55970,22 +53378,22 @@ - + - + - - - + + + - + - + - + @@ -55993,7 +53401,7 @@ - + @@ -56001,7 +53409,7 @@ - + @@ -56062,7 +53470,7 @@ - + @@ -56075,7 +53483,7 @@ - + @@ -56091,9 +53499,9 @@ - + - + @@ -56104,7 +53512,7 @@ - + @@ -56123,25 +53531,25 @@ - + - + - + - + - + - + - + @@ -56179,7 +53587,7 @@ - + @@ -56187,7 +53595,7 @@ - + @@ -56225,7 +53633,7 @@ - + @@ -56239,7 +53647,7 @@ - + @@ -56250,7 +53658,7 @@ - + @@ -56270,7 +53678,7 @@ - + @@ -56278,7 +53686,7 @@ - + @@ -56307,24 +53715,24 @@ - - - - - - - + + + + + + + - + - + - + @@ -56354,7 +53762,7 @@ - + @@ -56366,7 +53774,7 @@ - + @@ -56375,98 +53783,98 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - + + + + - + - + - + - + - + @@ -56475,22 +53883,22 @@ - + - + - + - + - + @@ -56508,13 +53916,13 @@ - + - + - + @@ -56522,9 +53930,9 @@ - + - + @@ -56533,25 +53941,25 @@ - + - + - + - + - + - + @@ -56560,22 +53968,22 @@ - + - + - + - + - + - + @@ -56590,13 +53998,13 @@ - + - + @@ -56605,13 +54013,13 @@ - + - + @@ -56644,10 +54052,10 @@ - + - + @@ -56659,34 +54067,34 @@ - + - + - + - + - - - - - - - - - - - + + + + + + + + + + + @@ -56697,18 +54105,18 @@ - + - + - - - - + + + + - + @@ -56723,10 +54131,10 @@ - + - + @@ -56735,36 +54143,36 @@ - + - + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + @@ -56792,22 +54200,22 @@ - - + + - - + + - + - + - + - + @@ -56828,10 +54236,10 @@ - - - - + + + + @@ -56839,8 +54247,8 @@ - - + + @@ -56854,8 +54262,8 @@ - - + + @@ -56863,28 +54271,28 @@ - + - - + + - + - - + + - + - + @@ -56898,38 +54306,38 @@ - - - - - - + + + + + + - + - + - - + + - - + + - + - + - + - + @@ -56938,39 +54346,39 @@ - + - + - + - + - + - - - - - - - + + + + + + + - + - - - - - + + + + + @@ -56984,13 +54392,13 @@ - + - + - + @@ -56998,206 +54406,206 @@ - - - - - - - - - - + + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -57216,13 +54624,13 @@ - - + + - - - + + + @@ -57233,12 +54641,12 @@ - + - - - + + + @@ -57249,20 +54657,20 @@ - + - - + + - - - - - - + + + + + + @@ -57276,12 +54684,12 @@ - + - - - + + + @@ -57352,9 +54760,9 @@ - - - + + + @@ -57383,10 +54791,10 @@ - - - - + + + + @@ -57400,10 +54808,10 @@ - - - - + + + + @@ -57417,21 +54825,21 @@ - + - - - - + + + + - - + + @@ -57439,12 +54847,12 @@ - + - - - + + + @@ -57455,30 +54863,30 @@ - + - + - + - + - + - + - + - + @@ -57487,90 +54895,90 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -57582,46 +54990,46 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -57630,55 +55038,55 @@ - + - + - + - + - - + + - - + + - + - + - + - + - + - + - - + + - - + + - + @@ -57686,10 +55094,10 @@ - - - - + + + + @@ -57697,19 +55105,19 @@ - + - - - - - - - - - - + + + + + + + + + + @@ -57738,10 +55146,10 @@ - - - - + + + + @@ -57755,13 +55163,13 @@ - + - - - - + + + + @@ -57769,24 +55177,24 @@ - + - + - + - - - + + + @@ -57797,17 +55205,17 @@ - + - + - - - + + + @@ -57833,12 +55241,12 @@ - + - - - + + + @@ -57852,40 +55260,40 @@ - + - - + + - - - - - + + + + + - + - + - + - + - + - + - + @@ -57914,43 +55322,43 @@ - + - + - + - + - - + + - + - + - + - + - - - - - - + + + + + + @@ -57964,43 +55372,43 @@ - - - - - - - - + + + + + + + + - + - + - + - + - + - + - - - - - - - - - - + + + + + + + + + + @@ -58008,32 +55416,32 @@ - - - - - - - - - + + + + + + + + + - + - + - + - + - + - + @@ -58041,16 +55449,16 @@ - + - - + + - - + + @@ -58058,10 +55466,10 @@ - + - + @@ -58073,14 +55481,14 @@ - - + + - - + + - + @@ -58089,47 +55497,47 @@ - + - - + + - - - - - + + + + + - + - + - + - + - + - + - + @@ -58138,10 +55546,10 @@ - + - + @@ -58156,33 +55564,53 @@ - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + @@ -58190,7 +55618,7 @@ - + @@ -58207,10 +55635,10 @@ - - - - + + + + @@ -58218,59 +55646,59 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - + + + + + @@ -58296,7 +55724,7 @@ - + @@ -58305,37 +55733,37 @@ - + - + - + - + - + - + - + - + - + @@ -58353,68 +55781,68 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -58422,7 +55850,7 @@ - + @@ -58430,17 +55858,17 @@ - + - + - + - + @@ -58448,10 +55876,10 @@ - + - + @@ -58460,16 +55888,16 @@ - + - + - + - + @@ -58484,19 +55912,19 @@ - + - + - + - + - + @@ -58514,13 +55942,13 @@ - + - + - + @@ -58535,7 +55963,7 @@ - + @@ -58550,16 +55978,16 @@ - + - + - + - + @@ -58574,7 +56002,7 @@ - + @@ -58607,10 +56035,10 @@ - + - + @@ -58631,7 +56059,7 @@ - + @@ -58664,7 +56092,7 @@ - + @@ -58673,95 +56101,95 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -58774,20 +56202,7 @@ - - - - - - - - - - - - - - + @@ -58800,13 +56215,13 @@ - + - + @@ -58824,22 +56239,22 @@ - + - + - + - + - + @@ -58851,143 +56266,143 @@ - + - + - + - + - - + + - + - + - - + + - - + + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -59008,13 +56423,13 @@ - + - + @@ -59023,44 +56438,44 @@ - + - + - + - + - + - + - + - - - - - - - - - - - - - - + + + + + + + + + + + + + + @@ -59068,39 +56483,29 @@ - + - + - + - + - + - - - - - - - - - - - + @@ -59114,26 +56519,26 @@ - + - + - + - + - + - + - - - + + + @@ -59141,15 +56546,15 @@ - + - + - + - + @@ -59167,53 +56572,53 @@ - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - + - + - + - + - - - - - + + + + + - + - + - - - - + + + + @@ -59221,11 +56626,11 @@ - + - - + + @@ -59233,13 +56638,13 @@ - + - + - + @@ -59247,24 +56652,24 @@ - + - - + + - + - + - + - + - + @@ -59273,20 +56678,20 @@ - - - + + + - - + + - + - + - + @@ -59295,19 +56700,19 @@ - + - + - + - + @@ -59325,52 +56730,51 @@ - + - + - + - - - - - - - - + + + + + + + - + - + - + - + - + - + - + @@ -59378,111 +56782,111 @@ - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + @@ -59490,10 +56894,10 @@ - + - + @@ -59502,31 +56906,31 @@ - + - + - + - + - + - + @@ -59535,18 +56939,18 @@ - + - + - + - + @@ -59554,10 +56958,10 @@ - - - - + + + + @@ -59565,32 +56969,32 @@ - + - + - + - - - - - - - - + + + + + + + + - + - + @@ -59598,18 +57002,18 @@ - + - + - + - + @@ -59623,40 +57027,40 @@ - - - - - + + + + + - + - + - + - + - + - + - + - + - + @@ -59665,55 +57069,55 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -59734,7 +57138,7 @@ - + @@ -59917,10 +57321,10 @@ - + - + @@ -59929,7 +57333,7 @@ - + @@ -59938,10 +57342,10 @@ - + - + @@ -59974,25 +57378,25 @@ - + - + - + - + @@ -60001,10 +57405,10 @@ - + - + @@ -60027,52 +57431,52 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -60110,13 +57514,13 @@ - + - + - + @@ -60137,21 +57541,22 @@ - + - + - + - - - + + + + @@ -60159,7 +57564,7 @@ - + @@ -60167,42 +57572,42 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -60231,60 +57636,60 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -60292,56 +57697,56 @@ - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - - + + @@ -60352,7 +57757,7 @@ - + @@ -60361,11 +57766,11 @@ - - - - - + + + + + @@ -60394,25 +57799,25 @@ - - - - - - - - - + + + + + + + + + - + - + - + @@ -60429,37 +57834,37 @@ - + - + - + - + - + - + - + - - - - - - + + + + + + @@ -60467,26 +57872,26 @@ - + - + - + - - - - + + + + - + - + @@ -60497,61 +57902,61 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -60569,31 +57974,31 @@ - + - + - + - + - + - + - + - + - + @@ -60602,24 +58007,24 @@ - + - + - + - + - + - + @@ -60628,30 +58033,30 @@ - + - + - + - + - + - + - + - + - + @@ -60659,18 +58064,18 @@ - + - + - + - + @@ -60679,40 +58084,40 @@ - + - + - + - + - + - + - + - + - + @@ -60727,13 +58132,13 @@ - + - + - + @@ -60745,27 +58150,27 @@ - - - - - - - - - - + + + + + + + + + + - + - + @@ -60783,7 +58188,7 @@ - + @@ -60792,7 +58197,7 @@ - + @@ -60806,10 +58211,10 @@ - + - + @@ -60827,18 +58232,18 @@ - + - + - + - + @@ -60847,13 +58252,13 @@ - + - + - + @@ -60862,16 +58267,16 @@ - + - + - + - + @@ -60880,28 +58285,28 @@ - + - + - + - + - + - + @@ -60916,15 +58321,15 @@ - - - - + + + + - + - + @@ -60936,111 +58341,111 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -61049,7 +58454,7 @@ - + @@ -61064,10 +58469,10 @@ - + - + @@ -61108,8 +58513,8 @@ - - + + @@ -61132,31 +58537,31 @@ - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - + - + - + @@ -61174,10 +58579,10 @@ - + - + @@ -61203,20 +58608,20 @@ - - - - - - - - - - - - - - + + + + + + + + + + + + + + @@ -61224,16 +58629,16 @@ - + - + - + @@ -61241,7 +58646,7 @@ - + @@ -61259,18 +58664,18 @@ - - - - + + + + - + - + - + @@ -61278,13 +58683,13 @@ - - + + - + - + @@ -61293,37 +58698,37 @@ - + - + - - - - - - - - - + + + + + + + + + - - + + - + - + - + @@ -61334,17 +58739,17 @@ - + - + - - + + - - + + @@ -61353,26 +58758,26 @@ - + - + - + - + - + - + @@ -61380,11 +58785,11 @@ - + - - + + @@ -61398,18 +58803,18 @@ - + - - - + + + - + - + @@ -61420,85 +58825,85 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + @@ -61507,42 +58912,475 @@ - - + + - - + + - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + @@ -61553,1325 +59391,1317 @@ - - + + - + - - - + + + - - - + + + - - - + + + - - - - + + + + - - - + + + - - + + - - - + + + - - + + - - + + - - + + - - - + + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - + + + + - - - - - + + + + + - - + + - + - - + + - - - - + + + + - - + + - - - + + + - - - + + + - - + + - - + + - - - - + + + + - - - + + + - - - + + + - + - - - - + + + + - - - - - - + + + + + + - - - - + + + + - + - + - - - - - + + + + + - - - - - + + + + + - + - - + + - - - + + + - - - - - - + + + + + + - - - + + + - - - - + + + + - - + + - + - - - + + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - - + + + + + - - - - - - + + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - + + - + - - + + - + - - + + - - + + - - + + - + - - + + - + - - + + - - + + - + - - + + - - + + - - + + - + - - + + - + - - - + + + - - - + + + - - - + + + - - - - + + + + - - - - - - + + + + + + - - - + + + - - - + + + - - - - - + + + + + - - - + + + - - - + + + - + - - - + + + - - - + + + - - + + - - - + + + - - + + - - + + - + - - - + + + - - - - - + + + + + - - - - - + + + + + - - + + - - - - - - - - - - - - - - - - - - - - - - - + + - - - + + + - - - + + - - - - + + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - - - - + + + + + - - - - - + + + + + - + - - + + - + - - + + - - + + - - + + - + - - + + - + - - + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - - + + + - - - + + + - - + + - - + + - - + + - - + + - - + + - + - - + + - + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - + + - - + + - - + + - + - + - - + + - + - + - - - + + + - - - + + + - - - - + + + + - - - + + + - - + + - + - - + + - - + + - - - + + + - - - - - + + + + + - + - - + + - + - - + + - - + + - - - + + + - - + + - - + + - - - + + + - - - - + + + + - - - - - + + + + + - - - - + + + + - - - + + + - - + + - - - + + + - - + + - - + + - - - - + + + + - + - - - + + + - + - - - - + + + + - - + + - - - + + + - - + + - + - - + + - + - + - - + + - - + + - - + + - - - + + + - - + + - - + + - - + + - - - + + + - - + + - + - - + + - - - - + + + + - - + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - + + - - - + + + - - - + + + - - + + - - + + - - - - - - - - - - - + - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - + + - - - - - + + + + + - - - + + + - - + + - + - - - - - - - - - + - + - + - + - + - + @@ -62885,7 +60715,7 @@ - + @@ -62893,9 +60723,17 @@ - + - + + + + + + + + + @@ -62903,9 +60741,9 @@ - + - + @@ -62914,25 +60752,25 @@ - + - + - + - + - + - + @@ -62941,22 +60779,22 @@ - + - + - + - + - + - + @@ -62971,13 +60809,13 @@ - + - + @@ -62986,13 +60824,13 @@ - + - + @@ -63025,10 +60863,10 @@ - + - + @@ -63040,21 +60878,21 @@ - + - + - + - + - + @@ -63066,7 +60904,7 @@ - + @@ -63078,13 +60916,13 @@ - + - + @@ -63096,23 +60934,23 @@ - - + + - + - + - + - + - + @@ -63126,42 +60964,42 @@ - + - + - + - + - + - - + + - + - + - - + + - - - + + + - + - + @@ -63170,7 +61008,7 @@ - + @@ -63179,86 +61017,86 @@ - + - + - + - + - + - - - - - - - - - - + + + + + + + + + + - + - + - + - + - + - - - - - - + + + + + + - + - + - + - + - + - + - + - + - + @@ -63270,21 +61108,21 @@ - + - + - + - + - + @@ -63293,21 +61131,21 @@ - + - - + + - + - + - + - + @@ -63316,7 +61154,7 @@ - + @@ -63331,7 +61169,7 @@ - + @@ -63349,7 +61187,7 @@ - + @@ -63418,22 +61256,22 @@ - + - + - + - + - + @@ -63442,7 +61280,7 @@ - + @@ -63451,78 +61289,78 @@ - + - + - + - - - + + + - + - + - + - + - + - + - + - - - + + + - - - + + + - - - + + + - + - - - + + + - + - + @@ -63532,42 +61370,42 @@ - + - + - + - + - + - + - + - + - - + + @@ -63587,12 +61425,12 @@ - + - + @@ -63604,54 +61442,54 @@ - - - - - + + + + + - - + + - - - - - + + + + + - - - - - + + + + + - - - - + + + + - - - - + + + + - - + + - - + + - + @@ -63665,31 +61503,31 @@ - + - + - + - + - + - + - + @@ -63697,7 +61535,7 @@ - + @@ -63706,10 +61544,10 @@ - + - + @@ -63721,16 +61559,16 @@ - + - + - + - + @@ -63742,31 +61580,31 @@ - + - + - + - + - + - + - + - + - + @@ -63793,63 +61631,63 @@ - + - + - + - - + + - + - + - - + + - - + + - + - + - + - - + + - + - + - + @@ -63861,15 +61699,15 @@ - - + + - - + + - + @@ -63877,160 +61715,160 @@ - + - - + + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - - + + - + - + - + - + - + - + - - + + - + - + - + - - + + - - + + - - + + - + - + - + - + - + - + - + @@ -64040,82 +61878,82 @@ - + - + - + - - + + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - - + + @@ -64126,18 +61964,18 @@ - + - + - + - + @@ -64164,13 +62002,13 @@ - + - + @@ -64182,19 +62020,19 @@ - + - + - + - + - + @@ -64203,19 +62041,19 @@ - + - + - + - + @@ -64236,15 +62074,15 @@ - + - + - + - + @@ -64253,8 +62091,8 @@ - - + + @@ -64307,70 +62145,70 @@ - - + + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -64388,17 +62226,17 @@ - - - + + + - + - + - + @@ -64410,25 +62248,25 @@ - + - + - + - + - + @@ -64446,32 +62284,32 @@ - + - - - - - - - - - + + + + + + + + + - + - + - + @@ -64479,50 +62317,50 @@ - - - + + + - + - + - + - + - + - + - + - - - + + + - + - + - + - + - + @@ -64537,24 +62375,24 @@ - + - + - + - + - + - + @@ -64569,306 +62407,47 @@ - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + - + - + - + @@ -64877,7 +62456,7 @@ - + @@ -64885,31 +62464,31 @@ - + - - - + + + - + - + - - + + @@ -64930,19 +62509,19 @@ - + - - + + - + - + - + @@ -64951,36 +62530,36 @@ - + - - + + - + - + - - + + - + - + - + - + - + @@ -64992,27 +62571,27 @@ - + - + - + - + - + - - + + - + - + @@ -65025,11 +62604,11 @@ - + - + @@ -65038,81 +62617,81 @@ - + - - - + + + - - + + - - - + + + - - + + - - + + - - + + - - + + - - - - + + + + - - + + - - - - - + + + + + - + - - + + - - + + - - + + - - + + - + @@ -65120,118 +62699,118 @@ - - + + - + - + - + - + - + - - + + - + - - + + - - - + + + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - - + + - - + + @@ -65246,25 +62825,25 @@ - + - - + + - - - + + + - + @@ -65272,7 +62851,7 @@ - + @@ -65282,22 +62861,22 @@ - + - + - - + + - - + + @@ -65309,16 +62888,16 @@ - + - + - + @@ -65326,24 +62905,24 @@ - + - + - + - + - + - + @@ -65355,12 +62934,12 @@ - - - - + + + + - + @@ -65369,14 +62948,14 @@ - + - - - - - + + + + + @@ -65399,26 +62978,26 @@ - + - + - - - + + + - - + + - + @@ -65429,54 +63008,54 @@ - + - - + + - - + + - + - + - + - + - + - + - + - + @@ -65484,7 +63063,7 @@ - + @@ -65493,7 +63072,7 @@ - + @@ -65503,7 +63082,7 @@ - + @@ -65514,7 +63093,7 @@ - + @@ -65526,7 +63105,7 @@ - + @@ -65539,7 +63118,7 @@ - + @@ -65553,7 +63132,7 @@ - + @@ -65568,7 +63147,7 @@ - + @@ -65585,37 +63164,37 @@ - - - - + + + + - - - - + + + + - + - + - + - + @@ -65632,12 +63211,12 @@ - - + + - + @@ -65648,56 +63227,56 @@ - + - + - + - + - + - + - + - + - + - + - - + + - - + + - + - + - + @@ -65705,13 +63284,13 @@ - + - + - + @@ -65720,16 +63299,16 @@ - + - + - + - + @@ -65744,19 +63323,19 @@ - + - + - + - + - + @@ -65780,26 +63359,26 @@ - + - + - + - + - + - + - + - + @@ -65808,26 +63387,26 @@ - + - + - + - + - + - + - - + + @@ -65837,7 +63416,7 @@ - + @@ -65858,9 +63437,9 @@ - - - + + + @@ -65973,23 +63552,23 @@ - - - - + + + + - + - + - + @@ -66010,16 +63589,16 @@ - - - - - - - - + + + + + + + + - + @@ -66028,12 +63607,12 @@ - + - + - + @@ -66045,9 +63624,9 @@ - + - + @@ -66062,24 +63641,24 @@ - + - + - + - + - + - + @@ -66088,7 +63667,7 @@ - + @@ -66103,27 +63682,27 @@ - + - + - + - + - + @@ -66131,8 +63710,8 @@ - - + + @@ -66140,11 +63719,11 @@ - - + + - + @@ -66152,30 +63731,30 @@ - - + + - + - + - - + + - + - - - + + + - + - + @@ -66184,35 +63763,35 @@ - - + + - - + + - + - + - + - + - + - + @@ -66230,24 +63809,24 @@ - + - + - + - + - + @@ -66255,18 +63834,18 @@ - - - - + + + + - + - + @@ -66276,11 +63855,11 @@ - - + + - + @@ -66292,11 +63871,11 @@ - - + + - + @@ -66307,46 +63886,46 @@ - + - + - - - - + + + + - - + + - + - - - + + + - + - - - + + + - - - - - - + + + + + + - + @@ -66354,7 +63933,7 @@ - + @@ -66366,22 +63945,22 @@ - - + + - + - + - + - + @@ -66390,30 +63969,30 @@ - + - + - + - + - + - + - + - + - + @@ -66424,80 +64003,80 @@ - - - - - - - - + + + + + + + + - - + + - - + + - - + + - + - + - + - + - - + + - - + + - - + + - - + + - + - - + + - - + + - - + + - + - + @@ -66505,10 +64084,10 @@ - + - + @@ -66517,16 +64096,16 @@ - + - + - + - + @@ -66541,19 +64120,19 @@ - + - + - + - + - + @@ -66571,13 +64150,13 @@ - + - + - + @@ -66592,7 +64171,7 @@ - + @@ -66607,16 +64186,16 @@ - + - + - + - + @@ -66631,7 +64210,7 @@ - + @@ -66664,10 +64243,10 @@ - + - + @@ -66688,7 +64267,7 @@ - + @@ -66721,7 +64300,7 @@ - + @@ -66730,42 +64309,42 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -66778,7 +64357,7 @@ - + @@ -66791,7 +64370,7 @@ - + @@ -66804,7 +64383,7 @@ - + @@ -66817,13 +64396,13 @@ - + - + @@ -66841,22 +64420,22 @@ - + - + - + - + - + @@ -66868,127 +64447,127 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -67009,13 +64588,13 @@ - + - + @@ -67024,292 +64603,46 @@ - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + @@ -67317,71 +64650,72 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + + - - - + + + - - + + - - - + + + - + - + - + @@ -67390,254 +64724,260 @@ - + - + - + - + - + - - - + + + - + - - + + - - + + - - - - + + + + - + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -67657,19 +64997,19 @@ - + - + - + - + @@ -67690,7 +65030,7 @@ - + @@ -67717,25 +65057,25 @@ - + - + - + - + - + @@ -67758,7 +65098,7 @@ - + @@ -67779,7 +65119,7 @@ - + @@ -67806,15 +65146,15 @@ - + - + - + @@ -67835,651 +65175,701 @@ - - + + - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - - + + - + - + - + - + - + - - - - + + + + - - + + - + - - - - - - - - - + + + + + + + + + - - - - - - - - - + + + + + + + + + - - + + - - - - - - - - + + + + + + + + - - - - + + + + - + - + - + - + - - - - - - - - + + + + + + + + - - - - - + + + + + - - - + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - - + + - + - + - - + + - + - + - + - + @@ -68488,25 +65878,25 @@ - + - + - + - + - + - + @@ -68515,22 +65905,22 @@ - + - + - + - + - + - + @@ -68545,13 +65935,13 @@ - + - + @@ -68560,13 +65950,13 @@ - + - + @@ -68599,10 +65989,10 @@ - + - + @@ -68614,21 +66004,21 @@ - + - + - + - + - + @@ -68640,7 +66030,7 @@ - + @@ -68652,13 +66042,13 @@ - + - + @@ -68670,5179 +66060,41 @@ - - + + - + - + - + - + - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + @@ -73851,7 +66103,7 @@ - + @@ -73866,7 +66118,7 @@ - + @@ -73884,7 +66136,7 @@ - + @@ -73953,22 +66205,22 @@ - + - + - + - + - + @@ -73977,248 +66229,45 @@ - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - + - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + @@ -74227,22 +66276,22 @@ - + - + - + - + - + @@ -74260,323 +66309,2669 @@ - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + + + + + + + + + + - - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + @@ -74597,7 +68992,7 @@ - + @@ -74606,7 +69001,7 @@ - + @@ -74615,13 +69010,13 @@ - + - + - + @@ -74636,842 +69031,2151 @@ - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + + + + - - - - - - - - - - - - - - - - - - - - - + + + + - - - + + + + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - + + + - - - + + + - - - + + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - + - - - + + + + + - - - - - - - - - - - - - - - - - - - + + + + + + + + + - - - - - - - + + + + + + - - - - + + + + + + + + + - - - - - - + + + + + + + + + + + + - - - - - + + + + - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + @@ -75479,10 +71183,10 @@ - + - + @@ -75491,31 +71195,31 @@ - + - + - + - + - + - + @@ -75524,621 +71228,55 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - - - - + - - - - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + @@ -76147,22 +71285,22 @@ - + - + - + - + - + @@ -76180,1152 +71318,174 @@ - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + - - - - - - + + + + + + + + + + + + + - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + @@ -77447,10 +71607,10 @@ - + - + @@ -77513,7 +71673,7 @@ - + @@ -77609,13 +71769,13 @@ - + - + - + @@ -77627,13 +71787,13 @@ - + - + - + @@ -77702,7 +71862,7 @@ - + @@ -77711,10 +71871,10 @@ - + - + @@ -77789,10 +71949,10 @@ - + - + @@ -77834,7 +71994,7 @@ - + @@ -77846,7 +72006,7 @@ - + @@ -77861,7 +72021,7 @@ - + @@ -77873,17 +72033,194 @@ - + - + - - + + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -77892,7 +72229,7 @@ - + @@ -77907,7 +72244,7 @@ - + @@ -77925,7 +72262,7 @@ - + @@ -77994,22 +72331,22 @@ - + - + - + - + - + @@ -78018,28 +72355,3985 @@ - + - + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -78047,13 +76341,13 @@ - + - + - + @@ -78062,65 +76356,65 @@ - + - + - + - + - + - + - + - + - + - - - - + + + + - + - + - + - + - + - + - + @@ -78146,7 +76440,7 @@ - + @@ -78155,37 +76449,37 @@ - + - + - + - + - + - + - + - + - + @@ -78203,68 +76497,68 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -78272,10 +76566,10 @@ - + - + @@ -78284,16 +76578,16 @@ - + - + - + - + @@ -78308,19 +76602,19 @@ - + - + - + - + - + @@ -78338,13 +76632,13 @@ - + - + - + @@ -78359,7 +76653,7 @@ - + @@ -78374,16 +76668,16 @@ - + - + - + - + @@ -78398,7 +76692,7 @@ - + @@ -78431,10 +76725,10 @@ - + - + @@ -78455,7 +76749,7 @@ - + @@ -78488,7 +76782,7 @@ - + @@ -78497,42 +76791,42 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -78545,7 +76839,7 @@ - + @@ -78558,7 +76852,7 @@ - + @@ -78571,7 +76865,46 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -78584,13 +76917,13 @@ - + - + @@ -78608,22 +76941,22 @@ - + - + - + - + - + @@ -78635,127 +76968,127 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -78776,13 +77109,13 @@ - + - + @@ -78791,87 +77124,112 @@ - + - + - + - + - + - + - + - - + - + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - + - + - - - - - - - + - + + + + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + @@ -78879,10 +77237,10 @@ - + - + @@ -78903,7 +77261,7 @@ - + @@ -78927,10 +77285,10 @@ - + - + @@ -78972,7 +77330,7 @@ - + @@ -79026,7 +77384,7 @@ - + @@ -79044,7 +77402,7 @@ - + @@ -79056,19 +77414,19 @@ - + - + - + - + - + @@ -79077,12 +77435,12 @@ - + - + - + @@ -79091,34 +77449,34 @@ - + - + - + - + - + - + - + - + - + @@ -79154,28 +77512,28 @@ - + - + - + - + - + - + - + - + @@ -79184,7 +77542,7 @@ - + @@ -79202,16 +77560,16 @@ - + - + - + - + @@ -79262,7 +77620,7 @@ - + @@ -79289,16 +77647,16 @@ - + - + - + - + @@ -79307,22 +77665,22 @@ - + - + - + - + - + - + @@ -79331,37 +77689,37 @@ - + - + - + - + - + - + - + - + - + @@ -79370,10 +77728,10 @@ - + - + @@ -79385,16 +77743,16 @@ - + - + - + - + @@ -79406,37 +77764,37 @@ - + - + - + - + - + - + - + - + - + @@ -79445,25 +77803,25 @@ - + - + - + - + - + - + - + @@ -79472,7 +77830,7 @@ - + @@ -79480,30 +77838,30 @@ - + - + - + - + - + - + - + - - - - + + + + @@ -79511,40 +77869,40 @@ - - + + - + - + - + - + - + - - + + - - - + + + - + - + - + @@ -79553,7 +77911,7 @@ - + @@ -79562,10 +77920,10 @@ - + - + @@ -79589,19 +77947,19 @@ - + - + - + - + - + @@ -79610,13 +77968,13 @@ - + - + - + @@ -79627,34 +77985,34 @@ - + - + - + - + - + - + - + - + - + - + @@ -79675,13 +78033,13 @@ - + - + - + @@ -79693,62 +78051,39 @@ - + - + - + - + - - - + - - - - - - - - - - - - - - - - - - - - - - + - + - + - + - + @@ -79766,36 +78101,57 @@ - + - + - - - - - - - - - - - - - + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + @@ -79825,19 +78181,19 @@ - + - + - + - + - + @@ -79852,28 +78208,28 @@ - + - + - + - + - + - + - + @@ -79885,21 +78241,21 @@ - + - + - + - + - + - + @@ -79908,10 +78264,10 @@ - + - + @@ -79932,17 +78288,17 @@ - - - + + + - + - + - + @@ -79954,19 +78310,19 @@ - - + + - + - + - + - + @@ -79984,145 +78340,145 @@ - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -80131,76 +78487,76 @@ - + - + - + - + - + - + - + - + - + - + - + - + - - + + - - + + - + - - - - + + + + - + - + - + - + - + - + - + @@ -80209,11 +78565,11 @@ - + - - + + @@ -80245,10 +78601,10 @@ - + - + @@ -80257,26 +78613,26 @@ - + - + - + - + - + - + - + - + @@ -80314,34 +78670,34 @@ - + - + - + - + - + - + - + @@ -80350,19 +78706,19 @@ - + - + - + - + - + @@ -80374,21 +78730,21 @@ - + - + - + - + - + - + @@ -80409,36 +78765,36 @@ - - + + - + - - + + - + - + - + - + - + - + - + @@ -80447,7 +78803,7 @@ - + @@ -80462,15 +78818,15 @@ - + - + - + - + @@ -80479,13 +78835,13 @@ - + - + - + @@ -80494,16 +78850,16 @@ - + - + - + - + @@ -80512,28 +78868,28 @@ - + - + - + - + - + - + @@ -80548,9 +78904,9 @@ - - - + + + @@ -80559,141 +78915,65 @@ - + - + - + - + - + - - - + + + + + + + - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - - + + - + - + - + - + - - + + @@ -80701,26 +78981,26 @@ - + - + - + - + - + - + - + - + @@ -80729,19 +79009,19 @@ - + - + - + - + @@ -80759,76 +79039,76 @@ - + - + - + - - + + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + @@ -80837,55 +79117,55 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -80906,7 +79186,7 @@ - + @@ -81089,10 +79369,10 @@ - + - + @@ -81101,7 +79381,7 @@ - + @@ -81110,10 +79390,10 @@ - + - + @@ -81146,25 +79426,25 @@ - + - + - + - + @@ -81173,43 +79453,43 @@ - + - + - + - + - + - + - + - + - - + + - + - + - + @@ -81232,132 +79512,55 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -81369,81 +79572,81 @@ - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -81461,31 +79664,31 @@ - + - + - + - + - + - + - + - + - + @@ -81494,24 +79697,24 @@ - + - + - + - + - + - + @@ -81520,18 +79723,18 @@ - + - + - + - + @@ -81540,40 +79743,40 @@ - + - + - + - + - + - + - + - + - + @@ -81588,13 +79791,13 @@ - + - + - + @@ -81606,86 +79809,86 @@ - + - + - + - + - + - - - - + + + + - - + + - - - + + + - - - + + + - - - + + + - + - - - + + + - + - - - + + + - + - - + + - - - + + + - - - - + + + + - - - - - - + + + + + + @@ -81695,17 +79898,17 @@ - - + + - - - - + + + + @@ -81713,28 +79916,28 @@ - + - + - + - + - + - + - + - + @@ -81743,7 +79946,7 @@ - + @@ -81752,12 +79955,12 @@ - + - + - + @@ -81766,25 +79969,25 @@ - + - + - + - + - + - + @@ -81793,22 +79996,22 @@ - + - + - + - + - + - + @@ -81823,13 +80026,13 @@ - + - + @@ -81838,13 +80041,13 @@ - + - + @@ -81877,10 +80080,10 @@ - + - + @@ -81892,21 +80095,21 @@ - + - + - + - + @@ -81915,22 +80118,22 @@ - + - + - + - + - + - + @@ -81942,10 +80145,10 @@ - + - + @@ -81957,37 +80160,37 @@ - + - + - + - + - + - + - + - + @@ -81999,19 +80202,19 @@ - + - + - + - + @@ -82020,13 +80223,13 @@ - + - + @@ -82038,25 +80241,25 @@ - + - + - + - + - + - + @@ -82077,7 +80280,7 @@ - + @@ -82085,37 +80288,37 @@ - + - + - + - + - - - - - + + + + + - + - + - + @@ -82136,7 +80339,7 @@ - + @@ -82145,7 +80348,7 @@ - + @@ -82154,7 +80357,7 @@ - + @@ -82175,14 +80378,14 @@ - - - + + + - + - + @@ -82194,7 +80397,7 @@ - + @@ -82206,13 +80409,13 @@ - + - + @@ -82224,238 +80427,238 @@ - + - - - + + + - - + + - + - + - + - - + + - + - + - + - + - - + + - - + + - - + + - + - + - + - + - + - + - + - + - - - + + + - + - + - + - - + + - - - + + + - - + + - + - + - + - - + + - - + + - - + + - - - + + + - - + + - - + + - - - - + + + + - - - + + + - - - - + + + + - - + + - - - + + + - + - + - + - - + + - - - + + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - + @@ -82464,22 +80667,22 @@ - + - + - + - + - + - + @@ -82491,10 +80694,10 @@ - + - + @@ -82506,37 +80709,37 @@ - + - + - + - + - + - + - + - + - + @@ -82548,19 +80751,19 @@ - + - + - + - + @@ -82569,13 +80772,13 @@ - + - + @@ -82587,25 +80790,25 @@ - + - + - + - + - + - + @@ -82626,18 +80829,18 @@ - + - + - + - + @@ -82658,7 +80861,7 @@ - + @@ -82667,7 +80870,7 @@ - + @@ -82676,13 +80879,13 @@ - + - + - + @@ -82697,9 +80900,9 @@ - + - + @@ -82708,25 +80911,25 @@ - + - + - + - + - + - + @@ -82735,22 +80938,22 @@ - + - + - + - + - + - + @@ -82765,13 +80968,13 @@ - + - + @@ -82780,13 +80983,13 @@ - + - + @@ -82819,10 +81022,10 @@ - + - + @@ -82834,20 +81037,20 @@ - + - + - - - + + + - + @@ -82871,10 +81074,10 @@ - + - + @@ -82898,13 +81101,13 @@ - + - + @@ -82913,7 +81116,7 @@ - + @@ -82922,16 +81125,16 @@ - + - + - + - + @@ -82940,40 +81143,40 @@ - + - + - + - - - + + + - + - + - + - + - + @@ -82982,23 +81185,23 @@ - + - + - + - + - - + + @@ -83009,10 +81212,10 @@ - + - + @@ -83021,16 +81224,16 @@ - + - + - + - + @@ -83039,32 +81242,31 @@ - + - + - + - + - + - + - - + @@ -83072,40 +81274,40 @@ - + - + - - + + - + - + - + - + - + - + - + - + @@ -83114,13 +81316,13 @@ - + - + @@ -83141,13 +81343,13 @@ - + - + - + @@ -83177,31 +81379,31 @@ - + - + - + - + - + - + - + @@ -83213,7 +81415,7 @@ - + @@ -83222,7 +81424,7 @@ - + @@ -83237,37 +81439,37 @@ - + - + - + - + - + - + - + - + @@ -83276,27 +81478,27 @@ - + - + - + - + - + - + - + @@ -83308,25 +81510,25 @@ - + - + - + - + - + - + @@ -83347,7 +81549,7 @@ - + @@ -83359,24 +81561,25 @@ - + - + - + - - + + + - + @@ -83394,305 +81597,305 @@ - + - + - + - + - + - + - + - - + + - - + + - - - + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - - + + - - + + - + - + - - + + - + - + - - + + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - + + + - - + + - - + + - + - + - + - + - + - + - - - + + + - + - + - + - + - + - - - + + + - - + + - - - + + + - + - + - + - + - + - + - - + + - - + + - + @@ -83700,28 +81903,28 @@ - + - + - + - + - + - + - + - + @@ -83730,7 +81933,7 @@ - + @@ -83739,12 +81942,12 @@ - + - + - + @@ -83753,25 +81956,25 @@ - + - + - + - + - + - + @@ -83780,22 +81983,22 @@ - + - + - + - + - + - + @@ -83810,13 +82013,13 @@ - + - + @@ -83825,13 +82028,13 @@ - + - + @@ -83864,10 +82067,10 @@ - + - + @@ -83879,62 +82082,299 @@ - + - + - + - + - + - + - + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + + + + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + @@ -83943,22 +82383,22 @@ - + - + - + - + - + @@ -83976,187 +82416,203 @@ - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - + + + + - - - + + + - - - + + + - - - + + + - - - - - - - - - - - - - - - - - + - + - + - + - + - + - + - + @@ -84180,10 +82636,10 @@ - + - + @@ -84192,57 +82648,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -84256,424 +82662,105 @@ - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - + + - - + + - + - + - - + + - - + + - + - - + + - + - + - + - - + + - - - + + + - - + + - - - - + + + + - - - + + + - - - + + + - - + + - + - + - + - + - + - + @@ -84682,22 +82769,22 @@ - + - + - + - + - + @@ -84715,39 +82802,39 @@ - + - + - + - - + + - - + + - - + + - - + + - + - - + + - + - + @@ -84762,10 +82849,10 @@ - + - + @@ -84774,133 +82861,133 @@ - + - + - - - + + + - + - + - + - + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - + - + - + - + - + @@ -84912,70 +82999,120 @@ - + - + - + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - + + + + - + - - + + - + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + @@ -84983,7 +83120,7 @@ - + @@ -84991,70 +83128,70 @@ - - + + - + - + - + - - + + - + - + - + - - + + - + - + - - - - + + + + - + - + - + - + - + @@ -85063,22 +83200,22 @@ - + - + - + - + - + @@ -85096,42 +83233,42 @@ - + - + - + - + - + - - + + - - - - + + + + - - + + - + - - + + - + @@ -85154,7 +83291,7 @@ - + @@ -85166,285 +83303,285 @@ - + - + - - + + - + - - + + - + - - + + - - + + - - + + - + - - + + - - + + - - + + - - - + + + - - - - - + + + + + - + - - + + - - - + + + - + - - + + - - + + - - - - + + + + - + - + - + - + - + - + - + - + - + - - + + - - + + - - - + + + - - + + - - - + + + - + - + - + - - + + - + - + - + - - + + - + - + - + - - - - - - + + + + + + - + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - + - - + + - - + + - - - - - - + + + + + + - - - + + + - - - + + + @@ -85454,24 +83591,24 @@ - + - + - + - + - + - + @@ -85489,25 +83626,27 @@ - + + + - - - + + + - + - + - + - + @@ -85516,7 +83655,7 @@ - + @@ -85531,19 +83670,19 @@ - + - + - + - + - + @@ -85552,18 +83691,18 @@ - + - + - + - + - + @@ -85572,118 +83711,129 @@ - + - + - + - + - + - + + + + + + + + + + + + - + - - + + - - - + + + - - + + - + - + - + - + - - + + - + - + - + - + - - + + - - + + - + - + - - + + - - + + - - + + - + - + @@ -85692,13 +83842,13 @@ - + - + - + @@ -85709,28 +83859,28 @@ - - - + + + - - - + + + - - - + + + - - - + + + - + - + @@ -85741,13 +83891,13 @@ - + - + - + @@ -85756,83 +83906,83 @@ - + - + - - - + + + - - - - + + + + - - - + + + - + - - - + + + - + - - + + - - - - + + + + - - - - + + + + - - - - + + + + - - - + + + - - + + - + - + @@ -85841,22 +83991,22 @@ - + - + - + - + - + - + @@ -85868,10 +84018,10 @@ - + - + @@ -85883,37 +84033,37 @@ - + - + - + - + - + - + - + - + - + @@ -85925,19 +84075,19 @@ - + - + - + - + @@ -85946,13 +84096,13 @@ - + - + @@ -85964,25 +84114,25 @@ - + - + - + - + - + - + @@ -86003,15 +84153,15 @@ - + - + - + @@ -86020,7 +84170,7 @@ - + @@ -86055,7 +84205,7 @@ - + @@ -86142,10 +84292,10 @@ - + - + @@ -86208,7 +84358,7 @@ - + @@ -86220,10 +84370,10 @@ - + - + @@ -86232,7 +84382,7 @@ - + @@ -86304,13 +84454,13 @@ - + - + - + @@ -86325,10 +84475,10 @@ - + - + @@ -86388,7 +84538,7 @@ - + @@ -86397,7 +84547,7 @@ - + @@ -86406,10 +84556,10 @@ - + - + @@ -86487,7 +84637,7 @@ - + @@ -86544,7 +84694,7 @@ - + @@ -86553,10 +84703,10 @@ - + - + @@ -86568,18 +84718,18 @@ - - + + - + - + - + - + @@ -86588,7 +84738,7 @@ - + @@ -86603,7 +84753,7 @@ - + @@ -86621,7 +84771,7 @@ - + @@ -86690,22 +84840,22 @@ - + - + - + - + - + @@ -86714,28 +84864,28 @@ - + - + - + - + - + - + - + @@ -86743,10 +84893,10 @@ - + - + @@ -86755,31 +84905,31 @@ - + - + - + - + - + - + @@ -86788,28 +84938,28 @@ - + - - + + - + - + - + - + - + @@ -86818,22 +84968,22 @@ - + - + - + - + - + @@ -86851,15 +85001,15 @@ - + - + - + - + @@ -86868,25 +85018,25 @@ - + - + - + - + - + - + @@ -86895,22 +85045,22 @@ - + - + - + - + - + - + @@ -86925,13 +85075,13 @@ - + - + @@ -86940,13 +85090,13 @@ - + - + @@ -86979,10 +85129,10 @@ - + - + @@ -86994,22 +85144,22 @@ - + - + - - + + - + - + @@ -87021,7 +85171,7 @@ - + @@ -87033,13 +85183,13 @@ - + - + @@ -87051,18 +85201,19 @@ - - + + + - + - + - + @@ -87086,10 +85237,10 @@ - + - + @@ -87113,13 +85264,13 @@ - + - + @@ -87128,7 +85279,7 @@ - + @@ -87137,16 +85288,16 @@ - + - + - + - + @@ -87155,10 +85306,10 @@ - + - + @@ -87169,7 +85320,7 @@ - + @@ -87196,13 +85347,13 @@ - + - + @@ -87211,29 +85362,29 @@ - + - + - + - + - + - + - + - - + + @@ -87241,7 +85392,7 @@ - + @@ -87250,66 +85401,67 @@ - - + + - + - - + + + - + - + - + - + - + - - - + + + - + - + - + - + - + - + - + - + @@ -87318,37 +85470,37 @@ - + - + - + - + - + - + - + - + - + @@ -87360,9 +85512,9 @@ - - - + + + @@ -87376,16 +85528,16 @@ - + - + - + @@ -87394,7 +85546,7 @@ - + @@ -87421,10 +85573,10 @@ - + - + @@ -87433,7 +85585,7 @@ - + @@ -87442,13 +85594,13 @@ - + - + - + @@ -87520,35 +85672,35 @@ - + - + - + - + - + - + - - + + @@ -87571,23 +85723,23 @@ - + - + - + - + - + - + - + @@ -87595,45 +85747,45 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -87642,13 +85794,13 @@ - + - + @@ -87669,13 +85821,13 @@ - + - + - + @@ -87705,31 +85857,31 @@ - + - + - + - + - + - + - + @@ -87741,7 +85893,7 @@ - + @@ -87750,7 +85902,7 @@ - + @@ -87765,37 +85917,37 @@ - + - + - + - + - + - + - + - + @@ -87804,45 +85956,45 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -87863,25 +86015,25 @@ - - + + - + - + - + - + - + @@ -87893,122 +86045,122 @@ - - + + - + - - - + + + - + - - + + - + - + - + - - - + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -88017,12 +86169,12 @@ - + - + @@ -88031,18 +86183,18 @@ - + - + - + - + - + @@ -88050,15 +86202,15 @@ - + - + - + @@ -88066,7 +86218,7 @@ - + @@ -88082,7 +86234,7 @@ - + @@ -88095,18 +86247,18 @@ - + - + - + @@ -88114,9 +86266,9 @@ - + - + @@ -88127,18 +86279,18 @@ - + - + - + @@ -88147,17 +86299,17 @@ - + - + - + - + @@ -88166,19 +86318,30 @@ - - - + + + + + + + + + + + + + + - + - + - + @@ -88190,31 +86353,31 @@ - + - + - - + + - + - + - + @@ -88235,7 +86398,7 @@ - + @@ -88244,7 +86407,7 @@ - + @@ -88253,13 +86416,13 @@ - + - + - + @@ -88274,8 +86437,8 @@ - - + + @@ -88286,10 +86449,10 @@ - + - + @@ -88298,16 +86461,16 @@ - + - + - + - + @@ -88316,94 +86479,94 @@ - + - + - + - + - + - + - - + + - + - + - + - + - + - - - + + + - + - - + + - + - - + + - + - - + + - + - - + + - - + + @@ -88416,15 +86579,15 @@ - + - - + + - - + + @@ -88441,42 +86604,42 @@ - + - + - + - + - + - + - + - + - + - + @@ -88500,10 +86663,10 @@ - + - + @@ -88512,26 +86675,26 @@ - + - - + + - + - + - + - + @@ -88540,127 +86703,61 @@ - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + + - + - + - + - + - + - + - - - + + + - + - + @@ -88668,42 +86765,42 @@ - - + + - + - + - + - + - + - + - + @@ -88727,10 +86824,10 @@ - + - + @@ -88739,8 +86836,7 @@ - - + @@ -88748,28 +86844,28 @@ - + - + - + - + - + - + - + - + @@ -88778,7 +86874,7 @@ - + @@ -88787,12 +86883,12 @@ - + - + - + @@ -88801,25 +86897,25 @@ - + - + - + - + - + - + @@ -88828,22 +86924,22 @@ - + - + - + - + - + - + @@ -88858,13 +86954,13 @@ - + - + @@ -88873,13 +86969,13 @@ - + - + @@ -88912,10 +87008,10 @@ - + - + @@ -88927,21 +87023,21 @@ - + - + - + - + @@ -88950,22 +87046,22 @@ - + - + - + - + - + - + @@ -88977,10 +87073,10 @@ - + - + @@ -88992,37 +87088,37 @@ - + - + - + - + - + - + - + - + @@ -89034,19 +87130,19 @@ - + - + - + - + @@ -89055,13 +87151,13 @@ - + - + @@ -89073,25 +87169,25 @@ - + - + - + - + - + @@ -89112,14 +87208,14 @@ - - - + + + - + - + @@ -89131,7 +87227,7 @@ - + @@ -89143,13 +87239,13 @@ - + - + @@ -89161,16 +87257,17 @@ - - + + + - + - + @@ -89179,38 +87276,38 @@ - + - + - + - + - + - + - + - + - + - + @@ -89219,22 +87316,22 @@ - + - + - + - + @@ -89252,15 +87349,15 @@ - + - + - - - + + + @@ -89268,10 +87365,10 @@ - + - + @@ -89285,47 +87382,47 @@ - + - - - - + + + + - - + + - + - + - + - + - + - + - + - + @@ -89334,24 +87431,24 @@ - + - + - + - + - + @@ -89372,7 +87469,7 @@ - + @@ -89381,7 +87478,7 @@ - + @@ -89390,13 +87487,13 @@ - + - + - + @@ -89412,161 +87509,161 @@ - + - + - + - - - + + + - + - + - + - + - + - + - + - - + + - + - + - + - - + + - + - - + + - + - + - + - + - + - - + + - + - + - + - - + + - + - - + + - - + + - + - + - + - - - + + + - + @@ -89574,13 +87671,13 @@ - + - + - + @@ -89601,10 +87698,10 @@ - + - + @@ -89625,187 +87722,187 @@ - + - - - - - + + + + + - + - - + + - + - - + + - - + + - - - + + + - + - - - + + + - + - + - - + + - + - - + + - - - + + + - - - - + + + + - + - - - + + + - - + + - - - + + + - - - + + + - + - - - + + + - - - + + + - - - + + + - - - + + + - - - - + + + + - + - + - + - + - + - + - + - + @@ -89814,22 +87911,22 @@ - + - + - + - + - + - + @@ -89841,10 +87938,10 @@ - + - + @@ -89856,37 +87953,37 @@ - + - + - + - + - + - + - + - + - + @@ -89898,19 +87995,19 @@ - + - + - + - + @@ -89919,13 +88016,13 @@ - + - + @@ -89937,25 +88034,25 @@ - + - + - + - + - + - + @@ -89976,1087 +88073,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -91067,7 +88084,7 @@ - + @@ -91094,13 +88111,13 @@ - + - + @@ -91109,30 +88126,30 @@ - + - + - + - + - + - + - + - + - + @@ -91156,10 +88173,10 @@ - + - + @@ -91183,13 +88200,13 @@ - + - + @@ -91198,7 +88215,7 @@ - + @@ -91207,16 +88224,16 @@ - + - + - + - + @@ -91225,484 +88242,260 @@ - + - - - - - - - - + - + - + - + - + - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - + - + - - - - - - - - - + - + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + + + + - + - + - - - - + - + - - - - + - + + + + + + + + + + - + - - + + + + + + + + + + + + + + - + - + - - - - - + + - + - + - - + + - - + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - + + + - - - - - - - - - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + @@ -91710,15 +88503,15 @@ - + - + - + @@ -91726,7 +88519,7 @@ - + @@ -91742,7 +88535,7 @@ - + @@ -91755,18 +88548,18 @@ - + - + - + @@ -91774,9 +88567,9 @@ - + - + @@ -91787,18 +88580,18 @@ - + - + - + @@ -91807,17 +88600,17 @@ - + - + - + - + @@ -91826,2595 +88619,208 @@ - + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + - - - - - - - + - - - - - - - + - - - - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - + - + - + - - - - - - - - - - - - - + - + - + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - + - + - + - - + + - - - - - + + - + + + + + + + + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + @@ -94423,13 +88829,13 @@ - + - + @@ -94450,13 +88856,13 @@ - + - + - + @@ -94486,31 +88892,31 @@ - + - + - + - + - + - + - + @@ -94522,7 +88928,7 @@ - + @@ -94531,7 +88937,7 @@ - + @@ -94546,37 +88952,37 @@ - + - + - + - + - + - + - + - + @@ -94585,27 +88991,27 @@ - + - + - + - + - + - + - + @@ -94617,25 +89023,25 @@ - + - + - + - + - + - + @@ -94656,7 +89062,7 @@ - + @@ -94668,170 +89074,3715 @@ - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + + + + - + - + - - - - - - - - + + + + + + + + - - + + - + - + - + - + - + - - - - + + + + - + - - - - + + + + - - - - + + + + - - - - - + + + + + - - - - + + + + - - - + + + - - - - - + + + + + - - - - + + + + - - - - + + + + - + - - + + - - - - - + + + + + - + - + - + - + - + - + @@ -94852,19 +92803,19 @@ - + - + - + - + - + @@ -94876,97 +92827,97 @@ - + - + - + - + - - - - + + + + - - - - + + + + - - - - - + + + + + - + - - - - + + + + - + - - - + + + - + - - - + + + - - - + + + - - + + - - - + + + - + - + - + - + - - + + - + @@ -94975,22 +92926,22 @@ - + - + - + - + - + - + @@ -95002,10 +92953,10 @@ - + - + @@ -95017,37 +92968,37 @@ - + - + - + - + - + - + - + - + @@ -95059,19 +93010,19 @@ - + - + - + - + @@ -95080,13 +93031,13 @@ - + - + @@ -95098,25 +93049,25 @@ - + - + - + - + - + @@ -95138,249 +93089,249 @@ - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - - - + + + - + - + - + - - + + - + - - + + - - + + - - + + - + - - + + - + - + - + - + - + - + - + - + - + - - + + - + - - + + - - + + - + - + - + - + - + - + - - + + - - - + + + - - - + + + - - - + + + - - + + - + - + - - + + - + - + @@ -95407,15 +93358,15 @@ - + - + - + @@ -95424,22 +93375,22 @@ - + - + - + - + - + - + @@ -95451,10 +93402,10 @@ - + - + @@ -95466,37 +93417,37 @@ - + - + - + - + - + - + - + - + @@ -95508,19 +93459,19 @@ - + - + - + - + @@ -95529,13 +93480,13 @@ - + - + @@ -95547,25 +93498,25 @@ - + - + - + - + - + @@ -95586,18 +93537,18 @@ - + - + - + - + @@ -95618,7 +93569,7 @@ - + @@ -95627,7 +93578,7 @@ - + @@ -95636,7 +93587,7 @@ - + @@ -95657,20 +93608,20 @@ - + - + - + - + - + - + @@ -95691,110 +93642,110 @@ - + - + - + - + - - - - - - - + + + + + + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - - + + - + - + - - + + - - + + - + - - + + - - + + - + - + - + - + - + @@ -95814,19 +93765,19 @@ - + - + - + - + - + @@ -95838,19 +93789,19 @@ - + - + - + - + @@ -95859,240 +93810,196 @@ - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - + - + - - + + - + - - - + + + - - + + - + - - - + + + - + - - - - + + + + - - - + + + - + - - - + + + - + - - + + - + - + - + - + - + - + - + - - - + + + - - + + - - + + - + - + - - + + - - - + + + - - - - - - - + + + + + + + - - - - + + + + - + - - - - - - + + + + + + - - - - + + + + - + - + @@ -96100,7 +94007,7 @@ - + @@ -96115,56 +94022,56 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -96173,153 +94080,139 @@ - + - - - + + + - + - + - + - - - - - - - - - - - - - - - + - + - - + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - - + + - - - + + + - + - - + + @@ -96328,70 +94221,70 @@ - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - + - - + + - + - + - + @@ -96400,12 +94293,12 @@ - + - + - + @@ -96414,103 +94307,103 @@ - + - + - + - + - - + + - - - + + + - + - + - + - + - + - + - + - + - + - - - - - + + + + + - + - + - + - + - + - - - - - - + + + + + + - + - + - + - + - - - - - + + + + + - + @@ -96519,129 +94412,129 @@ - + - + - - - - - - + + + + + + - + - + - + - - + + - + - - + + - - + + - + - + - - + + - + - + - + - - + + - + - - + + - + - - + + - - - + + + - - - - + + + + - - + + - + - - + + - + - - - + + + - - + + - - - + + + - + - + - + @@ -96650,87 +94543,87 @@ - + - + - + - + - - + + - + - + - + - + - + - + - - + + - - + + - + - + - + - - + + - + - + - + - + - + - + - + @@ -96769,23 +94662,23 @@ - + - + - + - + - + - + - + @@ -96794,22 +94687,22 @@ - + - + - + - + - + - + @@ -96827,7 +94720,7 @@ - + @@ -96836,10 +94729,10 @@ - + - + @@ -96860,7 +94753,7 @@ - + @@ -96868,16 +94761,16 @@ - + - + - + @@ -96886,34 +94779,34 @@ - + - + - + - + - + - + - + - + - + @@ -96931,7 +94824,7 @@ - + @@ -96940,10 +94833,10 @@ - + - + @@ -96955,22 +94848,22 @@ - + - + - + - + - + - + @@ -96982,19 +94875,19 @@ - + - + - + - + @@ -97012,16 +94905,16 @@ - + - + - + @@ -97030,107 +94923,107 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - - + + - - - - + + + + - - + + - - + + @@ -97252,10 +95145,10 @@ - + - + @@ -97414,13 +95307,13 @@ - + - + - + @@ -97435,10 +95328,10 @@ - + - + @@ -97507,7 +95400,7 @@ - + @@ -97516,10 +95409,10 @@ - + - + @@ -97597,7 +95490,7 @@ - + @@ -97654,7 +95547,7 @@ - + @@ -97666,7 +95559,7 @@ - + @@ -97678,17 +95571,17 @@ - + - + - + - + - + @@ -97697,7 +95590,7 @@ - + @@ -97712,7 +95605,7 @@ - + @@ -97730,7 +95623,7 @@ - + @@ -97799,22 +95692,22 @@ - + - + - + - + - + @@ -97823,107 +95716,38 @@ - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - + + - - - - + + + + @@ -97931,10 +95755,10 @@ - + - + @@ -97963,48 +95787,33 @@ - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - + + @@ -98016,9 +95825,9 @@ - + - + @@ -98030,52 +95839,52 @@ - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - - - - + + + + @@ -98089,162 +95898,162 @@ - - + + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - + - + - + - - + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - + - + - + @@ -98283,15 +96092,15 @@ - + - + - + - + @@ -98299,16 +96108,16 @@ - + - + - + @@ -98317,34 +96126,34 @@ - + - + - + - + - + - + - + - + - + @@ -98362,7 +96171,7 @@ - + @@ -98371,10 +96180,10 @@ - + - + @@ -98386,22 +96195,22 @@ - + - + - + - + - + - + @@ -98413,19 +96222,19 @@ - + - + - + - + @@ -98443,16 +96252,16 @@ - + - + - + @@ -98461,13 +96270,13 @@ - + - + @@ -98478,154 +96287,154 @@ - - - + - + - - - + + + + + - + - + - + - + - - + + - + - - + + - + - + - + - + - + - + - + - + - + - - + + - - + + - + - - + + - + - + - + - + - - + + - - + + - - + + - - + + - - + + - + - + @@ -98633,26 +96442,26 @@ - + - + - + - + - + - + - + @@ -98664,60 +96473,60 @@ - + - + - + - + - + - + - + - + - - + + - - + + - + - + - + - + - + - + @@ -98726,18 +96535,18 @@ - + - + - + @@ -98746,18 +96555,18 @@ - + - + - + - + - + @@ -98765,15 +96574,15 @@ - + - + - + @@ -98781,7 +96590,7 @@ - + @@ -98797,7 +96606,7 @@ - + @@ -98810,18 +96619,18 @@ - + - + - + @@ -98829,9 +96638,9 @@ - + - + @@ -98842,18 +96651,18 @@ - + - + - + @@ -98862,17 +96671,17 @@ - + - + - + - + @@ -98881,28 +96690,26 @@ - - - + - + - + - + - + - + @@ -98923,7 +96730,7 @@ - + @@ -98932,7 +96739,7 @@ - + @@ -98941,7 +96748,7 @@ - + @@ -98962,53 +96769,53 @@ - + - - + + - + - + - - - + + + - + - - - + + + - - + + - - + + - + - + - + - + @@ -99017,25 +96824,25 @@ - + - + - + - + - + - + @@ -99044,22 +96851,22 @@ - + - + - + - + - + - + @@ -99074,13 +96881,13 @@ - + - + @@ -99089,13 +96896,13 @@ - + - + @@ -99128,10 +96935,10 @@ - + - + @@ -99143,110 +96950,210 @@ - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - + - + - + - + - + - + - + - + - + - - + + - + - + - - + + - + - - - - + + + + - + - - - + + + - + - + @@ -99305,13 +97212,13 @@ - + - + - + @@ -99329,28 +97236,28 @@ - + - + - + - + - + - + @@ -99359,12 +97266,12 @@ - + - + @@ -99379,7 +97286,7 @@ - + @@ -99442,7 +97349,7 @@ - + @@ -99450,76 +97357,76 @@ - + - + - + - + - + - + - - - - - - - - + + + + + + + + - - + + - - + + - - - - - + + + + + - - + + - - + + - - + + - + - - - + + + - + - + @@ -99528,25 +97435,25 @@ - + - + - + - + - + - + @@ -99555,22 +97462,22 @@ - + - + - + - + - + - + @@ -99585,13 +97492,13 @@ - + - + @@ -99600,13 +97507,13 @@ - + - + @@ -99639,10 +97546,10 @@ - + - + @@ -99654,23 +97561,23 @@ - + - + - - - + + + - + - + @@ -99682,7 +97589,7 @@ - + @@ -99694,13 +97601,13 @@ - + - + @@ -99712,89 +97619,89 @@ - + - - + + - + - - + + - + - + - + - - + + - - + + - + - + - + - + - - + + - + - + - - + + - + - + - - + + - - + + - + - - + + - + @@ -99802,49 +97709,49 @@ - + - + - + - + - + - + - + - - + + - + - - + + - + - + - - + + @@ -99858,57 +97765,57 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -99917,37 +97824,37 @@ - + - + - + - + - + - + - + - + - + - + - - + + @@ -99956,13 +97863,13 @@ - - + + - + - + @@ -99980,21 +97887,21 @@ - + - + - + - + - + - + @@ -100003,244 +97910,244 @@ - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -100248,15 +98155,15 @@ - + - + - + @@ -100264,7 +98171,7 @@ - + @@ -100280,7 +98187,7 @@ - + @@ -100293,18 +98200,18 @@ - + - + - + @@ -100312,9 +98219,9 @@ - + - + @@ -100325,29 +98232,57 @@ - + - + + + + + + + + + + + + + + + - + - - - + + + - - + + - - + + + + + + + + + + + + + + + + @@ -100355,23 +98290,23 @@ - + - - + + - - + + - + - + - + @@ -100392,19 +98327,19 @@ - + - + - + @@ -100421,13 +98356,13 @@ - + - + - + @@ -100439,7 +98374,7 @@ - + @@ -100472,10 +98407,10 @@ - + - + @@ -100613,42 +98548,42 @@ - + - + - + - + - + - + - + - + - + @@ -100660,58 +98595,58 @@ - + - + - + - + - + - + - + - + - + - + - - + + - - - + + + - + - + - - + + @@ -100725,7 +98660,7 @@ - + @@ -100743,7 +98678,7 @@ - + @@ -100752,80 +98687,107 @@ - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - - - + + + - - + + - - + + - - + + - + - - + + - - + + - - - + + + - + - + - + - + - + - + - + - + - + @@ -100842,60 +98804,60 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -100916,43 +98878,43 @@ - + - + - + - + - + - + - + - + - + - + @@ -100961,7 +98923,7 @@ - + @@ -100970,7 +98932,7 @@ - + @@ -100979,7 +98941,7 @@ - + @@ -100991,15 +98953,15 @@ - + - + - + - + @@ -101010,27 +98972,27 @@ - + - + - + - + - + @@ -101039,62 +99001,62 @@ - + - - + + - - - + + + - + - + - - - + + + - + - + - + - + - + - + - + - + - + - + @@ -101111,13 +99073,13 @@ - + - + - + @@ -101129,7 +99091,7 @@ - + @@ -101162,10 +99124,10 @@ - + - + @@ -101303,37 +99265,37 @@ - + - + - + - + - + - + - + - + @@ -101341,28 +99303,28 @@ - + - + - + - + - + - + - + - + @@ -101371,7 +99333,7 @@ - + @@ -101380,15 +99342,15 @@ - + - + - + @@ -101397,22 +99359,22 @@ - + - + - + - + - + - + @@ -101424,10 +99386,10 @@ - + - + @@ -101439,37 +99401,37 @@ - + - + - + - + - + - + - + - + - + @@ -101481,19 +99443,19 @@ - + - + - + - + @@ -101502,13 +99464,13 @@ - + - + @@ -101520,25 +99482,25 @@ - + - + - + - + - + - + @@ -101559,18 +99521,18 @@ - + - + - + - + @@ -101591,7 +99553,7 @@ - + @@ -101600,7 +99562,7 @@ - + @@ -101609,13 +99571,13 @@ - + - + - + @@ -101630,34 +99592,34 @@ - - - + + + - - + + - + - - + + - + - + - + - + @@ -101671,220 +99633,220 @@ - + - - + + - + - - + + - - + + - - + + - - - - - - + + + + + + - - + + - - - + + + - - + + - - + + - - + + - + - + - + - + - + - - - + + + - + - - + + - + - - + + - - + + - + - + - - + + - - + + - + - - + + - - - - + + + + - + - - - - + + + + - - - - + + + + - - + + - + - - - - + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - + + + + - - - - + + + + - - + + - - + + - + - - + + - - - - + + + + - + @@ -101892,25 +99854,25 @@ - + - - - - + + + + - - - + + + - + - + - + @@ -101925,10 +99887,10 @@ - + - + @@ -101937,40 +99899,40 @@ - + - + - - + + - + - - + + - - + + - + - + - + @@ -101979,35 +99941,35 @@ - + - - - - + + + + - + - - - + + + - + - + - + - + - + @@ -102022,52 +99984,53 @@ - + - + - + - + - + - + - - + + + - + - + - + - + - + - + - + @@ -102076,8 +100039,7 @@ - - + @@ -102090,46 +100052,46 @@ - - - - + + + + - + - + - + - + - - + + - - + + - - + + - - - + + + - + @@ -102159,258 +100121,258 @@ - + - - - + + + - - + + - + - + - - + + - + - - + + - + - + - + - - - + + + - + - + - + - + - + - - + + - + - + - + - - - + + + - - - + + + - - + + - + - + - - + + - - + + - + - + - - + + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - - + + - + - + - - + + - - + + - + - + - + - + - + - - + + - + - + @@ -102419,22 +100381,22 @@ - + - + - + - + - + - + @@ -102446,10 +100408,10 @@ - + - + @@ -102461,37 +100423,37 @@ - + - + - + - + - + - + - + - + - + @@ -102503,19 +100465,19 @@ - + - + - + - + @@ -102524,13 +100486,13 @@ - + - + @@ -102542,25 +100504,25 @@ - + - + - + - + - + - + @@ -102581,18 +100543,18 @@ - + - + - + - + @@ -102613,7 +100575,7 @@ - + @@ -102622,7 +100584,7 @@ - + @@ -102631,13 +100593,13 @@ - + - + - + @@ -102653,50 +100615,50 @@ - + - + - + - - + + - - + + - + - + - + - - - + + + - + - - - + + + - + @@ -102707,87 +100669,87 @@ - - - - - + + + + + - - - - + + + + - - - - - - + + + + + + - - - + + + - - - + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -102796,22 +100758,22 @@ - + - + - + - + - + @@ -102829,28 +100791,29 @@ - + - + - + + - - + + - - + + - + - - + + @@ -102858,23 +100821,23 @@ - - + + - - + + - - - - + + + + - + @@ -102887,10 +100850,10 @@ - + - + @@ -103012,14992 +100975,10 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -118177,7 +101158,15153 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -118261,7 +116388,7 @@ - + @@ -118339,7 +116466,7 @@ - + @@ -118420,9 +116547,9 @@ - + - + @@ -118431,7 +116558,7 @@ - + @@ -118446,7 +116573,7 @@ - + @@ -118464,7 +116591,7 @@ - + @@ -118533,22 +116660,22 @@ - + - + - + - + - + @@ -118557,7 +116684,7 @@ - + @@ -118566,59 +116693,59 @@ - + - + - + - + - + - + - - + + - - + + - + - + - + - + @@ -118643,36 +116770,36 @@ - + - + - + - + - + - + - + @@ -118684,73 +116811,73 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -118764,28 +116891,28 @@ - + - + - + - + @@ -118830,7 +116957,7 @@ - + @@ -118843,9 +116970,9 @@ - + - + @@ -118862,7 +116989,7 @@ - + @@ -118871,30 +116998,30 @@ - - + + - + - + - + - + - + @@ -118942,19 +117069,19 @@ - + - + - + - + @@ -119017,10 +117144,10 @@ - + - + @@ -119029,7 +117156,7 @@ - + @@ -119146,49 +117273,49 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -119196,70 +117323,70 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - + + + @@ -119271,86 +117398,86 @@ - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - + + - - - - - - + + + + + + - - - - + + + + - - - + + + - - - + + + - + - + - + - + @@ -119398,19 +117525,19 @@ - + - + - + - + @@ -119473,10 +117600,10 @@ - + - + @@ -119485,7 +117612,7 @@ - + @@ -119602,78 +117729,78 @@ - + - + - + - + - + - + - + - + - + - + - - - + + + - - - - + + + + - - - + + + - - - - + + + + - - - - + + + + - - - + + + @@ -119687,7 +117814,7 @@ - + @@ -119706,31 +117833,31 @@ - - + + - - + + - + - - - + + + - + - - - + + + @@ -119741,13 +117868,13 @@ - - + + - + @@ -119765,147 +117892,147 @@ - + - + - - + + - + - + - + - + - + - + - + - + - + - + - - - + + + - - + + - + - + - + - + - + - + - + - + - + - - - + + + - - + + - - + + - - - + + + - + - - - + + + - - + + - - + + - + - + - - + + - + - + - - + + - + @@ -119916,7 +118043,7 @@ - + @@ -119925,64 +118052,64 @@ - - - + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -119990,7 +118117,7 @@ - + @@ -120002,131 +118129,131 @@ - + - - + + - - + + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - - - + + + - + - + - + - + - + - + - + - + - + @@ -120135,24 +118262,24 @@ - + - + - - - - - - - - - - + + + + + + + + + + - + @@ -120160,20 +118287,20 @@ - + - + - + - + @@ -120188,7 +118315,7 @@ - + @@ -120197,16 +118324,16 @@ - + - + - + @@ -120216,15 +118343,15 @@ - + - + - + - + @@ -120232,13 +118359,13 @@ - + - + - + @@ -120256,7 +118383,7 @@ - + @@ -120265,16 +118392,16 @@ - - + + - - + + - + - + @@ -120284,70 +118411,70 @@ - + - + - + - - + + - - + + - - + + - - - + + + - + - - + + - + - - + + - - - - - + + + + + - + - - + + - + @@ -120356,7 +118483,7 @@ - + @@ -120364,71 +118491,71 @@ - + - + - + - + - - + + - + - + - + - + - + - + - + - - + + - - - - - + + + + + - + - - + + - + - + @@ -120438,14 +118565,14 @@ - + - + @@ -120453,64 +118580,64 @@ - + - + - + - + - + - + - + - + - - - + + + - + - + - + - + - + - + @@ -120519,7 +118646,7 @@ - + @@ -120531,7 +118658,7 @@ - + @@ -120551,10 +118678,10 @@ - + - + @@ -120565,60 +118692,60 @@ - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -120630,74 +118757,74 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - + + + + + - + - - + + - + - + - + - + @@ -120708,220 +118835,220 @@ - - - - + + + + - + - + - - - - - + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - + + + + + - + - + - + - + - + - - - + + + - + - + - - - - - - - - + + + + + + + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - + - + - - + + - - + + - + @@ -120929,11 +119056,11 @@ - + - + @@ -120941,15 +119068,15 @@ - + - + - + @@ -120959,15 +119086,15 @@ - + - + - + @@ -120975,30 +119102,30 @@ - + - + - + - + - + - + @@ -121009,38 +119136,38 @@ - + - - + + - + - + - - + + - - + + - + - + - + @@ -121049,18 +119176,18 @@ - + - + - + - + - + @@ -121078,7 +119205,7 @@ - + @@ -121090,57 +119217,57 @@ - + - + - + - + - + - + - + - + - - - + + + - + - + - + - + - + - + @@ -121151,9 +119278,9 @@ - - - + + + @@ -121164,22 +119291,22 @@ - - + + - - - + + + - - + + - - + + @@ -121189,9 +119316,9 @@ - + - + @@ -121201,21 +119328,21 @@ - + - + - + - + - + - + @@ -121233,34 +119360,34 @@ - + - + - + - + - + - + - + - + - + @@ -121269,60 +119396,60 @@ - + - + - - - - - - - + + + + + + + - + - + - + - + - + - + - - + + - - + + - - + + - - + + - - + + @@ -121336,16 +119463,16 @@ - - + + - - + + @@ -121356,33 +119483,33 @@ - + - - + + - - + + - - + + - + - + - - + + - - + + @@ -121390,9 +119517,9 @@ - + - + @@ -121403,8 +119530,8 @@ - - + + @@ -121413,7 +119540,7 @@ - + @@ -121421,13 +119548,13 @@ - + - + @@ -121437,7 +119564,7 @@ - + @@ -121445,10 +119572,10 @@ - + - + @@ -121457,13 +119584,13 @@ - + - - + + - + @@ -121471,7 +119598,7 @@ - + @@ -121479,7 +119606,7 @@ - + @@ -121490,36 +119617,36 @@ - + - + - + - + - - + + - + - - + + - + @@ -121528,36 +119655,36 @@ - + - + - + - + - + - + - + - + - + @@ -121569,7 +119696,7 @@ - + @@ -121584,28 +119711,28 @@ - + - + - + - + - + - + @@ -121613,21 +119740,21 @@ - - - + + + - + - + - + @@ -121636,18 +119763,18 @@ - + - - - + + + - + @@ -121659,15 +119786,15 @@ - + - + - + - + @@ -121676,40 +119803,40 @@ - + - + - + - + - + - + - + - + - + - + @@ -121722,77 +119849,77 @@ - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -121800,22 +119927,22 @@ - + - - + + - - - - - - + + + + + + - + @@ -121824,7 +119951,7 @@ - + @@ -121833,102 +119960,102 @@ - + - - - + + + - + - - - + + + - + - + - + - + - + - + - + - + - + - + - + - + - - - - + + + + - + - - + + - - - - - - - - + + + + + + + + - + - + - - + + @@ -121939,188 +120066,188 @@ - + - + - + - + - - + + - - - + + + - + - - - + + + - - + + - - - + + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -122128,20 +120255,20 @@ - + - + - + @@ -122149,15 +120276,15 @@ - + - - - + + + @@ -122165,43 +120292,43 @@ - - + + - + - + - + - + - - + + - - + + - - + + - + - + @@ -122220,13 +120347,13 @@ - + - + - + @@ -122235,53 +120362,53 @@ - - + + - + - + - + - + - + - + - + - + - + - + - + @@ -122294,7 +120421,7 @@ - + @@ -122311,90 +120438,90 @@ - + - - - - + + + + - + - - + + - - + + - + - - + + - - + + - + - + - + - + - - + + - - - - + + + + - + - + - + @@ -122410,49 +120537,49 @@ - + - + - + - + - + - + - + - - - - - - + + + + + + - + - + - + @@ -122462,7 +120589,7 @@ - + @@ -122482,47 +120609,47 @@ - - + + - + - + - + - + - + - - + + - + - + @@ -122530,9 +120657,9 @@ - + - + @@ -122540,123 +120667,123 @@ - + - + - + - - + + - + - + - - + + - - + + - + - + - + - - + + - + - + - + - - + + - + - + - + - + - - - + + + - + - - - + + + - - - + + + - + - + - + @@ -122668,50 +120795,50 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - + + + @@ -122732,13 +120859,13 @@ - - + + - + - + @@ -122815,318 +120942,318 @@ - - - - - - - + + + + + + + - + - - + + - - + + - - - - + + + + - - + + - + - + - + - + - + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - - + + - - + + - + - + - + - + - - - + + + - + - + - + - + - + - + - + - + - - + + - + - - + + - + - - - - + + + + - + - - - - - + + + + + - - - - - + + + + + - + - - + + - - - + + + - - - + + + - + - - - + + + - - - - + + + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -123137,43 +121264,43 @@ - - - + + + - + - + - + - + - + - + - - - - - - - - + + + + + + + + - + - + - + @@ -123184,16 +121311,16 @@ - + - + - + @@ -123201,15 +121328,15 @@ - + - + - + - + @@ -123217,69 +121344,69 @@ - + - + - - - - - - - - - - + + + + + + + + + + - + - + - + - + - + - + - + - - - - - - + + + + + + - + - + - + @@ -123306,180 +121433,180 @@ - - - + + + - + - + - + - - - - - + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -123488,7 +121615,7 @@ - + @@ -123499,27 +121626,27 @@ - - - + + + - + - + - + - + - + @@ -123536,66 +121663,66 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -123604,66 +121731,66 @@ - + - + - + - + - + - - - - - - - - - - - - - + + + + + + + + + + + + + - + - + - + - + - + - + - + @@ -123675,10 +121802,10 @@ - + - + @@ -123687,58 +121814,58 @@ - + - + - + - - - - + + + + - - + + - - + + - - + + - + - - + + - + - + - + - + - - + + @@ -123750,11 +121877,11 @@ - + - + @@ -123763,335 +121890,335 @@ - - + + - + - + - + - - + + - - + + - + - - + + - + - + - + - + - + - + - + - - + + - + - + - - + + - + - + - - + + - + - - + + - + - - + + - - + + - - + + - - - - + + + + - - + + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -124099,28 +122226,28 @@ - + - + - + - + - + - + - + - + @@ -124129,7 +122256,7 @@ - + @@ -124138,300 +122265,300 @@ - + - - - - + + + + - - - - + + + + - - - - + + + + - + - + - + - - - + + + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - - - - - - + + + + + + - - - - - + + + + + - - + + - + - + @@ -124443,27 +122570,27 @@ - + - + - + - + - + - + - + @@ -124484,182 +122611,182 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -124668,176 +122795,176 @@ - + - + - + - + - + - - + + - + - - + + - + - - + + - + - - + + - + - + - - + + - + - + - + - - + + - + - - + + - + - - + + - + - - + + - + - + - + - - + + - + - - + + - + - - + + - + - - + + - + - + - + - - + + - - + + - + @@ -124845,11 +122972,11 @@ - + - + @@ -124859,212 +122986,212 @@ - + - - + + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - - - + + + - - - - + + + + - + - + - - - - + + + + - - - - + + + + - + - + - + - + - + - + - + - + - - + + - - + + - - + + - + - + - - - - + + + + - - - - + + + + - + - + - - - - + + + + - - - - + + + + - + @@ -125072,10 +123199,10 @@ - + - + @@ -125093,20 +123220,20 @@ - - + + - + - + - + - + @@ -125126,188 +123253,188 @@ - + - + - + - + - - + + - + - - + + - + - - + + - + - - + + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - - + + - + - + - - + + - - + + - - - - + + + + - + - - + + - - - - + + + + - - - - - + + + + + - - + + - + - + - + - - + + - + - + - - + + - + - - + + - - + + - - + + - - + + - + - + - + @@ -125328,7 +123455,7 @@ - + @@ -125339,28 +123466,28 @@ - - + + - + - + - - + + - + @@ -125369,50 +123496,50 @@ - - - - - - + + + + + + - - - - + + + + - + - + - + - - - - - - + + + + + + - - + + - - + + - + @@ -125426,24 +123553,24 @@ - + - + - + - + - + - + @@ -125452,7 +123579,7 @@ - + @@ -125461,46 +123588,46 @@ - + - + - + - + - + - + - + - + - + - + - + - + - - - - - + + + + + @@ -125508,9 +123635,9 @@ - - - + + + @@ -125518,171 +123645,171 @@ - + - + - - - - - - - - - + + + + + + + + + - + - - - + + + - + - + - + - + - - + + - + - + - + - + - + - - + + - - + + - + - + - + - + - + - + - + - - + + - + - - + + - - - + + + - - - - + + + + - - - + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - + + + - - - - + + + + - + @@ -125690,57 +123817,57 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -125748,138 +123875,138 @@ - + - + - - - + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -125888,67 +124015,67 @@ - - + + - + - - + + - + - + - + - - - - - + + + + + - + - + - + - + - - + + - - + + - + - - + + @@ -125958,15 +124085,15 @@ - + - + - + - + @@ -125981,19 +124108,19 @@ - + - + - + - + @@ -126017,143 +124144,143 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -126162,31 +124289,31 @@ - + - + - + - + - + - + @@ -126204,48 +124331,48 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -126293,19 +124420,19 @@ - + - + - + - + @@ -126368,10 +124495,10 @@ - + - + @@ -126380,7 +124507,7 @@ - + @@ -126497,231 +124624,231 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - + + + + + + + + + - + - + - + - + - + - + - - - - - - - - - - + + + + + + + + + + - + - + - + - + - + - - + + - + - - + + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -126731,243 +124858,243 @@ - + - - + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - - - + + + + - - - - - - - + + + + + + + - - - + + + - - + + - - + + - - + + - + - + - + - - + + - - - + + + - - - + + + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - - + + - - - + + + - - - + + + - - + + - + - - + + - - + + - - - + + + - + - + - + - + - + - + @@ -126978,302 +125105,302 @@ - + - - + + - + - - + + - - + + - + - - + + - + - + - + - + - + - + - + - - + + - - + + - + - - + + - + - + - + - + - + - + - + - - + + - + - + - + - - - + + + - - - + + + - + - + - - + + - - + + - + - - - + + + - - - + + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - - + + @@ -127300,8 +125427,8 @@ - - + + @@ -127313,44 +125440,44 @@ - + - - - - + + + + - - + + - - + + - + - + - + - + - + - + @@ -127361,129 +125488,129 @@ - - - + + + - - + + - + - - + + - - + + - + - + - + - - + + - + - + - + - - + + - - + + - - + + - + - + - + - - + + - + - - + + - + - + - - + + - + - + @@ -127491,33 +125618,33 @@ - - + + - + - - + + - + - + - + - + @@ -127538,155 +125665,155 @@ - + - + - + - + - - - - + + + + - - + + - + - - + + - + - + - + - + - - + + - - - - - - + + + + + + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - - + + - + - + - + - + - + - + - + - + @@ -127734,19 +125861,19 @@ - + - + - + - + @@ -127809,10 +125936,10 @@ - + - + @@ -127821,7 +125948,7 @@ - + @@ -127938,63 +126065,63 @@ - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + @@ -128006,57 +126133,57 @@ - - + + - - + + - + - + - + - + - + - + - + - + - + - + @@ -128064,15 +126191,15 @@ - + - - + + - + @@ -128083,67 +126210,67 @@ - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - + @@ -128155,45 +126282,45 @@ - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + @@ -128202,85 +126329,85 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + - - - - + + + + - - - + + + - + - - - + + + - - - - + + + + - - - + + + - - + + - - - - + + + + - - + + - - - + + + - - + + - - - + + + - + - + @@ -128289,40 +126416,40 @@ - + - + - + - + - + - + - + - + - + - + @@ -128340,14 +126467,14 @@ - + - + @@ -128358,21 +126485,21 @@ - + - + - + @@ -128381,7 +126508,7 @@ - + @@ -128394,7 +126521,7 @@ - + @@ -128405,58 +126532,58 @@ - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + @@ -128465,16 +126592,16 @@ - + - + - + @@ -128491,34 +126618,34 @@ - + - + - + - - + + - + - + - + - + - + - + @@ -128530,16 +126657,16 @@ - + - + - + - + @@ -128551,7 +126678,7 @@ - + @@ -128570,14 +126697,14 @@ - + - + @@ -128588,7 +126715,7 @@ - + @@ -128601,32 +126728,32 @@ - + - + - + - - + + - + - + - + - + - + - + @@ -128641,13 +126768,13 @@ - + - + @@ -128659,49 +126786,49 @@ - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + @@ -128710,17 +126837,17 @@ - + - + - + - + - + @@ -128732,42 +126859,42 @@ - + - + - - + + - + - + - + - + - - + + - + - + - + @@ -128776,25 +126903,25 @@ - + - + - + - + - + @@ -128808,43 +126935,43 @@ - + - + - + - + - + - + - - - + + + - + - + - + @@ -128867,46 +126994,46 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -128924,13 +127051,13 @@ - + - + @@ -128956,16 +127083,16 @@ - + - + - + - + @@ -129016,10 +127143,10 @@ - + - + @@ -129030,7 +127157,7 @@ - + @@ -129074,27 +127201,27 @@ - + - + - + - + - + - + - + - + @@ -129160,7 +127287,7 @@ - + @@ -129186,7 +127313,7 @@ - + @@ -129230,20 +127357,20 @@ - + - + - - + + - + - + @@ -129270,15 +127397,15 @@ - + - + - - - + + + @@ -129286,101 +127413,101 @@ - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - + + + + + + + + + + + @@ -129400,10 +127527,10 @@ - - - - + + + + @@ -129423,10 +127550,10 @@ - - - - + + + + @@ -129452,13 +127579,13 @@ - + - - - - + + + + @@ -129472,13 +127599,13 @@ - + - + - + @@ -129486,10 +127613,10 @@ - - - - + + + + @@ -129497,10 +127624,10 @@ - + - + @@ -129509,31 +127636,31 @@ - + - + - + - + - + - + @@ -129542,20 +127669,19 @@ - + - - + - + - - + + @@ -129569,214 +127695,214 @@ - - - - - + + + + + - + - + - + - + - + - + - + - - + + - - - - + + + + - - + + - - + + - + - - - + + + - + - + - - + + - - + + - + - + - + - + - + - - - + + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - + + - - - + + + - - + + - - + + - - - + + + - - - + + + - + - + - + - + - - - + + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - + + @@ -129787,38 +127913,38 @@ - + - - + + - + - + - + - + - + - + - + - + - + @@ -129827,18 +127953,18 @@ - + - + - + - - - + + + @@ -129853,12 +127979,12 @@ - - + + - - + + @@ -129869,206 +127995,206 @@ - - - - - - + + + + + + - + - + - - + + - + - + - + - - - - - - - - - + + + + + + + + + - + - + - - + + - - - - - - - - - - + + + + + + + + + + - + - + - - + + - + - + - + - + - + - + - - + + - - - + + + - - + + - + - + - + - + - + - + - + - + - + - + - - + + - - + + - - + + - + - + - + - + - + - - + + - - + + - + - + - - + + - - + + @@ -130076,18 +128202,18 @@ - + - + - + - + - + @@ -130098,40 +128224,40 @@ - + - + - + - + - + - + - - - + + + - + - + - + - + @@ -130140,86 +128266,86 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - + + + + + + @@ -130233,17 +128359,17 @@ - + - - - - - - - - + + + + + + + + @@ -130251,14 +128377,14 @@ - - - - - - + + + + + + - + @@ -130270,151 +128396,151 @@ - - - - - - - - + + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - - + + - - - + + + - - - + + + - - + + - - + + - - + + - - + + - - + + - + - - + + - - + + - - + + - - - + + + - + - + - + @@ -130432,33 +128558,33 @@ - + - + - + - + - + - + - + - + - + @@ -130476,10 +128602,10 @@ - + - + @@ -130512,36 +128638,36 @@ - + - + - + - + - + - + - + - + - + @@ -130553,111 +128679,111 @@ - - - + + + - + - + - - + + - + - - + + - + - + - + - + - + - + - + - + - + - - + + - - + + - + - - + + - - + + - + - + - + - + - + - + @@ -130667,237 +128793,237 @@ - + - + - + - + - + - + - - + + - + - + - - + + - - + + - - + + - - + + - + - + - + - + - - + + - - - + + + - - + + - - + + - + - + - - - + + + - - + + - - + + - - + + - - + + - - + + - + - + - + - + - + - + - + - + - + - - + + - + - + - - + + - - + + - + - - + + - + - + - + - + - + - + - - + + - - - - + + + + - - - - + + + + - - - + + + @@ -130905,33 +129031,33 @@ - - + + - + - + - - + + - - + + - - + + - - + + @@ -130940,13 +129066,13 @@ - + - + @@ -130954,11 +129080,11 @@ - - + + - + @@ -130966,11 +129092,11 @@ - - + + - + @@ -130978,12 +129104,12 @@ - - - + + + - + @@ -130991,216 +129117,216 @@ - - - + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - - + + - + - + - + - - + + - - + + - + - + - + - - - + + + - + - + - - - + + + - + - + - - + + - + - + - - + + - + - + - + - + @@ -131210,11 +129336,11 @@ - - + + - + @@ -131224,162 +129350,162 @@ - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - + + + - + - + - + - + - + - + - + - + - - + + @@ -131387,24 +129513,24 @@ - - + + - - - - - + + + + + - - + + @@ -131412,143 +129538,143 @@ - + - + - + - - - + + + - - + + - + - + - + - + - + - + - + - + - - + + - - + + - + - + - - + + - + - + - - + + - + - + - + - + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - + - + @@ -131569,13 +129695,13 @@ - + - + - + @@ -131584,34 +129710,34 @@ - + - + - + - + - + - + - + - + @@ -131623,7 +129749,7 @@ - + @@ -131637,7 +129763,7 @@ - + @@ -131652,16 +129778,16 @@ - + - + - + @@ -131682,19 +129808,19 @@ - + - + - + - + @@ -131784,52 +129910,52 @@ - + - - - + + + - + - + - + - + - + - + - + - + - + - + @@ -131870,16 +129996,16 @@ - + - + - + - + @@ -131924,7 +130050,7 @@ - + @@ -131944,7 +130070,7 @@ - + @@ -131952,134 +130078,134 @@ - - - - - - - - + + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - + @@ -132093,12 +130219,12 @@ - - - - + + + + - + @@ -132108,14 +130234,14 @@ - - + + - - + + - + @@ -132136,22 +130262,22 @@ - + - + - + - + - + @@ -132160,13 +130286,63 @@ - - + + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -132175,25 +130351,25 @@ - + - + - + - + - + - + @@ -132202,22 +130378,22 @@ - + - + - + - + - + - + @@ -132232,13 +130408,13 @@ - + - + @@ -132247,13 +130423,13 @@ - + - + @@ -132286,10 +130462,10 @@ - + - + @@ -132301,21 +130477,21 @@ - + - + - + - + @@ -132324,22 +130500,22 @@ - + - + - + - + - + - + @@ -132351,10 +130527,10 @@ - + - + @@ -132366,37 +130542,37 @@ - + - + - + - + - + - + - + - + - + @@ -132408,19 +130584,19 @@ - + - + - + - + @@ -132429,13 +130605,13 @@ - + - + @@ -132447,25 +130623,25 @@ - + - + - + - + - + - + @@ -132486,212 +130662,135 @@ - + - + + + + + + + - + - - - - - - - - - - + - - - - + - - - - + - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - + + + + - + - - - - + - + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - + + + - + @@ -132700,245 +130799,245 @@ - - - + + + - - - + + + - + - + - + - + - - - + + + - - - + + + - + - + - + - + - - - - + + + + - - + + - + - + - + - + - + - + - + - - - + + + - + - + - + - + - + - - + + - - + + - + - + - + - + - + - + - + - + - + - - + + - + - + - - + + - - + + - + - + - + - + - + - + - - + + - + - + - + @@ -132948,116 +131047,116 @@ - + - + - + - + - + - - + + - - + + - + - + - - - - + + + + - - + + - - - + + + - - + + - - + + - - + + - + - - + + - - + + - - - + + + - - + + - - + + - - + + - + - + - + @@ -133078,13 +131177,13 @@ - + - + - + @@ -133093,34 +131192,34 @@ - + - + - + - + - + - + - + - + @@ -133132,208 +131231,258 @@ - + - + - + - + - + - + - + - + - + - + - - - + + + - + - + - + - + - + - + - - + + - + - + - + - - + + - - + + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - - + + + - - - + + + - + - + - + - - - - + + + + - - + + - + - + - + - - - - + + + + - - - + + + - - + + - - + + - - - - + + + + - + @@ -133341,29 +131490,29 @@ - + - + - + - + - - - + + + - - + + - + @@ -133372,33 +131521,33 @@ - + - + - + - + - + - + - + - + @@ -133407,22 +131556,22 @@ - + - + - + - + - + @@ -133440,13 +131589,13 @@ - + - + - + @@ -133454,105 +131603,105 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -133561,16 +131710,16 @@ - + - + - + @@ -133578,20 +131727,20 @@ - + - + - + - + - - - + + + @@ -133614,13 +131763,13 @@ - + - + - + @@ -133629,207 +131778,207 @@ - + - - - - - - + + + + + + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - - + + - + - - + + - - + + - + - + - + - - + + - + - + - - + + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - - + + - - + + - - + + - - + + - - + + - + - - + + @@ -133838,7 +131987,7 @@ - + @@ -133846,258 +131995,258 @@ - - + + - - + + - + - + - + - + - + - + - + - + - - + + - - + + - + - + - + - - + + - - - + + + - + - + - + - - + + - - + + - - + + - - + + - + - - + + - - + + - + - - + + - - - - - + + + + + - - + + - + - + - + - + - - + + - - + + - + - + - + - + - + - + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - + - + - - + + - - + + - - - + + + - + @@ -134105,22 +132254,22 @@ - + - + - + - + - + @@ -134132,7 +132281,7 @@ - + @@ -134144,16 +132293,16 @@ - + - + - + - + @@ -134168,7 +132317,7 @@ - + @@ -134198,19 +132347,19 @@ - + - + - + - + - + @@ -134228,19 +132377,19 @@ - + - + - + - + @@ -134248,10 +132397,10 @@ - + - + @@ -134272,82 +132421,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - + + + + + + - + - + - + - + - + @@ -134359,10 +132508,10 @@ - + - + @@ -134383,7 +132532,7 @@ - + @@ -134401,22 +132550,22 @@ - - - + + + - + - + - + - + @@ -134425,59 +132574,59 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - + + + - + @@ -134486,956 +132635,33 @@ - + - + - - - - - - - - - + - - - - - - - + - - - - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + @@ -135444,22 +132670,22 @@ - + - + - + - + - + @@ -135477,375 +132703,30 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + - + - + - + @@ -135854,73 +132735,69 @@ - + - + - + - + - - + + - + - - + + - - - - - + - + - + - + - + - + - + - + - + - + - - - - + + + + - + @@ -135932,7 +132809,7 @@ - + @@ -135941,10 +132818,10 @@ - + - + @@ -135953,10 +132830,10 @@ - + - + @@ -135965,82 +132842,82 @@ - - - - - - - + + + + + + + - + - + - + - - + + - + - + - + - + - - + + - - + + - - + + - - - + + + - - + + - - + + - - + + - + @@ -136048,58 +132925,58 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -136132,13 +133009,13 @@ - + - + - + @@ -136147,10 +133024,10 @@ - + - + @@ -136165,7 +133042,7 @@ - + @@ -136177,13 +133054,13 @@ - + - + - + @@ -136192,40 +133069,40 @@ - + - + - + - + - + - - - - - - - - - - - - - + + + + + + + + + + + + + @@ -136236,17 +133113,17 @@ - + - - + + - - - + + + @@ -136263,40 +133140,40 @@ - + - - - + + + - + - + - + - + - + - + - + - + @@ -136305,8 +133182,8 @@ - - + + @@ -136341,83 +133218,83 @@ - - - + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - + + + + @@ -136449,7 +133326,7 @@ - + @@ -136461,7 +133338,7 @@ - + @@ -136474,32 +133351,32 @@ - - + + - - - - + + + + - - + + - + - - + + - + - + @@ -136517,56 +133394,56 @@ - + - + - + - + - - + + - + - + - - - + + + - + - + - + - - - - + + + + @@ -136578,45 +133455,45 @@ - - + + - - + + - + - + - - + + - - + + - + - + - + @@ -136624,98 +133501,98 @@ - - + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - - + + + - - - - + + + + - - + + - - + + - - + + @@ -136723,12 +133600,12 @@ - + - + - + @@ -136785,36 +133662,36 @@ - + - + - + - + - + - + - + - + - + - + @@ -136823,34 +133700,34 @@ - + - + - + - + - + - + - + - + - + - + @@ -136871,29 +133748,29 @@ - - - + + + - + - + - + - + - + @@ -136902,7 +133779,7 @@ - + @@ -136911,7 +133788,7 @@ - + @@ -136925,10 +133802,10 @@ - + - + @@ -136937,22 +133814,22 @@ - + - + - + - + - + @@ -136970,86 +133847,86 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - + + + @@ -137060,15 +133937,15 @@ - - - + + + - + - - + + @@ -137078,49 +133955,49 @@ - + - - - - + + + + - + - + - + - + - + - + - + - + - + - - + + @@ -137131,30 +134008,30 @@ - - - - - + + + + + - + - + - - - - - + + + + + @@ -137168,7 +134045,7 @@ - + @@ -137177,30 +134054,30 @@ - + - - + + - - - - + + + + - - - - - - - - + + + + + + + + @@ -137208,17 +134085,17 @@ - - - + + + - + - + - + @@ -137239,10 +134116,10 @@ - + - + @@ -137257,28 +134134,28 @@ - - + + - - - - + + + + - + - + - + - + - + @@ -137299,7 +134176,7 @@ - + @@ -137311,45 +134188,45 @@ - - - + + + - + - + - + - - - - + + + + - + - + - + - - + + @@ -137357,31 +134234,31 @@ - - + + - + - + - - - - + + + + - + - + - - - - - + + + + + @@ -137392,17 +134269,17 @@ - + - + - + - + - + @@ -137414,295 +134291,295 @@ - + - - - - + + + + - + - + - + - - - - + + + + - + - + - - - + + + - + - + - - - + + + - + - - - + + + - + - + - - - - - - - - - - - + + + + + + + + + + + - + - - - + + + - + - - - - + + + + - + - - - + + + - + - + - - - + + + - + - - + + - - - - - - - - - - - + + + + + + + - - - + + - - + + + - - + + + + + + - - - - - - - - - - + - + - - - - - - - - - - - - - - - - + + - + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - + + + - - + + - + - + - + - + - + - + - + - + - + @@ -137716,20 +134593,20 @@ - + - + - + - + - - + + @@ -137749,38 +134626,38 @@ - - - - + + + + - - - + + + - + - + - + - - - - + + + + - + @@ -137812,7 +134689,7 @@ - + @@ -137823,10 +134700,10 @@ - + - + @@ -137835,13 +134712,13 @@ - + - + - + @@ -137853,37 +134730,36 @@ - + - + - + - + - + - + - - - - - + + + + - + @@ -137892,9 +134768,10 @@ - + + - + @@ -137903,25 +134780,25 @@ - + - + - + - - + + - + - + @@ -137935,13 +134812,13 @@ - - + + - + @@ -137949,56 +134826,56 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -138013,66 +134890,66 @@ - + - - - - - - + + + + + + - + - + - - + + - - + + - - + + - - + + - - - + + + - - + + - - + + - + - + - + @@ -138081,173 +134958,173 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - + + + + + - + - + @@ -138259,22 +135136,22 @@ - + - - + + - - - - - - - - + + + + + + + + @@ -138286,14 +135163,14 @@ - - - + + + - + @@ -138302,58 +135179,58 @@ - + - + - - - - - - - + + + + + + + - - - + + + - + - + - + - + - - - - - - + + + + + + - + - + - + - + @@ -138362,7 +135239,7 @@ - + @@ -138377,7 +135254,7 @@ - + @@ -138395,7 +135272,7 @@ - + @@ -138464,22 +135341,22 @@ - + - + - + - + - + @@ -138488,7 +135365,7 @@ - + @@ -138497,19 +135374,19 @@ - + - + - + - + @@ -138517,10 +135394,10 @@ - + - + @@ -138529,31 +135406,31 @@ - + - + - + - + - + - + @@ -138562,28 +135439,28 @@ - + - - + + - + - + - + - + - + @@ -138592,22 +135469,22 @@ - + - + - + - + @@ -138625,15 +135502,15 @@ - + - + - + - + @@ -138642,25 +135519,25 @@ - + - + - + - + - + - + @@ -138669,22 +135546,22 @@ - + - + - + - + - + - + @@ -138699,13 +135576,13 @@ - + - + @@ -138714,13 +135591,13 @@ - + - + @@ -138753,10 +135630,10 @@ - + - + @@ -138768,473 +135645,473 @@ - + - + - - - - - - - - + + + + + + + + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - - + + - + - - + + - - + + - + - - + + - - + + - + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - - + + + - + - + - + - - - + + + - + - + - + - + - + - - + + - - + + - - - + + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - - + + - + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - + - - + + - + - - + + - + - + - - - + + + - - - + + + - + - - - + + + - - + + - - - + + + - - - - + + + + - - + + - - - - + + + + - - + + - - + + - - - + + + - - + + - - + + - - + + - - - - - - - + + + + + + + - + - - + + - + - + - - + + - + - + - + - + - + - - - - - + + + + + @@ -139244,7 +136121,7 @@ - + @@ -139258,55 +136135,55 @@ - + - + - + - + - + - + - + - - - - + + + + - + - + - + - + - + - + - + - + @@ -139314,9 +136191,9 @@ - + - + @@ -139329,11 +136206,11 @@ - - + + - + @@ -139341,37 +136218,37 @@ - + - - + + - + - + - - + + - + - - + + - + - - + + - + @@ -139381,7 +136258,7 @@ - + @@ -139407,7 +136284,7 @@ - + @@ -139416,27 +136293,27 @@ - + - + - + - + - + - + - + @@ -139448,7 +136325,7 @@ - + @@ -139463,12 +136340,12 @@ - - + + - - + + @@ -139479,7 +136356,7 @@ - + @@ -139487,70 +136364,70 @@ - + - + - + - + - - + + - + - - + + - + - + - + - + - - + + - - - - + + + + - + - - - + + + - + - + - + @@ -139560,91 +136437,91 @@ - + - + - + - + - - + + - + - + - + - + - + - + - + - - + + - - + + - + - - - + + + - + - + - + - + @@ -139653,25 +136530,25 @@ - + - + - + - + - + - + - + @@ -139682,25 +136559,25 @@ - + - + - + - + - + @@ -139709,10 +136586,10 @@ - + - + @@ -139748,7 +136625,7 @@ - + @@ -139766,159 +136643,159 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -139930,51 +136807,51 @@ - + - + - + - + - + - + - + - + - + - + - - - + + + @@ -139997,34 +136874,34 @@ - + - + - + - + - + - + @@ -140039,7 +136916,7 @@ - + @@ -140054,13 +136931,13 @@ - + - - - - + + + + @@ -140068,13 +136945,13 @@ - + - + - + @@ -140083,8 +136960,8 @@ - - + + @@ -140095,22 +136972,22 @@ - - - - - - - - + + + + + + + + - + - + @@ -140212,13 +137089,13 @@ - + - + @@ -140261,26 +137138,26 @@ - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - + - + @@ -140289,41 +137166,41 @@ - - + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -140331,10 +137208,10 @@ - + - + @@ -140343,31 +137220,31 @@ - + - + - + - + - + - + @@ -140376,20 +137253,20 @@ - + - + - + - + - + - + @@ -140398,7 +137275,7 @@ - + @@ -140413,7 +137290,7 @@ - + @@ -140431,7 +137308,7 @@ - + @@ -140500,22 +137377,22 @@ - + - + - + - + - + @@ -140524,7 +137401,7 @@ - + @@ -140533,28 +137410,28 @@ - + - + - + - + - + - - + + @@ -140577,26 +137454,26 @@ - - - - - - + + + + + + - + - + - + @@ -140604,25 +137481,25 @@ - - - - - - - - + + + + + + + + - + - + - + - + @@ -140652,16 +137529,16 @@ - + - - + + - + @@ -140670,7 +137547,7 @@ - + @@ -140691,15 +137568,15 @@ - + - + - + - + @@ -140723,10 +137600,10 @@ - + - + @@ -140734,32 +137611,32 @@ - + - - - - + + + + - + - + - + - + @@ -140777,16 +137654,16 @@ - + - + - + @@ -140825,10 +137702,10 @@ - + - + @@ -140840,7 +137717,7 @@ - + @@ -140849,166 +137726,166 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -141026,35 +137903,35 @@ - + - + - + - + - + - + - + - + - + - + @@ -141066,64 +137943,64 @@ - - - + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -141144,83 +138021,83 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - - + + - - + + - + - + - + @@ -141234,13 +138111,13 @@ - + - + - + @@ -141255,31 +138132,31 @@ - + - + - + - - - + + + - + - + - + - - - - + + + + @@ -141293,16 +138170,16 @@ - - - - + + + + - + - + @@ -141319,34 +138196,34 @@ - + - + - + - + - + - - - - - - + + + + + + - + @@ -141361,68 +138238,68 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -141431,81 +138308,81 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -141520,10 +138397,10 @@ - + - + @@ -141532,22 +138409,22 @@ - + - + - + - + - + - + @@ -141556,10 +138433,10 @@ - + - + @@ -141571,129 +138448,129 @@ - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - + + + + + + + - + - + - + - + - + - + - - + + - + - + - + - + - + @@ -141720,82 +138597,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -141807,58 +138684,58 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -141869,7 +138746,7 @@ - + @@ -141878,7 +138755,7 @@ - + @@ -141905,13 +138782,13 @@ - + - + @@ -141920,15 +138797,15 @@ - + - + - + - + @@ -141937,7 +138814,7 @@ - + @@ -141945,10 +138822,10 @@ - + - + @@ -141956,81 +138833,81 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - + + + + + + + + - + - + - + - + - + - + - + - + @@ -142045,7 +138922,7 @@ - + @@ -142054,55 +138931,55 @@ - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + @@ -142111,24 +138988,24 @@ - + - + - + - + - + - + @@ -142137,8 +139014,8 @@ - - + + @@ -142146,13 +139023,13 @@ - - + + - + @@ -142161,7 +139038,7 @@ - + @@ -142179,57 +139056,57 @@ - + - + - + - + - + - + - + - + - + - - - - - - - - - + + + + + + + + + - + - + - + - + - + @@ -142247,9 +139124,9 @@ - + - + @@ -142261,11 +139138,11 @@ - - - + + + - + @@ -142281,10 +139158,10 @@ - + - + @@ -142308,7 +139185,7 @@ - + @@ -142319,7 +139196,7 @@ - + @@ -142333,24 +139210,24 @@ - - - - - - - - - - - - - + + + + + + + + + + + + + - + - + @@ -142365,48 +139242,48 @@ - - + + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - + + + + + + + + + + + + @@ -142441,10 +139318,10 @@ - + - + @@ -142452,44 +139329,44 @@ - - + + - - + + - - + + - + - + - + - - - - - - - - + + + + + + + + - + @@ -142528,22 +139405,22 @@ - + - + - + - + - + - + @@ -142555,92 +139432,92 @@ - + - + - + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - + + + + + + - - - - - + + + + + @@ -142654,7 +139531,7 @@ - + @@ -142666,113 +139543,113 @@ - + - + - + - + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -142784,44 +139661,44 @@ - + - + - + - + - + - + - + - + - + - + @@ -142835,181 +139712,181 @@ - - - - - - - - - - - - - + + + + + + + + + + + + + - + - + - + - + - + - + - + - + - - - - - + + + + + - + - + - + - + - + - + - - + + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - - - - - - - - - - - - - + + + + + + + + + + + + + - + - - - - - + + + + + - + - + - + - + - + - + @@ -143021,28 +139898,28 @@ - + - + - + - + - + - + - + @@ -143060,9 +139937,9 @@ - + - + @@ -143071,34 +139948,34 @@ - + - + - + - + - + - + - + - - - - - - + + + + + + - + @@ -143107,22 +139984,22 @@ - + - + - - + + - + - + @@ -143134,21 +140011,21 @@ - - + + - + - - - + + + - + - - + + @@ -143168,43 +140045,43 @@ - - - - + + + + - - + + - + - + - + - + - + - + - + - - + + @@ -143215,881 +140092,881 @@ - - - + + + - + - + - + - + - + - + - + - + - + - - - - - - - - + + + + + + + + - + - + - + - + - - - - - + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - + + + + + + + + + + - + - + - + - - + + - + - - + + - + - + - + - - + + - - - - + + + + - - - + + + - - - + + + - + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - - - - + + + + + - - - - + + + + - - - - - + + + + + - - + + - + - - - + + + - - - + + + - - + + - + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - - - - - - - - - - + + + + - + + + + + + - - + + - - - - - + + - - - + + + + + - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + - - - - + + + + + - - + + + + + + - - - - + + + + + + - - + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - + - - - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - + + - + - - - - - - - + + + + + + + - - + + - - - - - - - - - - - - - - - - - - - - + + - - - + + + - - - - - + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - + + - - + + - - + + - - + + - + - - + + - - - - + + + + - - - + + + - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + - + + + + - - - + + + + - - + + + + + + + - - - - - + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - + + + + + - - - + + + - - - + + + - - - - - + + + + + - - - - + + + + - - - + + + - - + + - - - + + + - - - + + + - - + + - - - - + + + + - - - - + + + + - - + + - + - - + + - - - + + + - - - - + + + + - - - - + + + + - - + + - - + + - + - - + + - - - + + + + + + + + + + + - + + + - - + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - + - - + + - - - + + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - + - - - + + + - - - + + + - - - + + + - - + + - + - + - + - + - + - + @@ -144098,30 +140975,30 @@ - + - + - + - + - + - + - + @@ -144130,7 +141007,7 @@ - + @@ -144139,10 +141016,10 @@ - + - + @@ -144151,34 +141028,34 @@ - + - + - + - + - + - + - + - + - + - - + + @@ -144189,13 +141066,13 @@ - + - - - - + + + + @@ -144203,71 +141080,71 @@ - + - - + + - - - - - - + + + + + + - + - + - + - - - - - + + + + + - + - + - + - + - + - + - + - + - + - + - - - - - + + + + + @@ -144287,32 +141164,32 @@ - - - + + + - + - + - + - + - + - + - + @@ -144327,10 +141204,10 @@ - + - + @@ -144339,22 +141216,22 @@ - + - + - + - + - + - + @@ -144363,10 +141240,10 @@ - + - + @@ -144378,30 +141255,30 @@ - + - + - + - + - + - + - + - + @@ -144410,100 +141287,100 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -144515,39 +141392,39 @@ - + - + - + - + - + - + - + - - - - - - - + + + + + + + - + @@ -144586,22 +141463,22 @@ - + - + - + - + - + - + @@ -144613,18 +141490,18 @@ - + - + - + - - - + + + @@ -144641,61 +141518,61 @@ - - - + + + - + - + - + - - + + - + - + - + - + - + - - + + - + - + @@ -144707,25 +141584,25 @@ - + - + - + - + - - + + - + @@ -144739,80 +141616,80 @@ - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - + + + + - + - + - - + + - + - + - + - + - + - + @@ -144825,82 +141702,82 @@ - - + + - + - - + + - + - + - - + + - - + + - - - + + + - - + + - + - - + + - - - - + + + + - - + + - - + + - - + + - - + + - + @@ -144914,12 +141791,12 @@ - + - + - + @@ -144939,19 +141816,19 @@ - + - + - + - + - + @@ -144960,7 +141837,7 @@ - + @@ -144969,7 +141846,7 @@ - + @@ -144984,16 +141861,16 @@ - + - + - + - + @@ -145002,7 +141879,7 @@ - + @@ -145017,10 +141894,10 @@ - + - + @@ -145029,10 +141906,10 @@ - + - + @@ -145059,21 +141936,21 @@ - + - - + + - - + + - - + + @@ -145135,10 +142012,10 @@ - + - + @@ -145202,11 +142079,11 @@ - - + + - + @@ -145218,1634 +142095,46 @@ - - + + - - + + - - + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + @@ -146872,82 +142161,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -146959,135 +142248,69 @@ - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + @@ -147102,7 +142325,7 @@ - + @@ -147111,54 +142334,1506 @@ - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - - + + + - + - + - + - + - - - - + + + + - + - + - + - - + + @@ -147193,37 +143868,37 @@ - + - + - + - + - + - + - + - + - + @@ -147231,7 +143906,7 @@ - + @@ -147246,13 +143921,13 @@ - + - + - + @@ -147261,16 +143936,16 @@ - + - - + + - + - + @@ -147279,7 +143954,7 @@ - + @@ -147294,21 +143969,21 @@ - + - - + + - - + + - - + + @@ -147316,50 +143991,50 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -147368,18 +144043,18 @@ - + - + - + - + @@ -147402,7 +144077,7 @@ - + @@ -147412,16 +144087,16 @@ - - + + - + - + @@ -147432,7 +144107,7 @@ - + @@ -147443,7 +144118,7 @@ - + @@ -147451,7 +144126,7 @@ - + @@ -147459,20 +144134,20 @@ - + - - + + - + - + @@ -147483,7 +144158,7 @@ - + @@ -147491,10 +144166,10 @@ - + - + @@ -147505,41 +144180,41 @@ - + - + - - + + - + - + - + - + - + - + @@ -147548,11 +144223,10 @@ - + - - + @@ -147566,15 +144240,15 @@ - + - + - + - + @@ -147637,13 +144311,13 @@ - + - + - + @@ -147652,7 +144326,7 @@ - + @@ -147663,7 +144337,7 @@ - + @@ -147672,27 +144346,27 @@ - + - + - + - + - + - + - + - + @@ -147742,7 +144416,7 @@ - + @@ -147753,37 +144427,37 @@ - + - + - + - + - + - + - + - + - + - - + + - + @@ -147803,18 +144477,18 @@ - + - + - + - + - + @@ -147825,7 +144499,7 @@ - + @@ -147834,7 +144508,7 @@ - + @@ -147857,7 +144531,7 @@ - + @@ -147872,36 +144546,37 @@ - - + + - + - + - + - + - - - - - - + + + + + + + - + - + @@ -147922,10 +144597,10 @@ - + - + @@ -147933,7 +144608,7 @@ - + @@ -147955,13 +144630,13 @@ - - + + - - - + + + @@ -147975,133 +144650,133 @@ - + - - - + + + - + - + - - + + - + - + - + - + - + - - - + + + - - - - + + + + - - + + - - - - + + + + - + - - - + + + - + - + - + - + - - - + + + - - - + + + - - + + - - + + - - + + - - + + - + @@ -148110,39 +144785,39 @@ - - + + - + - + - - - + + + - + - - - + + + - - + + - - + + @@ -148150,217 +144825,217 @@ - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - - + + + - + - + - - + + - + - - + + - - + + - - + + - + - + - + - + - + - + - - - + + + - - - - - + + + + + - - + + - - + + - - + + - + - - - + + + - - + + - - + + - - + + - - - - - + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - + - + - + - + - + @@ -148371,90 +145046,90 @@ - - + + - - + + - - - + + + - - + + - + - + - + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -148469,10 +145144,10 @@ - + - + @@ -148481,22 +145156,22 @@ - + - + - + - + - + - + @@ -148505,10 +145180,10 @@ - + - + @@ -148520,30 +145195,30 @@ - + - + - + - + - + - + - + - + @@ -148552,99 +145227,99 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -148656,35 +145331,35 @@ - + - + - + - + - + - + - + - - - + + + - + @@ -148723,22 +145398,22 @@ - + - + - + - + - + - + @@ -148750,28 +145425,28 @@ - + - + - + - - + + - + - + - + @@ -148780,70 +145455,70 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - - - + + + - + - + - + - + - + @@ -148870,82 +145545,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -148957,69 +145632,69 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -149034,7 +145709,7 @@ - + @@ -149043,96 +145718,96 @@ - - - + + + - + - + - + - + - + - + - + - + - + - - - - - - - - - + + + + + + + + + - - + + - - + + - - - - + + + + - - + + - - + + - - - + + + - - - - + + + + - - + + - - - - + + + + - - - + + + - + @@ -149143,25 +145818,25 @@ - + - + - + - + - + @@ -149170,10 +145845,10 @@ - + - + @@ -149209,7 +145884,7 @@ - + @@ -149227,59 +145902,59 @@ - + - + - + - + - + - + - + - - - - - - - - - + + + + + + + + + - + - + - + - + @@ -149297,16 +145972,16 @@ - + - + - + @@ -149345,10 +146020,10 @@ - + - + @@ -149360,7 +146035,7 @@ - + @@ -149369,166 +146044,166 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -149546,67 +146221,67 @@ - + - + - + - + - + - + - + - + - + - + - + - + - - - + + + - + - + - + - + - + @@ -149618,28 +146293,28 @@ - + - + - + - + - + - + - + @@ -149657,9 +146332,9 @@ - + - + @@ -149668,34 +146343,33 @@ - + - + - + - + - + - + - + - - - - - - + + + + + - + @@ -149704,42 +146378,43 @@ - + - + - + + - + - + - + - + - + - + - + @@ -149760,17 +146435,17 @@ - + - - - + + + - + - + @@ -149782,53 +146457,53 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -149843,10 +146518,10 @@ - + - + @@ -149855,22 +146530,22 @@ - + - + - + - + - + - + @@ -149879,10 +146554,10 @@ - + - + @@ -149894,30 +146569,30 @@ - + - + - + - + - + - + - + - + @@ -149926,100 +146601,100 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -150031,37 +146706,37 @@ - + - + - + - + - + - + - + - - + + - + - + @@ -150076,11 +146751,11 @@ - - - + + + - + @@ -150119,22 +146794,22 @@ - + - + - + - + - + - + @@ -150146,36 +146821,36 @@ - + - + - + - - - - + + + + - + - + - + - + - + @@ -150202,82 +146877,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -150289,57 +146964,57 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -150348,76 +147023,76 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - - - + + + - + - + - + - + - + - + - + - + @@ -150432,7 +147107,7 @@ - + @@ -150441,33 +147116,33 @@ - - - + + + - + - + - - - - + + + + - + - - - + + + @@ -150487,46 +147162,46 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -150544,215 +147219,151 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - + - + - - - - - - - - - - + + - + - - - + + + - - - + + + - + - + - - - - - + + + + + - - - - - + + + + + - + - + - - + + - + @@ -150760,13 +147371,13 @@ - + - + - + @@ -150775,22 +147386,22 @@ - + - + - + - + - + - + @@ -150801,25 +147412,25 @@ - + - + - + - + - + @@ -150828,10 +147439,10 @@ - + - + @@ -150867,7 +147478,7 @@ - + @@ -150885,50 +147496,50 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -150943,7 +147554,7 @@ - + @@ -150954,7 +147565,7 @@ - + @@ -150984,28 +147595,28 @@ - - - - - + + + + + - + - + - + - + - + @@ -151017,28 +147628,28 @@ - + - + - + - + - + - + - + @@ -151056,9 +147667,9 @@ - + - + @@ -151067,24 +147678,24 @@ - + - + - - - - + + + + - + - + @@ -151093,18 +147704,18 @@ - + - + - + @@ -151119,7 +147730,7 @@ - + @@ -151128,63 +147739,63 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + @@ -151193,16 +147804,16 @@ - - - - - - - - - - + + + + + + + + + + @@ -151210,10 +147821,10 @@ - + - + @@ -151222,31 +147833,31 @@ - + - + - + - + - + - + @@ -151255,29 +147866,29 @@ - + - - - - - - + + + + + + - + - + - + - + @@ -151288,246 +147899,244 @@ - + - - + + - - + + - + - + - + - + - + - - - - + + + + - + - + - + - + - + - + - + - + - + - + - + - - - - - + + + - + - + - + - - - + + + - - - - - + + + + + - - - - + + + + - - - - + + + + - - + + - + - + - + - + - + - + - + - - + + - - + + - - - + + + - - + + - + - - - + + + - - - + + + - - - + + + - - - - + + + + - - + + - - + + - - - + + + - - + + - - + + - - - - + + + + - - - + + + - - + + - - + + - + - + - + - + - + - + - + - + @@ -151542,10 +148151,10 @@ - + - + @@ -151554,22 +148163,22 @@ - + - + - + - + - + - + @@ -151578,10 +148187,10 @@ - + - + @@ -151593,30 +148202,30 @@ - + - + - + - + - + - + - + - + @@ -151625,100 +148234,100 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -151730,64 +148339,64 @@ - + - + - + - + - + - + - + - - + + - + - + - + - + - + - - + + - + @@ -151802,75 +148411,75 @@ - + - + - + - + - + - + - + - + - + - + - + - + - - - + + + - + - + - + - + - + - + - + - + @@ -151909,22 +148518,22 @@ - + - + - + - + - + - + @@ -151936,53 +148545,53 @@ - + - + - + - - - - + + + + - + - + - + - + - + - + - + - + - + - + - + @@ -152009,82 +148618,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -152096,57 +148705,57 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -152155,76 +148764,76 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - - - + + + - + - + - + - + - + - + - + - + @@ -152239,7 +148848,7 @@ - + @@ -152248,39 +148857,39 @@ - - + + - + - + - + - + - + - + - + - + @@ -152298,153 +148907,153 @@ - + - - - - - + + + + + - + - + - + - + - + - + - + - + - + - + - - - + + + - + - + - - + + - - + + - - + + - - + + - + - + - - + + - - + + - - + + - - + + - + - + - - + + - - + + - - + + - - + + - + - + - + - + - + - + - + @@ -152453,81 +149062,503 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + @@ -152542,10 +149573,10 @@ - + - + @@ -152554,22 +149585,22 @@ - + - + - + - + - + - + @@ -152578,10 +149609,10 @@ - + - + @@ -152593,12 +149624,13 @@ - + - + + - + @@ -152637,22 +149669,22 @@ - + - + - + - + - + - + @@ -152664,425 +149696,92 @@ - + - + - + - - + + - - - - - - - - - - - - - - - - - - - + - + - - - - + - - - - + - + - - - - + - - - + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + + + + + + + + + + - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + - + - + - + @@ -153103,38 +149802,227 @@ - + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + + - + - - + + - - + + @@ -153142,8 +150030,8 @@ - - + + @@ -153151,54 +150039,54 @@ - - + + - + - - + + - + - + - + - + - + - + - + - + - + - + - + @@ -153225,82 +150113,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -153312,69 +150200,69 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -153389,7 +150277,7 @@ - + @@ -153398,63 +150286,63 @@ - - - + + + - + - + - + - + - + - + - - - - - - - + + + + + + + - + - + - + - - + + - + - - + + - - + + - + - + @@ -153477,34 +150365,34 @@ - + - + - + - + - + - + @@ -153519,7 +150407,7 @@ - + @@ -153534,30 +150422,30 @@ - + - + - + - + - + - + @@ -153569,13 +150457,13 @@ - + - + - + @@ -153586,25 +150474,25 @@ - + - + - + - + - + @@ -153613,10 +150501,10 @@ - + - + @@ -153652,7 +150540,7 @@ - + @@ -153670,57 +150558,356 @@ - + - + - + - + - + - + - + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - + - + - + - + @@ -153730,29 +150917,265 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + + - - + + - - + + - - - + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -153775,34 +151198,34 @@ - + - + - + - + - + - + @@ -153817,7 +151240,7 @@ - + @@ -153832,25 +151255,25 @@ - + - - + + - + - + - + - + @@ -153859,39 +151282,39 @@ - + - - - - + + + + - - - - + + + + - - + + - - + + - - + + - + @@ -153902,25 +151325,25 @@ - + - + - + - + - + @@ -153929,10 +151352,10 @@ - + - + @@ -153968,7 +151391,7 @@ - + @@ -153986,36 +151409,36 @@ - + - + - + - + - + - + - + - + - + @@ -154024,25 +151447,25 @@ - + - + - + - + - + - + @@ -154051,22 +151474,22 @@ - + - + - + - + - + - + @@ -154081,13 +151504,13 @@ - + - + @@ -154096,13 +151519,13 @@ - + - + @@ -154135,10 +151558,10 @@ - + - + @@ -154150,16 +151573,16 @@ - + - + - + @@ -154167,13 +151590,13 @@ - + - + - + @@ -154182,33 +151605,33 @@ - + - + - + - + - + - + - + - + @@ -154223,7 +151646,7 @@ - + @@ -154232,25 +151655,25 @@ - + - + - + - + - - + + - + - + @@ -154259,21 +151682,21 @@ - - + + - - + + - - + + - + @@ -154296,34 +151719,34 @@ - + - + - + - + - + - + @@ -154338,7 +151761,7 @@ - + @@ -154353,220 +151776,104 @@ - + - + - + - - + + - + - + - + - + - - - + + + - - - + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - - + + - - + + - - + + - + - + - + - + - + - + - + @@ -154574,10 +151881,10 @@ - + - + @@ -154586,31 +151893,31 @@ - + - + - + - + - + - + @@ -154619,117 +151926,117 @@ - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - - + + - - + + - + - + - - - + + + - + - - + + - + - + - + @@ -154740,25 +152047,25 @@ - + - + - + - + - + @@ -154767,10 +152074,10 @@ - + - + @@ -154806,7 +152113,7 @@ - + @@ -154824,56 +152131,56 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -154882,7 +152189,7 @@ - + @@ -154891,7 +152198,7 @@ - + @@ -154902,20 +152209,20 @@ - + - - + + - - + + - - + + @@ -154926,70 +152233,70 @@ - - - + + + - + - + - + - + - + - + - + - + - - - + + + - + - - - + + + - + - + - + @@ -154998,124 +152305,124 @@ - + - + - + - - + + - - + + - - - + + + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - - + + - - + + - + - + - + - - + + - + - - - + + + - + - + - - + + - - - + + + @@ -155126,28 +152433,28 @@ - - + + - + - + - - + + - + - + @@ -155174,76 +152481,76 @@ - + - + - - + + - + - - + + - - + + - - + + - + - + - - + + - + - + - + - + - + - + - + - + @@ -155258,10 +152565,10 @@ - + - + @@ -155270,22 +152577,22 @@ - + - + - + - + - + - + @@ -155294,10 +152601,10 @@ - + - + @@ -155309,10 +152616,10 @@ - + - + @@ -155323,25 +152630,25 @@ - + - + - + - + - + @@ -155350,10 +152657,10 @@ - + - + @@ -155389,7 +152696,7 @@ - + @@ -155407,159 +152714,159 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -155571,172 +152878,50 @@ - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + @@ -155744,13 +152929,13 @@ - + - + - + @@ -155759,12 +152944,13 @@ - + + - + @@ -155773,22 +152959,22 @@ - + - + - + - + - + - + @@ -155800,10 +152986,10 @@ - + - + @@ -155815,37 +153001,37 @@ - + - + - + - + - + - + - + - + - + @@ -155857,19 +153043,19 @@ - + - + - + - + @@ -155878,13 +153064,13 @@ - + - + @@ -155896,25 +153082,25 @@ - + - + - + - + - + @@ -155935,91 +153121,64 @@ - - - + + - + - + - + - + - + - + - + - + - + - - + + - - + + - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - + + - + - + - + - + @@ -156037,16 +153196,16 @@ - + - + - + @@ -156085,10 +153244,10 @@ - + - + @@ -156100,7 +153259,7 @@ - + @@ -156109,166 +153268,166 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -156286,54 +153445,54 @@ - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + @@ -156348,68 +153507,68 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -156418,85 +153577,85 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + @@ -156517,52 +153676,52 @@ - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -156574,37 +153733,37 @@ - + - + - + - + - + - + - + - - + + - + - + @@ -156619,63 +153778,63 @@ - - + + - + - + - + - + - + - - - - - + + + + + - + - + - + - + - + - + - + - + @@ -156714,22 +153873,22 @@ - + - + - + - + - + - + @@ -156741,52 +153900,52 @@ - + - + - + - - - + + + - + - + - + - + - + - + - + - + - + - + - + @@ -156813,82 +153972,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -156900,71 +154059,71 @@ - + - + - + - + - + - + - + - + - + - + - - - + + + - + - + - + - + - + - + - + - + @@ -156979,7 +154138,7 @@ - + @@ -156988,231 +154147,231 @@ - - - + + + - + - + - - - + + + - + - + - + - + - + - + - + - + - + - + - - - + + + - + - + - + - + - + - + - + - + - + - - + + - + - - - - - + + + + + - + - - - - + + + + - + - - + + - - - + + + - - - - + + + + - + - + - + - - + + - + - - - + + + - + - + - + - + - + - - - + + + - + - - + + - + - + - + - - + + - - + + - + - + - + - + - + - + @@ -157239,82 +154398,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -157326,69 +154485,69 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -157403,7 +154562,7 @@ - + @@ -157412,31 +154571,31 @@ - - + + - + - + - + - + - + - + - + @@ -157451,10 +154610,10 @@ - + - + @@ -157463,22 +154622,22 @@ - + - + - + - + - + - + @@ -157487,10 +154646,10 @@ - + - + @@ -157502,30 +154661,30 @@ - + - + - + - + - + - + - + - + @@ -157534,99 +154693,99 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -157638,35 +154797,35 @@ - + - + - + - + - + - + - + - - - + + + - + @@ -157705,22 +154864,22 @@ - + - + - + - + - + - + @@ -157732,38 +154891,38 @@ - + - + - + - - + + - - + + - + - + - + - + @@ -157773,421 +154932,202 @@ - + - + - + - + - + - + - + - - + + - - - + + + - - + + - - + + - - + + - - + + - - - + + + - + - + - - - + + + - + - + - + - + - - + + - - - + + + - - + + - - + + - - + + - - + + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + + - + - - + + - + - + - - - + + + - - - + + + - - + + - - + + - + - + - + - - + + - - + + - + @@ -158201,88 +155141,88 @@ - - + + - - + + - - + + - - + + - + - + - - + + - + - + - - - + + + - - + + - - + + - - - - + + + + - - - + + + - + - + - + - + - + @@ -158291,18 +155231,18 @@ - + - + - + - + @@ -158311,48 +155251,48 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -158367,10 +155307,10 @@ - + - + @@ -158379,22 +155319,22 @@ - + - + - + - + - + - + @@ -158403,10 +155343,10 @@ - + - + @@ -158418,30 +155358,30 @@ - + - + - + - + - + - + - + - + @@ -158450,100 +155390,100 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -158555,37 +155495,37 @@ - + - + - + - + - + - + - + - - + + - + - + @@ -158600,38 +155540,38 @@ - - - + + + - + - + - + - + - + - + - - + + - + @@ -158670,22 +155610,22 @@ - + - + - + - + - + - + @@ -158697,102 +155637,102 @@ - + - + - + - - + + - + - + - + - + - + - + - - - + + + - + - + - + - + - + - + - + - + - + - + - + - + - - - + + + - + - + - + - + - + @@ -158819,82 +155759,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -158906,69 +155846,69 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -158983,7 +155923,7 @@ - + @@ -158992,31 +155932,31 @@ - - - + + + - + - + - - - - - - - + + + + + + + - + @@ -159031,16 +155971,16 @@ - + - + - + - + @@ -159049,14 +155989,14 @@ - + - + - + - + @@ -159070,13 +156010,13 @@ - + - + - + @@ -159085,33 +156025,33 @@ - + - + - + - + - + - + - + - + - + - - + + @@ -159128,99 +156068,99 @@ - - - - + + + + - - - - + + + + - + - + - - - + + + - + - + - - - + + + - - - + + + - + - + - - - + + + - - - - - + + + + + - - - + + + - - + + - + - + - + - + - + - + - + @@ -159240,35 +156180,35 @@ - - + + - - + + - - - + + + - - - + + + - + - + - + @@ -159277,32 +156217,32 @@ - + - + - - - + + + - + - + - + - + @@ -159310,10 +156250,10 @@ - + - + @@ -159322,31 +156262,31 @@ - + - + - + - + - + - + @@ -159355,57 +156295,57 @@ - + - - + + - - + + - + - - - - + + + + - - + + - - - - + + + + - - - + + + - - + + - + - + - + @@ -159414,18 +156354,18 @@ - + - + - + - + - + @@ -159433,15 +156373,15 @@ - + - + - + @@ -159449,7 +156389,7 @@ - + @@ -159465,7 +156405,7 @@ - + @@ -159478,18 +156418,18 @@ - + - + - + @@ -159497,9 +156437,9 @@ - + - + @@ -159510,18 +156450,18 @@ - + - + - + @@ -159530,17 +156470,17 @@ - + - + - + - + @@ -159549,126 +156489,126 @@ - + - + - + - + - - - + + + - - + + - - + + - - - + + + - - + + - - - - + + + + - + - + - - - - + + + + - + - + - + - + - + - - + + - - + + - - + + - - + + - - + + - + @@ -159676,21 +156616,21 @@ - + - + - + - + - + @@ -159702,356 +156642,260 @@ - - - + + + - - + + - + - - + + - + - + - + - - + + - + - - + + - - + + - + - + - + - + - + - + - + - - + + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - - - - - - - - - - + + - + - + + + + - + + + + - + + + + - + + + + - + + + + + + + - + + + + - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -160066,7 +156910,7 @@ - + @@ -160075,39 +156919,38 @@ - - + - + - + - + - + - + - + - + - + @@ -160125,202 +156968,139 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - + + + - - + + - - + + - + - + - + - - + + - + - + - - - + + + - - - + + + - - - + + + - + - + - - - + + + - + - + - - + + - - - - + + + + - - - + + + - + - + - + - - + + - + - - - + + + - + @@ -160331,25 +157111,25 @@ - + - + - + - + - + @@ -160358,10 +157138,10 @@ - + - + @@ -160397,7 +157177,7 @@ - + @@ -160415,51 +157195,51 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -160477,16 +157257,16 @@ - + - + - + @@ -160525,10 +157305,10 @@ - + - + @@ -160540,7 +157320,7 @@ - + @@ -160549,166 +157329,166 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -160726,39 +157506,39 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -160785,82 +157565,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -160872,57 +157652,57 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -160931,48 +157711,48 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -160987,10 +157767,10 @@ - + - + @@ -160999,22 +157779,22 @@ - + - + - + - + - + - + @@ -161023,10 +157803,10 @@ - + - + @@ -161038,30 +157818,30 @@ - + - + - + - + - + - + - + - + @@ -161070,99 +157850,99 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -161174,35 +157954,35 @@ - + - + - + - + - + - + - + - - - + + + - + @@ -161241,22 +158021,22 @@ - + - + - + - + - + - + @@ -161268,68 +158048,68 @@ - + - + - + - - + + - + - + - + - + - + - + - - - + + + - + - + - + - + - + - + - + - + @@ -161344,7 +158124,7 @@ - + @@ -161353,214 +158133,214 @@ - - + + - - - + + + - + - - + + - - + + - + - + - - + + - + - + - + - + - + - - + + - - + + - + - + - + - + - - + + - + - + - + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - - + + - + - + - + - - - + + + - - - + + + - + - + - + - + - + - + - + @@ -161569,99 +158349,99 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -161673,44 +158453,44 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -161719,83 +158499,83 @@ - + - + - - + + - - - + + + - + - + - - - - - + + + + + - + - + - - - + + + - - - + + + - - - + + + - + - + - + @@ -161803,103 +158583,103 @@ - - + + - + - + - + - - + + - - + + - + - + - - + + - + - - - + + + - + - + - - - + + + - + - - + + - + - + - + - + - + - - + + - - - + + + - + - - + + - - + + - - + + - + @@ -161910,25 +158690,25 @@ - + - + - + - + - + @@ -161937,10 +158717,10 @@ - + - + @@ -161976,7 +158756,7 @@ - + @@ -161994,186 +158774,46 @@ - + - + - + - + - + - + - + - - + + - - - - - - - - - - - - - - - - - - - + - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -162203,31 +158843,31 @@ - + - - + + - + - + - + - + @@ -162245,16 +158885,16 @@ - + - + - + @@ -162293,10 +158933,10 @@ - + - + @@ -162308,7 +158948,7 @@ - + @@ -162317,166 +158957,166 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -162494,69 +159134,69 @@ - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + @@ -162565,81 +159205,81 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -162654,10 +159294,10 @@ - + - + @@ -162666,22 +159306,22 @@ - + - + - + - + - + - + @@ -162690,10 +159330,10 @@ - + - + @@ -162705,13 +159345,13 @@ - + - - + + - + @@ -162750,22 +159390,22 @@ - + - + - + - + - + - + @@ -162777,22 +159417,22 @@ - + - + - + - - + + - + - + @@ -162807,10 +159447,10 @@ - - + + - + @@ -162819,24 +159459,24 @@ - + - + - + - + - + - + @@ -162845,46 +159485,130 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - - - + + + - + - + - + - + - + - + - + @@ -162905,52 +159629,52 @@ - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -162962,75 +159686,75 @@ - + - + - + - + - + - + - + - + - - - - - + + + + + - - + + - - - - - + + + + + - + - + - + - + - - - + + + - + @@ -163038,91 +159762,91 @@ - - - + + + - - + + - + - + - + - - + + - - + + - + - + - - + + - + - - + + - - + + - - + + - - + + - + - - + + - + - + @@ -163140,131 +159864,131 @@ - - + + - + - + - + - + - + - + - - + + - - + + - + - + - + - - + + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -163273,97 +159997,181 @@ - + - - - - - - - + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - - - - + + + + - - + + - + - + - + - + - + - - - + + + - - - + + + - + - + - + - + - + - + @@ -163381,109 +160189,203 @@ - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + @@ -163498,7 +160400,7 @@ - + @@ -163507,48 +160409,86 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - + - + - - + + - - + + - + - + - + - + - + - + @@ -163557,16 +160497,16 @@ - + - + - + @@ -163574,13 +160514,13 @@ - + - + - + @@ -163589,38 +160529,38 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -163659,22 +160599,22 @@ - + - + - + - + - + - + @@ -163686,39 +160626,39 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -163733,10 +160673,10 @@ - + - + @@ -163745,22 +160685,22 @@ - + - + - + - + - + - + @@ -163769,10 +160709,10 @@ - + - + @@ -163784,30 +160724,30 @@ - + - + - + - + - + - + - + - + @@ -163816,99 +160756,99 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -163920,60 +160860,60 @@ - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + @@ -163982,28 +160922,28 @@ - + - + - + - + - + - - - + + + - + @@ -164018,109 +160958,109 @@ - + - + - + - + - + - + - + - + - + - + - + - + - - - + + + - + - + - + - + - + - + - - - + + + - + - + - + - + - + - + - + - + - + - + - + @@ -164147,82 +161087,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -164234,57 +161174,57 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -164293,76 +161233,76 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - - - + + + - + - + - + - + - + - + - + - + @@ -164377,7 +161317,7 @@ - + @@ -164386,40 +161326,40 @@ - - - + + + - + - + - + - + - + - + - + - + @@ -164437,139 +161377,204 @@ - + - - - - + + + + - + - + - - - + + + - + - + - + - + - + - + - + - + - + - + - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + @@ -164596,82 +161601,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -164683,69 +161688,69 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -164760,7 +161765,7 @@ - + @@ -164769,73 +161774,73 @@ - - - + + + - + - + - + - - + + - + - - + + - - - + + + - - - + + + - - - + + + - - - - + + + + - + - + - + - - + + - - - + + + - + @@ -164843,52 +161848,52 @@ - + - + - - - + + + - + - + - + - + - + - - - + + + - + - - + + - + - + @@ -164897,9 +161902,9 @@ - - - + + + @@ -164910,25 +161915,25 @@ - + - + - + - + - + @@ -164937,10 +161942,10 @@ - + - + @@ -164976,7 +161981,7 @@ - + @@ -164994,105 +161999,105 @@ - + - + - + - + - + - + - + - + - - + + - + - + - + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -165101,53 +162106,53 @@ - + - - - + + + - + - + - + - + - + - + - + - + - - + + - + - - + + - + @@ -165155,26 +162160,26 @@ - + - + - + - + - - - + + + - - - + + + @@ -165182,64 +162187,64 @@ - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -165248,69 +162253,69 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + @@ -165325,13 +162330,13 @@ - + - + - + @@ -165352,40 +162357,40 @@ - + - + - + - + - + - + - - + + - - - + + + @@ -165399,24 +162404,24 @@ - + - + - + - + - + - + @@ -165431,16 +162436,16 @@ - + - - - - - + + + + + - + @@ -165449,22 +162454,22 @@ - + - + - + - + - + - + @@ -165485,33 +162490,33 @@ - + - + - + - + - + - + - + - + - - - - + + + + @@ -165519,254 +162524,254 @@ - + - - - - - - - - - - - + + + + + + + + + + + - + - + - - - - - - - - - - - + + + + + + + + + + + - + - + - + - + - + - - - - + + + + - + - - + + - - - + + + - + - + - + - + - + - - - + + + - - - + + + - + - - - + + + - - - + + + - - - + + + - - - - + + + + - - + + - - - + + + - - + + - - + + - - + + - - + + - - - - - + + + + + - - + + - - + + - - - + + + - - - + + + - - - - + + + + - - - + + + - - + + - + + + + + + + + + + + - - - - - - - - - - - - + + - + - - - + + + - - - + + + - - + + - + - + - + - + @@ -165781,13 +162786,13 @@ - + - + - + @@ -165808,49 +162813,48 @@ - + - + - + - + - + - + - - + - + - + - + - + - + @@ -165859,22 +162863,22 @@ - + - + - + - + - + @@ -165892,243 +162896,245 @@ - + - + - + + - + - + - + - + - + - + - + - + - + + - - + + - - - - + + + + - - - + + + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - - + + - - + + - - - - + + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - + - - - + + + - + - + - - - + + + - + - + - + - + - - - + + + - + - + - + - + - - + + - + - + - + - + - + @@ -166143,13 +163149,13 @@ - + - + - + @@ -166170,172 +163176,171 @@ - + - + - + - + - + - + - - - + - + - + - + - + - + - + - + - + - + + - - - + + + - + - + - - + + - - + + - - + + - + - - - + + + - - - + + + - + - + - + - + - + - + - + - + - + - - + + - + - - + + - + - - - + + + - + - + - + - + @@ -166350,13 +163355,13 @@ - + - + - + @@ -166377,123 +163382,123 @@ - + - + - + - + - + - + - - + - + - + - + - + - + - + - + - + - + + - - + + - + - + - + - + - - + + - + - + - + - + - + - - - + + + - - + + - + - + @@ -166508,10 +163513,10 @@ - + - + @@ -166520,62 +163525,62 @@ - + - + - - - + + + - + - + - + - + - + - + - - - + + + - - + + - + - + @@ -166583,51 +163588,51 @@ - + - + - + - + - + - + - - + + - + - + - + - + @@ -166635,260 +163640,260 @@ - + - + - + - + - - + + - + - + - - - - - - + + + + + + - - - - + + + + - - - + + + - - - + + + - - + + - + - + - - + + - - + + - - + + - - - + + + - - + + - - - + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -166896,13 +163901,13 @@ - + - + - + @@ -166913,17 +163918,17 @@ - - - + + + - + - + @@ -166932,43 +163937,43 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -166976,73 +163981,72 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + - + - + @@ -167051,102 +164055,103 @@ - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - + + + - + - + - + - + - + - - - + + + + - + @@ -167188,10 +164193,10 @@ - + - + @@ -167215,13 +164220,13 @@ - + - + - + @@ -167266,10 +164271,10 @@ - + - + @@ -167290,18 +164295,18 @@ - + - + - + - + - + @@ -167313,143 +164318,143 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -167458,220 +164463,220 @@ - + - - + + - + - - + + - + - + - + - - + + - + - - + + - + - - - - + + + + - - - - - + + + + + - - - - + + + + - - + + - + - - - - + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - + - + - + - + - + - - - + + + - + - - + + - - + + - + - - - + + + - - + + - - - + + + - + - - - + + + - + - + - - + + - + - + @@ -167679,288 +164684,288 @@ - - - + + + - + - + - + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - + - + - + - - - + + + - - + + - - + + - - + + - + - - + + - - + + - - + + - + - + - - + + - + - - + + - + - + - + - + - - + + - - + + - - + + - + - - + + - + - - + + - + - + - + - + - + - + - + - - - - + + + + - - + + - + - + - + - + - + - - - + + + - + - + - - + + - - + + - - - + + + - - - + + + - - + + - - - - + + + + - - + + - + - - - + + + @@ -167968,145 +164973,20 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + @@ -168117,391 +164997,391 @@ - + - + - + - + - + - + - + - - + + - + - - + + - - + + - + - + - + - + - - - - + + + + - - + + - - + + - + - - + + - + - - - - + + + + - - + + - + - + - + - + - + - - - - - + + + + + - - + + - - + + - - + + - + - + - - + + - + - + - + - + - + - - - - + + + + - - + + - + - - + + - + - - + + - - + + - + - + - + - + - - - + + + - + - + - - - - + + + + - + - + - + - + - + - - - + + + - - - + + + - - - + + + - - - - - + + + + + - - - + + + - + - - - + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - + + + @@ -168512,126 +165392,126 @@ - + - + - + - + - + - + - + - + - + - - - - - - + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - - + + - + - + - + - + - + @@ -168643,7 +165523,7 @@ - + @@ -168658,111 +165538,111 @@ - + - - - + + + - - + + - + - + - + - + - + - + - + - + - - - - + + + + - - + + - + - - - + + + - - - + + + - - + + - - + + - + - + - + - - + + - - - + + + - - + + - + - + - + - + - + @@ -168770,773 +165650,772 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - + - + - + - - - + + + - + - + - - - + + + - - - + + + - - - - + + + + - + - + - + - + - - + + - - + + - - - + + + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - - + + - - + + - - + + - + - + - + - + - + - + - - - + + + - - + + - + - + - - - + + + - - - + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - + + + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - - + + - - + + - + - - - + + + - - - + + + - + - - - + + + - + - + - + - + - - + + - + - + - + - - + + - + - + - - + + - - + + - + - - - + + + - - + + - - + + - - + + - - + + - + - + - - + + - + - + - + - + - + - + - + - + - - + + - - - + + + - + - + - + - + - + - + - - + + @@ -169544,640 +166423,515 @@ - - + + - + - - - + + + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + - + - - - + + + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - + + + - - - - + + + + - - + + - + - - + + - - + + - - - - + + + + - - + + - + - - + + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -170186,191 +166940,191 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - + + + - + - + - + - + - + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -170380,99 +167134,99 @@ - - + + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + @@ -170485,170 +167239,170 @@ - + - - + + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - - + + - + - + - + - - - + + + - + - + - - - + + + - - - + + + - + - + - + - + - + - + - + - + - - + + - + - + - + - + @@ -170656,15 +167410,25 @@ - + + + + + + + + + + + - + - + - + @@ -170673,16 +167437,16 @@ - + - + - + @@ -170697,7 +167461,7 @@ - + @@ -170712,7 +167476,7 @@ - + @@ -170736,49 +167500,49 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -170799,10 +167563,10 @@ - + - + @@ -170826,7 +167590,7 @@ - + @@ -170841,7 +167605,7 @@ - + @@ -170868,18 +167632,18 @@ - + - + - + - + @@ -170887,9 +167651,9 @@ - - - + + + @@ -170903,64 +167667,64 @@ - + - + - + - + - + - - - - - + + + + + - + - + - + - + - + - + - + - + - + - + - + @@ -170969,59 +167733,59 @@ - - - - - + + + + + - + - - - - - - - - - - - - - - + + + + + + + + + + + + + + - - - - + + + + - + - + - + @@ -171029,53 +167793,53 @@ - - - - - + + + + + - + - + - + - + - + - + - + - + - + - - - - - - - + + + + + + + @@ -171083,8 +167847,8 @@ - - + + @@ -171095,10 +167859,10 @@ - - - - + + + + @@ -171115,40 +167879,40 @@ - + - + - + - + - + - + - + - + - + - + @@ -171157,31 +167921,31 @@ - + - + - + - + - + - + - + - + @@ -171208,13 +167972,13 @@ - + - + - + @@ -171229,9 +167993,9 @@ - - - + + + @@ -171257,63 +168021,63 @@ - - - - + + + + - - + + - - + + - + - - + + - - + + - + - + - + - - - + + + - - - - + + + + - - + + - - + + - + - + - + @@ -171331,8 +168095,8 @@ - - + + @@ -171350,243 +168114,243 @@ - - - - + + + + - - + + - - - + + + - + - - + + - + - + - + - - + + - + - + - + - + - - - + + + - + - + - + - + - + - + - + - + - + - - + + - - + + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - - + + - - + + - - + + - + - + - + - + - + - + - + @@ -171594,38 +168358,38 @@ - + - + - - + + - - + + - + - - + + - - + + - + @@ -171634,38 +168398,46 @@ - + - + - + - + - + - - + + - + + + + + + + + + @@ -171673,7 +168445,7 @@ - + @@ -171681,13 +168453,13 @@ - + - + - + @@ -171699,27 +168471,27 @@ - + - + - + - + - + - + @@ -171728,7 +168500,7 @@ - + @@ -171737,10 +168509,10 @@ - + - + @@ -171749,88 +168521,88 @@ - + - + - + - - + + - - - + + + - + - - - - - + + + + + - + - - + + - + - - - - - - - + + + + + + + - - + + - + - + - + - + - + - + - + - + - + - + @@ -171853,7 +168625,7 @@ - + @@ -171861,24 +168633,24 @@ - + - + - + - + - + @@ -171886,54 +168658,54 @@ - - + + - + - + - + - - - + + + - + - + - + - + - + - + - + - + @@ -171941,46 +168713,46 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -171995,7 +168767,7 @@ - + @@ -172007,31 +168779,32 @@ - + - + - + - - - - - + + + + + + - + - + - + @@ -172052,7 +168825,7 @@ - + @@ -172061,7 +168834,7 @@ - + @@ -172070,13 +168843,13 @@ - + - + - + @@ -172091,8 +168864,8 @@ - - + + @@ -172121,64 +168894,64 @@ - + - + - + - + - - + + - - - - + + + + - + - + - - + + - - - + + + - - + + - + - + - + - - + + - + @@ -172186,19 +168959,19 @@ - + - + - + - + - + @@ -172207,19 +168980,19 @@ - + - + - + @@ -172228,148 +169001,148 @@ - + - + - + - - - + + + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - - + + - - + + - + - + - + - - - + + + - - + + - - - + + + - - - + + + - - + + - - + + - + - + - + - + @@ -172378,7 +169151,7 @@ - + @@ -172393,7 +169166,7 @@ - + @@ -172411,7 +169184,7 @@ - + @@ -172480,22 +169253,22 @@ - + - + - + - + - + @@ -172504,7 +169277,7 @@ - + @@ -172513,51 +169286,51 @@ - + - + - + - - + + - + - + - - - + + + - + - - - + + + - + @@ -172565,62 +169338,62 @@ - + - + - + - + - + - + - - - + + + - + - - + + - - + + - + - - + + - + @@ -172632,56 +169405,56 @@ - + - + - + - + - + - + - + - - + + - - + + - - - - + + + + - + - + - + @@ -172693,101 +169466,101 @@ - + - - + + - - + + - + - - + + - - + + - - + + - + - - - - + + + + - + - + - + - + - + - + - + - + - + - + - - + + - + - - - + + + - + - + @@ -172865,7 +169638,7 @@ - + @@ -172877,19 +169650,19 @@ - + - + - + - + @@ -173033,16 +169806,16 @@ - + - + - + @@ -173057,19 +169830,19 @@ - + - + - + - + - + @@ -173081,16 +169854,16 @@ - + - + - + @@ -173104,7 +169877,7 @@ - + @@ -173119,16 +169892,16 @@ - + - + - + - + @@ -173173,7 +169946,7 @@ - + @@ -173227,13 +170000,13 @@ - + - + - + @@ -173260,25 +170033,25 @@ - + - + - + - + - + - + @@ -173400,10 +170173,10 @@ - + - + @@ -173466,7 +170239,7 @@ - + @@ -173562,13 +170335,13 @@ - + - + - + @@ -173583,10 +170356,10 @@ - + - + @@ -173655,7 +170428,7 @@ - + @@ -173664,10 +170437,10 @@ - + - + @@ -173745,7 +170518,7 @@ - + @@ -173802,7 +170575,7 @@ - + @@ -173814,7 +170587,7 @@ - + @@ -173826,159 +170599,90 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -174002,7 +170706,7 @@ - + @@ -174035,13 +170739,13 @@ - + - + - + @@ -174050,19 +170754,19 @@ - + - - - - - + + + + + - + - + @@ -174071,7 +170775,7 @@ - + @@ -174101,16 +170805,16 @@ - + - + - + - + @@ -174119,19 +170823,19 @@ - + - + - + - + - + @@ -174146,57 +170850,57 @@ - + - + - - - - + + + + - + - + - + - + - + - + - + - + - - - - - - + + + + + + - + @@ -174205,7 +170909,7 @@ - + @@ -174247,16 +170951,16 @@ - + - + - + @@ -174264,24 +170968,24 @@ - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + @@ -174291,7 +170995,7 @@ - + @@ -174299,14 +171003,14 @@ - + - - - - - + + + + + @@ -174319,171 +171023,171 @@ - + - + - + - + - - + + - + - + - - - + + + - + - + - + - - - + + + - + - + - + - + - - - + + + - + - - - + + + - + - - + + - - - + + + - - + + - - - + + + - - + + - - - + + + - - + + - - + + - - + + - - - - + + + + - - - + + + - - + + - - + + - - - + + + - - + + - - + + - - + + - - + + - - + + - + @@ -174497,7 +171201,7 @@ - + @@ -174512,16 +171216,16 @@ - + - + - + - + @@ -174566,7 +171270,7 @@ - + @@ -174620,13 +171324,13 @@ - + - + - + @@ -174653,31 +171357,152 @@ - + - + - + - + - + - - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + @@ -174755,7 +171580,7 @@ - + @@ -174767,19 +171592,19 @@ - + - + - + - + @@ -174923,16 +171748,16 @@ - + - + - + @@ -174947,19 +171772,19 @@ - + - + - + - + - + @@ -174971,18 +171796,18 @@ - + - + - + - + @@ -174991,7 +171816,7 @@ - + @@ -175033,225 +171858,30 @@ - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - + - + - + @@ -175259,35 +171889,35 @@ - - + + - - + + - + - - - + + + - + - + - + - + @@ -175365,7 +171995,7 @@ - + @@ -175377,19 +172007,19 @@ - + - + - + - + @@ -175533,16 +172163,16 @@ - + - + - + @@ -175557,19 +172187,19 @@ - + - + - + - + - + @@ -175581,49 +172211,1770 @@ - + - + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + - + @@ -175649,24 +174000,24 @@ - - - - - - - - + + + + + + + + - + - + - + - + @@ -175675,7 +174026,7 @@ - + @@ -175705,16 +174056,16 @@ - + - + - + - + @@ -175723,19 +174074,19 @@ - + - + - + - + - + @@ -175750,19 +174101,19 @@ - + - + - - + + - - + + - + @@ -175770,7 +174121,7 @@ - + @@ -175782,34 +174133,34 @@ - + - + - + - + - + - - - + + + - - + + - + @@ -175819,7 +174170,7 @@ - + @@ -175829,56 +174180,56 @@ - + - + - + - - + + - - - + + + - - - + + + - - - - + + + + - + - + - + - + @@ -175956,7 +174307,7 @@ - + @@ -175968,19 +174319,19 @@ - + - + - + - + @@ -176124,16 +174475,16 @@ - + - + - + @@ -176148,19 +174499,19 @@ - + - + - + - + - + @@ -176172,16 +174523,16 @@ - + - + - + @@ -176195,7 +174546,7 @@ - + @@ -176210,16 +174561,16 @@ - + - + - + - + @@ -176264,7 +174615,7 @@ - + @@ -176318,13 +174669,13 @@ - + - + - + @@ -176351,108 +174702,108 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -176476,7 +174827,7 @@ - + @@ -176509,13 +174860,13 @@ - + - + - + @@ -176524,210 +174875,74 @@ - + - - - + + - + - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - - + + - - + + - - + + - - + + - - + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - + - + - + - + - + - + - + - + @@ -176736,13 +174951,13 @@ - + - + @@ -176763,13 +174978,13 @@ - + - + - + @@ -176799,31 +175014,31 @@ - + - + - + - + - + - + - + @@ -176835,7 +175050,7 @@ - + @@ -176844,7 +175059,7 @@ - + @@ -176859,37 +175074,37 @@ - + - + - + - + - + - + - + - + @@ -176898,228 +175113,99 @@ - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - + - + - + - - - - + + - - + + - - - - + + - - - - - - - - + + - + - - - - + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + + + + + + + + - - - + + - + @@ -177128,7 +175214,7 @@ - + @@ -177170,408 +175256,71 @@ - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - + - + - + - + - + - + - + - + - + - - + + - - + + - + - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + @@ -177580,7 +175329,7 @@ - + @@ -177610,16 +175359,16 @@ - + - + - + - + @@ -177628,19 +175377,19 @@ - + - + - + - + - + @@ -177655,12 +175404,286 @@ - + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -177738,7 +175761,7 @@ - + @@ -177750,19 +175773,19 @@ - + - + - + - + @@ -177906,16 +175929,16 @@ - + - + - + @@ -177930,19 +175953,19 @@ - + - + - + - + - + @@ -177954,16 +175977,16 @@ - + - + - + @@ -177977,7 +176000,7 @@ - + @@ -177992,16 +176015,16 @@ - + - + - + - + @@ -178046,7 +176069,7 @@ - + @@ -178100,13 +176123,13 @@ - + - + - + @@ -178133,315 +176156,28 @@ - + - + - + - + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -178450,7 +176186,7 @@ - + @@ -178492,148 +176228,43 @@ - + - + - - - + + + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + @@ -178711,7 +176342,7 @@ - + @@ -178723,19 +176354,19 @@ - + - + - + - + @@ -178879,16 +176510,16 @@ - + - + - + @@ -178903,19 +176534,19 @@ - + - + - + - + - + @@ -178927,20 +176558,18 @@ - + - + - - - + - + @@ -178949,7 +176578,7 @@ - + @@ -178991,18 +176620,1071 @@ - + - + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -179124,10 +177806,10 @@ - + - + @@ -179286,13 +177968,13 @@ - + - + - + @@ -179307,10 +177989,10 @@ - + - + @@ -179379,7 +178061,7 @@ - + @@ -179388,10 +178070,10 @@ - + - + @@ -179469,7 +178151,7 @@ - + @@ -179526,7 +178208,7 @@ - + @@ -179538,7 +178220,7 @@ - + @@ -179551,29 +178233,29 @@ - - - - - + + + + + - + - + - + - + - + @@ -179651,7 +178333,7 @@ - + @@ -179663,19 +178345,19 @@ - + - + - + - + @@ -179819,16 +178501,16 @@ - + - + - + @@ -179843,19 +178525,19 @@ - + - + - + - + - + @@ -179867,18 +178549,18 @@ - + - + - + - + @@ -179887,7 +178569,7 @@ - + @@ -179929,20 +178611,20 @@ - + - + - - - + + + - + @@ -179951,7 +178633,7 @@ - + @@ -179966,7 +178648,7 @@ - + @@ -179984,7 +178666,7 @@ - + @@ -180053,22 +178735,22 @@ - + - + - + - + - + @@ -180077,7 +178759,7 @@ - + @@ -180086,34 +178768,34 @@ - + - + - + - - + + - + - + - + - + @@ -180122,7 +178804,7 @@ - + @@ -180152,16 +178834,16 @@ - + - + - + - + @@ -180170,19 +178852,19 @@ - + - + - + - + - + @@ -180197,81 +178879,578 @@ - - - + + - + - + - + + - + - - + + - + - + - + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + @@ -180280,13 +179459,13 @@ - + - + @@ -180307,13 +179486,13 @@ - + - + - + @@ -180343,31 +179522,31 @@ - + - + - + - + - + - + - + @@ -180379,7 +179558,7 @@ - + @@ -180388,7 +179567,7 @@ - + @@ -180403,37 +179582,37 @@ - + - + - + - + - + - + - + - + @@ -180442,18 +179621,82 @@ - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + @@ -180462,54 +179705,54 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -180518,54 +179761,54 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -180574,7 +179817,7 @@ - + @@ -180598,7 +179841,7 @@ - + @@ -180610,7 +179853,7 @@ - + @@ -180619,10 +179862,10 @@ - + - + @@ -180631,7 +179874,7 @@ - + @@ -180658,13 +179901,13 @@ - + - + - + @@ -180679,22 +179922,22 @@ - + - + - + - + @@ -180709,198 +179952,198 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - - + + - + - + - + - + - + - + - + - + @@ -180909,13 +180152,13 @@ - + - + @@ -180936,13 +180179,13 @@ - + - + - + @@ -180972,31 +180215,31 @@ - + - + - + - + - + - + - + @@ -181008,7 +180251,7 @@ - + @@ -181017,7 +180260,7 @@ - + @@ -181032,37 +180275,37 @@ - + - + - + - + - + - + - + - + @@ -181071,27 +180314,27 @@ - + - + - + - + - + - + - + @@ -181103,25 +180346,25 @@ - + - + - + - + - + - + @@ -181142,7 +180385,7 @@ - + @@ -181154,26 +180397,26 @@ - + - - + + - + - + @@ -181183,36 +180426,36 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -181242,37 +180485,37 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -181286,62 +180529,62 @@ - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - - + + - - - + + + - + - + @@ -181350,7 +180593,7 @@ - + @@ -181380,16 +180623,16 @@ - + - + - + - + @@ -181398,19 +180641,19 @@ - + - + - + - + - + @@ -181425,77 +180668,77 @@ - - - + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - + + + + + - - - - + + + + @@ -181518,11 +180761,11 @@ - - - - - + + + + + @@ -181538,17 +180781,17 @@ - - + + - - - - + + + + @@ -181556,7 +180799,7 @@ - + @@ -181576,16 +180819,16 @@ - + - - + + - + @@ -181593,40 +180836,40 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -181635,45 +180878,45 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -181681,23 +180924,23 @@ - + - + - + - + - + - + - + @@ -181715,24 +180958,24 @@ - - + + - + - + - + - + - + @@ -181741,10 +180984,10 @@ - + - + @@ -181753,17 +180996,17 @@ - + - + - + @@ -181771,28 +181014,28 @@ - + - + - + - + - + - + @@ -181825,19 +181068,19 @@ - + - + - + - + @@ -181845,26 +181088,26 @@ - + - + - + - + - + - - + + @@ -181878,15 +181121,15 @@ - - - - - - - - - + + + + + + + + + @@ -181900,19 +181143,19 @@ - + - + - + - + - + @@ -181924,15 +181167,15 @@ - + - + - + @@ -181940,7 +181183,7 @@ - + @@ -181964,7 +181207,7 @@ - + @@ -181972,39 +181215,39 @@ - + - + - + - + - + - + - + - + @@ -182019,124 +181262,124 @@ - - + + - - + + - + - + - + - + - + - + - + - + - + - - + + - - - + + + - - - + + + - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - + + - - + + - + - - + + - - + + - - - - + + + + - - + + - - + + @@ -182144,26 +181387,26 @@ - + - + - + - + - + - + @@ -182174,33 +181417,33 @@ - + - + - + - + - + - + - + - + - + @@ -182238,193 +181481,193 @@ - + - - - + + + - - + + - + - + - + - + - + - + - + - + - - - - - + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - - - + + + - - + + - - + + - - + + - + - - + + - + - - + + - - + + - + @@ -182447,24 +181690,24 @@ - + - + - + - + - + - + @@ -182500,28 +181743,28 @@ - + - + - + - + - + - + - + - + @@ -182530,7 +181773,7 @@ - + @@ -182548,16 +181791,16 @@ - + - + - + - + @@ -182608,7 +181851,7 @@ - + @@ -182635,16 +181878,16 @@ - + - + - + - + @@ -182653,22 +181896,22 @@ - + - + - + - + - + - + @@ -182677,37 +181920,37 @@ - + - + - + - + - + - + - + - + - + @@ -182716,10 +181959,10 @@ - + - + @@ -182731,16 +181974,16 @@ - + - + - + - + @@ -182752,37 +181995,37 @@ - + - + - + - + - + - + - + - + - + @@ -182791,25 +182034,25 @@ - + - + - + - + - + - + - + @@ -182818,28 +182061,20 @@ - + + + - - - - - - - - - - - + - + - + - + @@ -182848,7 +182083,7 @@ - + @@ -182863,29 +182098,29 @@ - + - - - - + + + + - + - + - + - - - + + + @@ -182935,53 +182170,53 @@ - + - + - - + + - - + + - - + + - - + + - + - + - + - + - + - + @@ -182995,16 +182230,16 @@ - + - - + + - + - - + + @@ -183012,9 +182247,9 @@ - + - + @@ -183023,40 +182258,40 @@ - + - + - + - + - + - + - + - + - + @@ -183065,49 +182300,49 @@ - + - + - - + + - - - - - + + + + + - + - + - + - + - + - + - + @@ -183116,10 +182351,10 @@ - + - + @@ -183128,26 +182363,26 @@ - - - - + + + + - - + + - - + + - + - + @@ -183156,60 +182391,60 @@ - - + + - - + + - - + + - + - - + + - - + + - - + + - - - + + + - - + + - + - + - + - + @@ -183248,13 +182483,13 @@ - + - + @@ -183269,13 +182504,13 @@ - + - + - + @@ -183290,16 +182525,16 @@ - + - + - + @@ -183308,27 +182543,27 @@ - + - + - + - + - + - + @@ -183337,122 +182572,122 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - + + + + + + + - + @@ -183461,34 +182696,34 @@ - + - + - + - + - + - + - + - + - + @@ -183524,28 +182759,28 @@ - + - + - + - + - + - + - + - + @@ -183554,7 +182789,7 @@ - + @@ -183572,16 +182807,16 @@ - + - + - + - + @@ -183632,7 +182867,7 @@ - + @@ -183659,16 +182894,16 @@ - + - + - + - + @@ -183677,22 +182912,22 @@ - + - + - + - + - + - + @@ -183701,37 +182936,37 @@ - + - + - + - + - + - + - + - + - + @@ -183740,10 +182975,10 @@ - + - + @@ -183755,16 +182990,16 @@ - + - + - + - + @@ -183776,37 +183011,37 @@ - + - + - + - + - + - + - + - + - + @@ -183815,25 +183050,25 @@ - + - + - + - + - + - + - + @@ -183842,44 +183077,44 @@ - + - + - + - + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - + - + @@ -183889,7 +183124,7 @@ - + @@ -183916,230 +183151,230 @@ - - - - + + + + - + - + - + - - + + - + - - + + - - + + - - + + - + - + - + - + - + - + - + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - + - - - - - - - - - - - - - + + - - + + + - - - + + + + + + + + + + + + + - - - + + + - - - + + + - - + + - - + + - - + + - - + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - + - + - + - + @@ -184178,13 +183413,13 @@ - + - + @@ -184199,13 +183434,13 @@ - + - + - + @@ -184220,16 +183455,16 @@ - + - + - + @@ -184238,64 +183473,64 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -184305,10 +183540,10 @@ - + - + @@ -184319,80 +183554,80 @@ - - + + - + - + - + - + - + - + - + - + - + - + - - - - + + + + - - - - + + + + - + @@ -184400,7 +183635,7 @@ - + @@ -184408,51 +183643,51 @@ - - - - - + + + + + - - - - - + + + + + - + - + - + - + - + - + @@ -184462,62 +183697,62 @@ - + - + - - + + - - + + - - + + - - - + + + - + - - + + - - - - - - - - + + + + + + + + - + - + - + - + @@ -184536,260 +183771,260 @@ - + - + - + - + - - + + - - - - + + + + - - + + - + - + - - - + + + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -184798,34 +184033,33 @@ - + - + - - + - + - + - + - + - + - + @@ -184834,10 +184068,10 @@ - + - + @@ -184846,36 +184080,37 @@ - + + - - + + - + - + - + - + - + - + - + @@ -184914,13 +184149,13 @@ - + - + @@ -184935,13 +184170,13 @@ - + - + - + @@ -184956,16 +184191,16 @@ - + - + - + @@ -184974,21 +184209,21 @@ - + - + - + - + - + @@ -185024,28 +184259,28 @@ - + - + - + - + - + - + - + - + @@ -185054,7 +184289,7 @@ - + @@ -185072,16 +184307,16 @@ - + - + - + - + @@ -185132,7 +184367,7 @@ - + @@ -185159,16 +184394,16 @@ - + - + - + - + @@ -185177,22 +184412,22 @@ - + - + - + - + - + - + @@ -185201,37 +184436,37 @@ - + - + - + - + - + - + - + - + - + @@ -185240,10 +184475,10 @@ - + - + @@ -185255,16 +184490,16 @@ - + - + - + - + @@ -185276,37 +184511,37 @@ - + - + - + - + - + - + - + - + - + @@ -185315,25 +184550,25 @@ - + - + - + - + - + - + - + @@ -185342,85 +184577,85 @@ - + - + - + - + - + - + - + - - + + - - + + - + - + - + - + - + - + - + - - - + + + - + - - - - + + + + @@ -185429,55 +184664,55 @@ - + - + - + - + - + - + - + - + - + - + - - + + - + - + - - + + - + @@ -185494,28 +184729,28 @@ - - + + - + - + - + - + - + @@ -185551,28 +184786,28 @@ - + - + - + - + - + - + - + - + @@ -185581,7 +184816,7 @@ - + @@ -185599,16 +184834,16 @@ - + - + - + - + @@ -185659,7 +184894,7 @@ - + @@ -185686,16 +184921,16 @@ - + - + - + - + @@ -185704,22 +184939,22 @@ - + - + - + - + - + - + @@ -185728,37 +184963,37 @@ - + - + - + - + - + - + - + - + - + @@ -185767,10 +185002,10 @@ - + - + @@ -185782,16 +185017,16 @@ - + - + - + - + @@ -185803,37 +185038,37 @@ - + - + - + - + - + - + - + - + - + @@ -185842,25 +185077,25 @@ - + - + - + - + - + - + - + @@ -185869,18 +185104,18 @@ - + - + - + - + @@ -185919,13 +185154,13 @@ - + - + @@ -185940,13 +185175,13 @@ - + - + - + @@ -185961,16 +185196,16 @@ - + - + - + @@ -185979,30 +185214,30 @@ - + - + - + - + - + - + - + - + - + @@ -186011,10 +185246,10 @@ - + - + @@ -186023,42 +185258,42 @@ - + - + - + - + - + - + - + - + - + - + @@ -186067,62 +185302,62 @@ - + - + - - + - - + + + - + - - + + - - + + - + - - - + + + - - - + + + - + - - - + + + @@ -186136,7 +185371,7 @@ - + @@ -186144,10 +185379,10 @@ - - + + - + @@ -186170,17 +185405,17 @@ - + - + - - + + - + @@ -186206,7 +185441,7 @@ - + @@ -186215,37 +185450,37 @@ - + - + - + - + - + - + - + - + - + @@ -186263,93 +185498,93 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -186358,55 +185593,55 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -186427,7 +185662,7 @@ - + @@ -186610,10 +185845,10 @@ - + - + @@ -186622,7 +185857,7 @@ - + @@ -186631,10 +185866,10 @@ - + - + @@ -186667,25 +185902,25 @@ - + - + - + - + @@ -186694,10 +185929,10 @@ - + - + @@ -186720,187 +185955,110 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -186918,31 +186076,31 @@ - + - + - + - + - + - + - + - + - + @@ -186951,38 +186109,27 @@ - + - + - + - + - - - - - - - - - - - - + - + @@ -187000,112 +186147,112 @@ - + - + - + - - - - - + + + + + - - + + - - + + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - + + + + @@ -187131,47 +186278,47 @@ - + - - - - - - - + + + + + + + - + - + - - - + + + - - + + - + - + - + - + @@ -187179,57 +186326,57 @@ - + - + - + - + - - + + - + - + - + - + - - + + - + - + - + - + - - - + + + - + @@ -187237,114 +186384,114 @@ - + - + - - - + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - + + + @@ -187355,13 +186502,13 @@ - + - + - + @@ -187370,27 +186517,27 @@ - + - + - + - + - + - + - + - + @@ -187423,76 +186570,76 @@ - + - + - + - - + + - - + + - + - + - - + + - - + + - - + + - + - - + + - + - + - + - + - + @@ -187519,33 +186666,33 @@ - + - + - + - + - + - + - + - + - + @@ -187574,15 +186721,15 @@ - + - + - + - + @@ -187591,10 +186738,10 @@ - + - + @@ -187606,7 +186753,7 @@ - + @@ -187620,7 +186767,7 @@ - + @@ -187632,7 +186779,7 @@ - + @@ -187646,10 +186793,10 @@ - + - + @@ -187657,17 +186804,17 @@ - + - + - - - - - + + + + + @@ -187693,16 +186840,16 @@ - - + + - - + + @@ -187740,25 +186887,25 @@ - + - - + + - - + + - + - + - + - + @@ -187767,7 +186914,7 @@ - + @@ -187797,25 +186944,25 @@ - + - + - + - + @@ -187827,22 +186974,22 @@ - + - + - + - + - + - + @@ -187851,22 +186998,22 @@ - + - + - + - + - + @@ -187877,10 +187024,10 @@ - + - + @@ -187889,46 +187036,46 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -187982,13 +187129,13 @@ - + - + - + @@ -188018,22 +187165,22 @@ - + - + - + - + - + @@ -188042,7 +187189,7 @@ - + @@ -188054,7 +187201,7 @@ - + @@ -188064,15 +187211,15 @@ - - - - + + + + - + - + @@ -188111,13 +187258,13 @@ - + - + - + @@ -188132,13 +187279,13 @@ - + - + - - + + @@ -188146,7 +187293,7 @@ - + @@ -188161,13 +187308,13 @@ - + - + - + @@ -188182,27 +187329,27 @@ - + - + - + - + - + - + - + - + @@ -188210,14 +187357,14 @@ - + - - + + @@ -188228,11 +187375,11 @@ - + - - + + @@ -188246,7 +187393,7 @@ - + @@ -188255,11 +187402,11 @@ - + - - + + @@ -188273,25 +187420,25 @@ - + - + - + - + - - + + - - + + @@ -188305,11 +187452,11 @@ - + - - + + @@ -188320,32 +187467,32 @@ - - - + + + - + - + - + - + - + - + - + @@ -188353,7 +187500,7 @@ - + @@ -188372,16 +187519,16 @@ - - + + - - + + - + @@ -188389,35 +187536,35 @@ - + - - + + - + - - + + - + - - + + - - - + + + - + @@ -188425,7 +187572,7 @@ - + @@ -188439,54 +187586,54 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -188498,12 +187645,12 @@ - - - - - - + + + + + + @@ -188526,13 +187673,13 @@ - + - + - + @@ -188550,10 +187697,10 @@ - + - + @@ -188568,10 +187715,10 @@ - + - + @@ -188589,18 +187736,18 @@ - + - + - + - + @@ -188612,11 +187759,11 @@ - - - - - + + + + + @@ -188631,17 +187778,17 @@ - - + + - - + + - + - + @@ -188662,7 +187809,7 @@ - + @@ -188686,10 +187833,10 @@ - + - + @@ -188731,7 +187878,7 @@ - + @@ -188785,7 +187932,7 @@ - + @@ -188803,7 +187950,7 @@ - + @@ -188815,19 +187962,19 @@ - + - + - + - + - + @@ -188836,12 +187983,12 @@ - + - + - + @@ -188850,34 +187997,34 @@ - + - + - + - + - + - + - + - + - + @@ -188913,28 +188060,28 @@ - + - + - + - + - + - + - + - + @@ -188943,7 +188090,7 @@ - + @@ -188961,16 +188108,16 @@ - + - + - + - + @@ -189021,7 +188168,7 @@ - + @@ -189048,16 +188195,16 @@ - + - + - + - + @@ -189066,22 +188213,22 @@ - + - + - + - + - + - + @@ -189090,37 +188237,37 @@ - + - + - + - + - + - + - + - + - + @@ -189129,10 +188276,10 @@ - + - + @@ -189144,16 +188291,16 @@ - + - + - + - + @@ -189165,37 +188312,37 @@ - + - + - + - + - + - + - + - + - + @@ -189204,25 +188351,25 @@ - + - + - + - + - + - + - + @@ -189231,14 +188378,14 @@ - - - - - - - - + + + + + + + + @@ -189261,153 +188408,153 @@ - + - + - + - - + + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - - + + - - + + - - + + - + - + - - + + - + - + - + - - - + + + - + - + - - + + - + - + - + - + @@ -189417,7 +188564,7 @@ - + @@ -189427,7 +188574,7 @@ - + @@ -189437,7 +188584,7 @@ - + @@ -189447,7 +188594,7 @@ - + @@ -189456,77 +188603,77 @@ - - + + - - + + - - - + + + - - - + + + - - - - - - - - - - - - - - - - - - - - - + + + + + + + - - + + + + + + + + + + + + + + + + - + - + - + - + - + - + @@ -189562,28 +188709,28 @@ - + - + - + - + - + - + - + - + @@ -189592,7 +188739,7 @@ - + @@ -189610,16 +188757,16 @@ - + - + - + - + @@ -189670,7 +188817,7 @@ - + @@ -189697,16 +188844,16 @@ - + - + - + - + @@ -189715,22 +188862,22 @@ - + - + - + - + - + - + @@ -189739,37 +188886,37 @@ - + - + - + - + - + - + - + - + - + @@ -189778,10 +188925,10 @@ - + - + @@ -189793,16 +188940,16 @@ - + - + - + - + @@ -189814,37 +188961,37 @@ - + - + - + - + - + - + - + - + - + @@ -189853,25 +189000,25 @@ - + - + - + - + - + - + - + @@ -189880,302 +189027,73 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - - - - - - - - - - - - + - + - + - + - + - - - + + + - - + + - + - - - - - + - - + + - - - - - + + + + + - - - - - + + + + + - + - + - + - + @@ -190193,59 +189111,59 @@ - + - - + + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -190260,12 +189178,12 @@ - - - - - - + + + + + + @@ -190273,195 +189191,195 @@ - + - + - + - + - + - + - + - - + + - + - - + + - + - - + + - + - - + + - + - + - + - + - + - + - + - - + + - - + + - - - + + + - - - + + + - - + + - - + + - + - + - + - - + + - + - + - - - + + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -190473,34 +189391,34 @@ - + - + - + - + - + - + - + - + - + @@ -190545,43 +189463,43 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -190592,169 +189510,169 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - - - - - + + + + + - + @@ -190763,52 +189681,52 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -190820,40 +189738,40 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -190861,45 +189779,45 @@ - + - + - + - + - + - + - + - + - + - + - + - - - - + + + + @@ -190916,25 +189834,25 @@ - - - - - - + + + + + + - + - + - - - - - - + + + + + + @@ -190942,13 +189860,13 @@ - + - + @@ -190974,22 +189892,22 @@ - - - - - - - - - - + + + + + + + + + + - + @@ -191000,55 +189918,55 @@ - + - + - + - - + + - - - + + + - - + + - + - - + + - - + + - + - - + + @@ -191059,389 +189977,422 @@ - - + + - - + + - - + + - - + + - - + + - - + + - + - + - + - + - - + + - - + + - - + + - + - - + + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - + + + - - + + - - - + + + - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + + - - - - - - - - - - - - + + - - + + + + + + + + + + + + - + - + - + - + - - + + - - + + - + - - + + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + @@ -191453,7 +190404,7 @@ - + @@ -191462,7 +190413,7 @@ - + @@ -191470,7 +190421,7 @@ - + @@ -191481,7 +190432,7 @@ - + @@ -191490,38 +190441,38 @@ - + - + - - + + - - + + - + - + - + - + @@ -191529,14 +190480,14 @@ - + - + - + @@ -191544,83 +190495,83 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -191637,8 +190588,8 @@ - - + + @@ -191649,11 +190600,11 @@ - + - - + + @@ -191670,8 +190621,8 @@ - - + + @@ -191685,8 +190636,8 @@ - - + + @@ -191700,11 +190651,11 @@ - + - - + + @@ -191727,8 +190678,8 @@ - - + + @@ -191742,20 +190693,20 @@ - + - + - + - - + + @@ -191769,11 +190720,11 @@ - + - - + + @@ -191784,14 +190735,14 @@ - + - + - - + + @@ -191805,11 +190756,11 @@ - + - - + + @@ -191820,11 +190771,11 @@ - + - - + + @@ -191835,14 +190786,14 @@ - + - - + + @@ -191853,10 +190804,10 @@ - + - + @@ -191865,14 +190816,14 @@ - + - - + + @@ -191883,76 +190834,76 @@ - + - + - - + + - - - + + + - + - - - + + + - + - - - + + + - + - + - + - + - + - + - + - + - + - + - + - + @@ -191967,500 +190918,189 @@ - + - + - + - - + + - - + + - - + + - - - + + + - + - + - + - + - + - + - - - - + + + + - - + + - + - - + + - + - + - + - + - + - + - + - + - + - - + + - - - + + + - - + + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + + - - + + - + - + - + - + - + - + - + - + @@ -192472,121 +191112,121 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - + + + - - + + - + - + - - + + - + - + - - + + - - + + - + - + - + - + - + - + - - + + - + - + - + @@ -192596,13 +191236,13 @@ - - + + - + @@ -192610,7 +191250,7 @@ - + @@ -192623,7 +191263,7 @@ - + @@ -192633,39 +191273,39 @@ - + - + - + - + - + - + - + - + @@ -192673,18 +191313,18 @@ - - - + + + - + - + - + @@ -192692,127 +191332,127 @@ - - - + + + - + - - + + - + - + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - + + + - + - + - + - + @@ -192827,7 +191467,7 @@ - + @@ -192851,12 +191491,12 @@ - + - - - + + + @@ -192864,39 +191504,39 @@ - + - + - + - - - - + + + + - + - + - + - + - + - + @@ -192905,7 +191545,7 @@ - + @@ -192914,13 +191554,13 @@ - + - + @@ -192938,36 +191578,36 @@ - + - + - + - + - + - + - + - + - + @@ -192982,7 +191622,7 @@ - + @@ -193036,94 +191676,94 @@ - - - + + + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - + + + + + + - + - - - + + + - + - + - + - + - + - + - + - + - + - + - + @@ -193132,12 +191772,12 @@ - - - - - - + + + + + + @@ -193145,13 +191785,13 @@ - + - + @@ -193178,54 +191818,54 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - + + + + + + + @@ -193233,10 +191873,10 @@ - + - + @@ -193260,7 +191900,7 @@ - + @@ -193278,15 +191918,15 @@ - - - - - - - - - + + + + + + + + + @@ -193306,13 +191946,13 @@ - - - - - - - + + + + + + + @@ -193326,65 +191966,65 @@ - - + + - + - + - + - + - + - + - + - + - + - - - - - - - + + + + + + + - - + + - + - + - + - + @@ -193396,355 +192036,355 @@ - + - + - + - - - - - - - - - - - - + + + + + + + + + + + + - + - + - + - + - + - + - + - + - + - - - - - - - - + + + + + + + + - - - - - + + + + + - + - - + + - - + + - - + + - - - + + + - - - + + + - - + + - - - + + + - - + + - - - + + + - - - + + + - - + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - + + - - + + - - + + - - - + + + - - - + + + + + + + + + - - - - + + - - - + + - - - - - + + - + - - + + - - + + - - - + + + - - + + - - + + - - - + + + - - + + - - + + - - + + - - - + + + - - - - + + + + - - - + + + - + - + - - - + + + - - + + - + - - + + - + - - + + - - + + - + - - - + + + - + - - + + - - + + - + - + - + - + - + - + @@ -193755,142 +192395,142 @@ - + - + - + - + - - + + - - + + - + - - + + - + - + - + - + - - + + - + - + - - - - + + + + - + - + - + - + - + - + - + - + - - + + - - + + - - + + - + - + - + - + - + - + - + - + - + @@ -193900,147 +192540,147 @@ - + - + - + - + - + - + - + - + - + - + - + - - + + - - + + - - + + - - + + - - + + - + - + - - - - + + + + - - + + - + - - + + - - - + + + - + - - + + - + - + - + - + - + - + - + @@ -194052,21 +192692,21 @@ - + - + - + - + - + - + @@ -194075,10 +192715,10 @@ - + - + @@ -194087,22 +192727,22 @@ - + - + - + - + - + @@ -194153,7 +192793,7 @@ - + @@ -194171,31 +192811,31 @@ - + - + - + - + - + - + - + - + @@ -194203,15 +192843,15 @@ - + - + - + @@ -194220,50 +192860,50 @@ - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + @@ -194273,24 +192913,24 @@ - - + + - - - + + + - - + + - + - + @@ -194299,22 +192939,22 @@ - + - + - + - + - + - + @@ -194326,10 +192966,10 @@ - + - + @@ -194341,37 +192981,37 @@ - + - + - + - + - + - + - + - + - + @@ -194383,19 +193023,19 @@ - + - + - + - + @@ -194404,13 +193044,13 @@ - + - + @@ -194422,25 +193062,25 @@ - + - + - + - + - + @@ -194461,19 +193101,18 @@ - - + - + - + - + @@ -194494,7 +193133,7 @@ - + @@ -194503,7 +193142,7 @@ - + @@ -194512,13 +193151,13 @@ - + - + - + @@ -194533,9 +193172,9 @@ - + - + @@ -194544,25 +193183,25 @@ - + - + - + - + - + - + @@ -194571,22 +193210,22 @@ - + - + - + - + - + - + @@ -194601,13 +193240,13 @@ - + - + @@ -194616,13 +193255,13 @@ - + - + @@ -194655,10 +193294,10 @@ - + - + @@ -194670,797 +193309,45 @@ - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + - + - + - + - + - + - + - + - + @@ -195469,13 +193356,13 @@ - + - + @@ -195496,13 +193383,13 @@ - + - + - + @@ -195532,31 +193419,31 @@ - + - + - + - + - + - + - + @@ -195568,7 +193455,7 @@ - + @@ -195577,7 +193464,7 @@ - + @@ -195592,37 +193479,37 @@ - + - + - + - + - + - + - + - + @@ -195631,27 +193518,27 @@ - + - + - + - + - + - + - + @@ -195663,25 +193550,25 @@ - + - + - + - + - + - + @@ -195702,7 +193589,7 @@ - + @@ -195714,50 +193601,42 @@ - + - - - - - - - - - - + + - + - + - + - + - + - + - + - + @@ -195769,30 +193648,30 @@ - + - + - + - + - - + + - - + + - + - + @@ -195801,47 +193680,47 @@ - - + + - - + + - - - - + + + + - + - + - - + + - - + + - - + + - - + + - - + + @@ -195850,26 +193729,26 @@ - + - + - + - + - - + + - + @@ -195877,69 +193756,69 @@ - - + + - + - + - + - - + + - - + + - - + + - + - + - + - + - + - + - + - + - + - + @@ -195951,22 +193830,22 @@ - + - + - + - + @@ -195980,118 +193859,118 @@ - - - - - + + + + + - + - + - + - + - + - + - + - + - + - - - - - + + + + + - + - + - - + + - + - + - - + + - + - - + + - + - + - + - - + + - - - + + + - - + + - - + + - + - - + + @@ -196100,21 +193979,21 @@ - + - + - + - + @@ -196123,67 +194002,67 @@ - + - - + + - + - + - + - + - - + + - - + + - + - + - + - + - - + + @@ -196194,37 +194073,37 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -196239,55 +194118,55 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -196302,7 +194181,7 @@ - + @@ -196317,13 +194196,13 @@ - + - + @@ -196337,8 +194216,8 @@ - - + + @@ -196352,38 +194231,38 @@ - + - - - - - - + + + + + + - + - + - + - + - + - + - + @@ -196392,29 +194271,29 @@ - + - + - + - + - + - + - + - + - + @@ -196422,22 +194301,22 @@ - + - + - + - + - + @@ -196445,7 +194324,7 @@ - + @@ -196453,32 +194332,32 @@ - + - + - + - + - + - + - + - + - + - + @@ -196492,18 +194371,18 @@ - + - + - + - + - + @@ -196511,26 +194390,26 @@ - + - + - + - + - - + + @@ -196538,24 +194417,24 @@ - + - + - + - - + + - + @@ -196563,19 +194442,19 @@ - - - - - - - + + + + + + + - - + + - + @@ -196595,12 +194474,12 @@ - + - + - + @@ -196610,42 +194489,42 @@ - - + + - - + + - - + + - + - + - + - + - + - + - - - - - - + + + + + + @@ -196656,10 +194535,10 @@ - + - + @@ -196668,30 +194547,30 @@ - + - + - + - + - + - + - + - + @@ -196703,7 +194582,7 @@ - + @@ -196712,9 +194591,9 @@ - - - + + + @@ -196722,18 +194601,18 @@ - + - - - - - - - + + + + + + + - + @@ -196748,82 +194627,82 @@ - + - + - + - + - + - + - + - + - + - + - + - - + + - - + + - - + + - - - - - + + + + + - + - + - + - + - + @@ -196832,101 +194711,101 @@ - + - + - + - - + + - + - - + + - - + + - - + + - - + + - - + + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + @@ -196936,101 +194815,101 @@ - + - - + + - - - - + + + + - - - - + + + + - - - + + + - - - + + + - - + + - - + + - - + + - - + + - - - - + + + + - - + + - - - + + + - - + + - - + + - - + + - - + + - - - + + + - - + + @@ -197038,12 +194917,12 @@ - + - + - + @@ -197052,135 +194931,135 @@ - + - + - + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - - - + + + - + - + - - + + - + - + - + - + - + - - + + - + @@ -197197,31 +195076,31 @@ - - + + - + - - + + - + - + - + - + @@ -197230,102 +195109,102 @@ - + - + - - + + - - + + - + - - - + + + - - + + - - + + - - + + - - + + - - + + - + - + - + - + - + - + - + - + - + - + @@ -197337,10 +195216,10 @@ - + - + @@ -197352,10 +195231,10 @@ - + - + @@ -197364,7 +195243,7 @@ - + @@ -197379,25 +195258,45 @@ - + - + - + - + - + - + + + + + + + + + + + + + + + + + + + + + @@ -197405,19 +195304,19 @@ - + - + - - + + - + @@ -197426,16 +195325,16 @@ - + - + - + @@ -197447,10 +195346,10 @@ - + - + @@ -197468,10 +195367,10 @@ - + - + @@ -197488,25 +195387,25 @@ - - - + + + - - - - + + + + - - + + - + @@ -197516,106 +195415,194 @@ - - + + - - + + - + - - - - - - - - + + + - + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - + - + + - - + + - - - + + + - + - + - + - - + + - + - + - + - - + + - + - + - + - + - + @@ -197635,51 +195622,51 @@ - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + @@ -197688,64 +195675,117 @@ - - - - + + + + - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - + - - + + - + - + - - + + - - + + - - + + - + @@ -197756,82 +195796,82 @@ - + - - + + - + - + - - - - - + + + + + - + - + - + - + - - + + - - - + + + - - + + - - - + + + - - - + + + - - + + - - + + - - - + + + - + @@ -197839,13 +195879,13 @@ - + - + - + @@ -197857,142 +195897,376 @@ - - + + - - + + - + - - + + - + - + - + - + - + - + - - - + + + - + - + - + - - + + - + - - + + - + - - + + - - - - - + + + + + - + - - + + - + - - + + - - + + - + - - - + + + - - - + + + - - + + - - + + - - + + - - - + + + - - - - - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -198007,10 +196281,10 @@ - + - + @@ -198019,73 +196293,73 @@ - + - - + + - - + + - - + + - - - + + + - + - + - - + + - + - + - + - + - + - + - + - + - + - + @@ -198097,7 +196371,7 @@ - + @@ -198121,19 +196395,19 @@ - + - + - + - + @@ -198142,21 +196416,21 @@ - + - + - + - + - + - + @@ -198165,45 +196439,45 @@ - + - - + + - + - + - + - + - + - + - + - + - - - - - + + + + + - + - + @@ -198211,32 +196485,32 @@ - + - + - + - + - + - + - + @@ -198257,13 +196531,13 @@ - + - + @@ -198272,15 +196546,15 @@ - + - + - + - + @@ -198289,78 +196563,78 @@ - + - + - + - + - + - - + + - - + + - + - + - + - - - - - + + + + + - + - + - + - + - + - + - + @@ -198369,21 +196643,21 @@ - + - + - + - + - - + + - + @@ -198395,26 +196669,26 @@ - - - - - - + + + + + + - + - - + + - + - + @@ -198423,50 +196697,50 @@ - - + + - + - + - - - + + + - + - + - + - + - + - - + + - + - + - + @@ -198481,18 +196755,18 @@ - + - - + + - + @@ -198502,35 +196776,35 @@ - - - - - - + + + + + + - + - - + + - + - + - - + + - + @@ -198538,32 +196812,32 @@ - + - - + + - - + + - - + + - + - - + + - + @@ -198574,10 +196848,10 @@ - + - + @@ -198586,46 +196860,46 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -198679,13 +196953,13 @@ - + - + - + @@ -198715,22 +196989,22 @@ - + - + - + - + - + @@ -198740,80 +197014,80 @@ - - + + - - + + - - - - + + + + - - - + + + - - + + - - + + - - + + - - - + + + - - + + - - + + - - + + - - + + - - + + - + - + - + - + @@ -198834,13 +197108,13 @@ - + - + @@ -198849,13 +197123,13 @@ - + - + - + @@ -198863,146 +197137,146 @@ - + - + - + - + - + - + - + - + - - + + - + - - + + - - + + - - + + - - + + - - + + - + - + - + - + - + - + - - + + - - - - - - - + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -199011,40 +197285,40 @@ - + - + - + - + - + - + - + - - - + + + - - + + - + - + @@ -199053,61 +197327,61 @@ - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + @@ -199119,86 +197393,86 @@ - + - + - + - + - + - + - - - - - + + + + + - - + + - + - + - + - - + + - + - + - + - - + + - - + + - + - + - + - + - + - + - + @@ -199210,7 +197484,7 @@ - + @@ -199234,19 +197508,19 @@ - + - + - + - + @@ -199255,21 +197529,21 @@ - + - + - + - + - + - + @@ -199278,178 +197552,98 @@ - + - - + + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -199473,117 +197667,61 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -199592,38 +197730,38 @@ - + - + - + - + - + - - + + - + - + - + @@ -199632,19 +197770,19 @@ - + - + - + - + - + @@ -199656,98 +197794,98 @@ - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - + + + @@ -199764,28 +197902,28 @@ - - - - - - - - + + + + + + + + - + - + - + - + @@ -199803,10 +197941,10 @@ - - - - + + + + @@ -199814,8 +197952,8 @@ - - + + @@ -199826,49 +197964,49 @@ - + - - - - - + + + + + - + - + - + - + - + - + - + - + - + - + - + - + @@ -199879,15 +198017,15 @@ - + - - - - - - + + + + + + @@ -199910,22 +198048,22 @@ - + - - + + - - - + + + - + @@ -199946,26 +198084,26 @@ - + - + - + - - - - - - + + + + + + - + @@ -199983,18 +198121,18 @@ - + - - - - - - - - - + + + + + + + + + @@ -200002,97 +198140,97 @@ - - - - - - + + + + + + - + - + - + - + - - - - + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - + + + + + + + @@ -200100,29 +198238,29 @@ - - - + + + - + - + - - - + + + - + - + - + @@ -200130,18 +198268,18 @@ - + - + - + - + - + @@ -200191,7 +198329,7 @@ - + @@ -200200,30 +198338,30 @@ - + - - + + - - + + - - - + + + - + - + @@ -200233,43 +198371,43 @@ - - - - - - - - - + + + + + + + + + - + - + - + - + - + - + - + - + - + @@ -200278,9 +198416,9 @@ - - - + + + @@ -200294,44 +198432,44 @@ - + - - + + - - - - - - + + + + + + - + - + - - + + - + - - - + + + @@ -200345,71 +198483,71 @@ - + - + - + - - + + - - - + + + - + - + - - - - - + + + + + - + - + - + - + - + - + - - - + + + - + @@ -200451,83 +198589,83 @@ - + - - - - - + + + + + - + - + - - - + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -200553,20 +198691,20 @@ - + - - + + - + - + - + @@ -200575,9 +198713,9 @@ - - - + + + @@ -200591,12 +198729,12 @@ - + - - - + + + @@ -200622,12 +198760,12 @@ - + - - - + + + @@ -200644,18 +198782,18 @@ - + - + - - - + + + @@ -200663,15 +198801,15 @@ - + - + - - - + + + @@ -200685,15 +198823,15 @@ - + - + - - - + + + @@ -200704,22 +198842,22 @@ - + - + - - - + + + - + - + - + @@ -200730,21 +198868,21 @@ - + - + - + - + - + - + @@ -200770,17 +198908,17 @@ - + - - + + - - - + + + @@ -200788,26 +198926,26 @@ - + - + - - - - + + + + - + - + - + @@ -200816,74 +198954,74 @@ - + - + - - - - - - - + + + + + + + - + - + - + - + - + - - + + - + - + - - - - - + + + + + - + - + - + - + - + - + @@ -200892,28 +199030,28 @@ - + - + - + - + - + - + @@ -200921,28 +199059,28 @@ - + - + - - - + + + - + - + - + - + @@ -200957,26 +199095,26 @@ - + - + - + - + - - - - - - - + + + + + + + - + @@ -200985,25 +199123,25 @@ - - - - - + + + + + - + - + - - - - - + + + + + @@ -201013,387 +199151,387 @@ - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -201405,12 +199543,12 @@ - + - - - + + + @@ -201421,54 +199559,54 @@ - + - + - - - + + + - + - + - + - + - + - + - + - + - + - + - + - + @@ -201505,7 +199643,7 @@ - + @@ -201514,7 +199652,7 @@ - + @@ -201522,9 +199660,9 @@ - + - + @@ -201549,7 +199687,7 @@ - + @@ -201558,7 +199696,7 @@ - + @@ -201567,10 +199705,10 @@ - + - + @@ -201578,20 +199716,20 @@ - + - - + + - + - + @@ -201600,13 +199738,13 @@ - - + + - + - + @@ -201615,7 +199753,7 @@ - + @@ -201627,16 +199765,16 @@ - + - + - + - - + + @@ -201644,15 +199782,15 @@ - + - - + + - + @@ -201661,13 +199799,13 @@ - - + + - - - + + + @@ -201681,17 +199819,17 @@ - + - - + + - - - + + + @@ -201708,10 +199846,10 @@ - + - + @@ -201720,7 +199858,7 @@ - + @@ -201729,10 +199867,10 @@ - + - + @@ -201752,10 +199890,10 @@ - + - + @@ -201763,13 +199901,13 @@ - + - + - + @@ -201777,16 +199915,16 @@ - + - + - + @@ -201794,26 +199932,26 @@ - + - - + + - - + + - + - - - + + + @@ -201827,15 +199965,15 @@ - + - + - - - + + + @@ -201846,19 +199984,19 @@ - + - + - - - - + + + + @@ -201869,10 +200007,10 @@ - + - + @@ -201898,12 +200036,12 @@ - - - - - - + + + + + + @@ -201921,15 +200059,15 @@ - - - - + + + + - + @@ -201941,7 +200079,7 @@ - + @@ -201950,18 +200088,18 @@ - + - - - - + + + + - + @@ -201973,18 +200111,18 @@ - + - + - - - + + + @@ -201992,30 +200130,30 @@ - + - + - + - + - + - + - - - + + + @@ -202023,7 +200161,7 @@ - + @@ -202050,34 +200188,34 @@ - + - + - - - + + + - + - - - + + + - + - + @@ -202086,21 +200224,21 @@ - + - + - + - + - + @@ -202108,43 +200246,43 @@ - + - + - + - + - + - + - + - + - - - - + + + + - + - + @@ -202158,28 +200296,28 @@ - + - + - + - - - + + + - + @@ -202188,20 +200326,20 @@ - + - - - - - - + + + + + + - + @@ -202210,18 +200348,18 @@ - + - - - - - - - - - + + + + + + + + + @@ -202232,15 +200370,15 @@ - + - + - - - + + + @@ -202251,29 +200389,29 @@ - + - + - - + + - - - - - - + + + + + + @@ -202281,13 +200419,13 @@ - + - + - + @@ -202301,17 +200439,17 @@ - + - - + + - - - + + + @@ -202319,22 +200457,22 @@ - + - + - + - + - + - - - + + + @@ -202342,51 +200480,51 @@ - + - + - + - + - + - + - + - + - + - + - - - + + + - + - + - + - + @@ -202394,21 +200532,21 @@ - + - + - + - + - + - + @@ -202416,7 +200554,7 @@ - + @@ -202425,10 +200563,10 @@ - + - + @@ -202436,7 +200574,7 @@ - + @@ -202445,19 +200583,19 @@ - + - - - - - - - - - - + + + + + + + + + + @@ -202480,13 +200618,13 @@ - + - - - - + + + + @@ -202497,21 +200635,21 @@ - + - + - + - + - + - + @@ -202519,7 +200657,7 @@ - + @@ -202539,9 +200677,9 @@ - - - + + + @@ -202558,705 +200696,705 @@ - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - + + + + + + + + + + + + - + - + - + - - + + - + - + - - - + + + - - + + - - + + - - + + - - + + - - + + - + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + + + - - - + + + - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + - - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - - - + + + + - - - + + + + - - - + + + + - - - + + + + - - - + + + + - - - - + + + + - - - + + + + - - - + + + + - - - + + + + - - - - - - - - - - - - + + + - - - + + + + - - - + + + + - - - + + + + - - - + + + + - - - + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + - - - - + + + + - - - - + + + - - - - + + - - - - + + + - - - - + + + - - - + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + + - - - + + + - - - - + + + + - - + + - - + + - - + + - - + + - + @@ -203264,9 +201402,9 @@ - + - + @@ -203275,49 +201413,49 @@ - - + + - + - - + + - + - + - + - + - + - + - + - + - + - + @@ -203327,20 +201465,21 @@ + - + - + - + - + @@ -203349,96 +201488,30 @@ - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + @@ -203447,13 +201520,13 @@ - + - + - + @@ -203474,21 +201547,21 @@ - + - + - + - + - + @@ -203497,38 +201570,38 @@ - + - + - - + + - + - + - + - + - + - + - + - + @@ -203539,10 +201612,10 @@ - + - + @@ -203584,10 +201657,10 @@ - + - + @@ -203596,7 +201669,7 @@ - + @@ -203614,13 +201687,13 @@ - + - + @@ -203629,85 +201702,85 @@ - + - + - + - + - - - - + + + + - + - + - + - - - - + + + + - + - + - + - + - - - + + + - + - + - + - + - + - + - + - + - + - - + + @@ -203721,16 +201794,16 @@ - + - + - + @@ -203750,12 +201823,12 @@ - + - + @@ -203790,14 +201863,14 @@ - - + + - + - - + + @@ -203811,20 +201884,20 @@ - + - + - + - + - - + + @@ -203853,14 +201926,14 @@ - - - - - - - - + + + + + + + + @@ -203876,7 +201949,7 @@ - + @@ -203884,62 +201957,151 @@ - - + + - + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + @@ -203963,34 +202125,34 @@ - + - + - + - + - + - - + + - + - + - + - + @@ -204005,93 +202167,70 @@ - - - - - - - - - - - - - - - - - - - - - - - - - + + - + - - + + - + - - + + - + - - + + - - + + - - + + - - + + - - + + - + - - + + - + - + - + - + - + @@ -204109,51 +202248,51 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -204177,161 +202316,170 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + - - + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + - + - + @@ -204349,51 +202497,51 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -204417,30 +202565,30 @@ - + - + - + - + - + - + - + - + @@ -204461,13 +202609,13 @@ - + - + @@ -204476,15 +202624,15 @@ - + - + - + - + @@ -204493,43 +202641,30 @@ - - - + + + - + - + - + - - - - - - - - + + + - - - - - - - - - + @@ -204538,9 +202673,9 @@ - + - + @@ -204552,29 +202687,29 @@ - - - - + + + + - + - + - + - + - + - + - + @@ -204582,7 +202717,7 @@ - + @@ -204591,45 +202726,45 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -204643,43 +202778,43 @@ - + - + - + - + - + - + - + - + - + - + @@ -204690,44 +202825,44 @@ - + - - + + - - + + - - + + - - + + - + - + - + - + - + - + - + @@ -204741,13 +202876,13 @@ - + - + @@ -204759,139 +202894,139 @@ - + - - - + + + - + - + - + - - + + - - - - + + + + - - + + - + - + - - + + - - + + - - - + + + - - + + - - - + + + - - + + - - - + + + - - - + + + - - + + - + - - + + - + - + - + - + - - - - + + + + - - + + - + - + - + - + - + - + @@ -204900,7 +203035,7 @@ - + @@ -204915,7 +203050,7 @@ - + @@ -204927,109 +203062,109 @@ - + - + - - + + - - + + - + - - + + - + - - + + - + - - + + - - + + - - + + - - + + - + - - - + + + - + - + - + - + - + - + - + - + - + @@ -205038,19 +203173,19 @@ - + - + - + - + - + @@ -205062,75 +203197,75 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -205154,34 +203289,34 @@ - + - + - + - + - + - - + + - + - + - + - + @@ -205196,85 +203331,85 @@ - - + + - + - + - + - - + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - + + - + - - - + + + - + - + - + - + - + @@ -205292,53 +203427,53 @@ - + - - - - + + + + - - - + + + - - + + - + - + - - + + - - + + - - + + - + @@ -205346,51 +203481,51 @@ - - + + - - + + - + - - + + - - - + + + - - - + + + - - + + - + - + - + @@ -205399,19 +203534,19 @@ - + - + - + - + - + @@ -205423,75 +203558,75 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -205515,34 +203650,34 @@ - + - + - + - + - + - - + + - + - + - + - + @@ -205557,45 +203692,45 @@ - - + + - - - - + + + + - + - - + + - + - - + + - - + + - + - + @@ -205610,220 +203745,220 @@ - + - + - + - + - + - + - + - - - - - - - + + + + + + + - + - + - + - + - + - + - + - + - + - + - - + + - + - - + + - - + + - - + + - - + + - + - - + + - - + + - + - + - - + + - - + + - + - + - + - + - + - + - + - + - - - - + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -205847,24 +203982,117 @@ - + - + - + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -205873,9 +204101,9 @@ - + - + @@ -205887,8 +204115,8 @@ - - + + @@ -205896,7 +204124,7 @@ - + @@ -205929,19 +204157,19 @@ - + - + - + - + @@ -205959,7 +204187,7 @@ - + @@ -205968,10 +204196,10 @@ - + - + @@ -205992,7 +204220,7 @@ - + @@ -206022,56 +204250,56 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - + + + + - + @@ -206089,13 +204317,13 @@ - + - + - + @@ -206107,7 +204335,7 @@ - + @@ -206116,18 +204344,18 @@ - + - + - + - + @@ -206142,22 +204370,22 @@ - + - - + + - + - + @@ -206169,7 +204397,7 @@ - + @@ -206179,12 +204407,12 @@ - + - + @@ -206199,24 +204427,24 @@ - + - + - + - + @@ -206231,7 +204459,7 @@ - + @@ -206240,20 +204468,20 @@ - + - + - + - + - - + + @@ -206265,69 +204493,69 @@ - + - - - - - - - + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - + + + + + + @@ -206335,10 +204563,10 @@ - + - + @@ -206347,31 +204575,31 @@ - + - + - + - + - + - + @@ -206380,79 +204608,79 @@ - + - - - - + + + + - + - + - + - + - + - - - - - - + + + + + + - + - - + + - - - - - + + + + + - + - + - + - + - + - + - + - + @@ -206461,105 +204689,105 @@ - + - + - + - + - - - + + + - + - + - + - - + + - - - + + + - - + + - - + + - - - - - - + + + + + + - + - + - - + + - - + + - - + + - - - + + + - + - - + + - + - - + + - + - + - + @@ -206567,10 +204795,10 @@ - - + + - + @@ -206581,7 +204809,7 @@ - + @@ -206590,27 +204818,27 @@ - + - + - - + + - + - - - - - + + + + + - + @@ -206618,13 +204846,13 @@ - + - + - + @@ -206636,27 +204864,27 @@ - + - + - + - + - + - + @@ -206665,7 +204893,7 @@ - + @@ -206674,10 +204902,10 @@ - + - + @@ -206686,55 +204914,55 @@ - + - + - + - - + + - - + + - - - + + + - - - - - + + + + + - - + + - - + + - + - + - + @@ -206747,33 +204975,33 @@ - - + + - - - + + + - - - + + + - + - + - + - + @@ -206781,66 +205009,66 @@ - + - - + + - - - - - - + + + + + + - - - + + + - - - + + + - - + + - + - - + + - + - + - - + + - - + + @@ -206849,7 +205077,7 @@ - + @@ -206858,30 +205086,30 @@ - - + + - + - + - + - + - + - + - + @@ -206897,7 +205125,7 @@ - + @@ -206908,13 +205136,13 @@ - + - + @@ -206926,19 +205154,19 @@ - - + + - + - + - + - + @@ -206950,49 +205178,49 @@ - - + + - - + + - - - + + + - + - + - + - + - + - + - + @@ -207010,75 +205238,75 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -207087,7 +205315,7 @@ - + @@ -207102,7 +205330,7 @@ - + @@ -207115,8 +205343,8 @@ - - + + @@ -207188,9 +205416,9 @@ - - - + + + @@ -207198,36 +205426,36 @@ - - - - - - - - - - + + + + + + + + + + - + - + - + - + - + - + @@ -207269,13 +205497,13 @@ - + - + - + @@ -207284,7 +205512,7 @@ - + @@ -207293,81 +205521,81 @@ - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + @@ -207376,7 +205604,7 @@ - + @@ -207391,57 +205619,57 @@ - + - + - + - + - + - + - + - - - - - - - - - - - - + + + + + + + + + + + + - - - - + + + + - - - - - + + + + + @@ -207449,13 +205677,13 @@ - - - - - + + + + + - + @@ -207464,25 +205692,25 @@ - + - + - + - + - + - + @@ -207491,9 +205719,9 @@ - + - + @@ -207502,35 +205730,35 @@ - + - + - - - + + + - + - + - + - + - - - - + + + + @@ -207541,18 +205769,18 @@ - + - + - + - + @@ -207561,18 +205789,18 @@ - + - + - + - + @@ -207581,28 +205809,28 @@ - + - + - + - + - + - + - + - + @@ -207617,7 +205845,7 @@ - + @@ -207626,19 +205854,19 @@ - + - + - + - + @@ -207653,19 +205881,19 @@ - + - - - - - - + + + + + + @@ -207673,49 +205901,49 @@ - - - - - + + + + + - + - + - + - + - + - + - + - + - + - + - + @@ -207744,21 +205972,21 @@ - + - + - + - - + + - + @@ -207766,276 +205994,276 @@ - + - - + + - + - - + + - - + + - + - + - + - + - - - + + + - - - + + + - - + + - + - - + + - + - + - + - + - + - + - + - - + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - + - + - - - + + + - - + + - - - + + + - - - + + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - + + - - + + - + - - + + - - + + - - + + - + - - + + - + - - - + + + - - - + + + - - + + - - - + + + + + + + - - - - - + @@ -208045,13 +206273,13 @@ - - + + - + - + @@ -208059,87 +206287,87 @@ - - + + - - + + - + - + - + - + - + - - + + - + - - + + - - - + + + - - + + - + - + - + - + - + - + - + - + @@ -208157,16 +206385,16 @@ - + - + - + - + @@ -208178,48 +206406,48 @@ - + - - + + - + - + - + - + - + - + - + - + - + - + @@ -208228,95 +206456,90 @@ - + - - + + - - + + - + - + - + - + - + - + - - - - - - + + + + + + - + - - + + - - + + - + - - + + - - + + - - - - - - + - + - + - + - + - + - + - + @@ -208325,10 +206548,10 @@ - + - + @@ -208352,7 +206575,7 @@ - + @@ -208361,28 +206584,28 @@ - + - + - + - + - + - + - + @@ -208409,22 +206632,22 @@ - + - + - + - + @@ -208435,30 +206658,30 @@ - + - + - + - + - + - + - + - + @@ -208467,16 +206690,16 @@ - + - - - - - - - + + + + + + + @@ -208484,7 +206707,7 @@ - + @@ -208495,98 +206718,98 @@ - - + + - - + + - - + + - - + + - + - - + + - - + + - - - - + + + + - - + + - + - + - + - + - - - - + + + + - - - - + + + + - - - + + + - - + + - + - - - + + + - - + + - - + + @@ -208595,29 +206818,29 @@ - + - + - + - + - + - + - + - + @@ -208641,7 +206864,7 @@ - + @@ -208650,99 +206873,99 @@ - - - + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - + + + + + + - + - + @@ -208757,7 +206980,7 @@ - + @@ -208766,25 +206989,25 @@ - + - + - + - + - + @@ -208796,32 +207019,32 @@ - + - + - + - - - + + + - + - + - + - + @@ -208833,25 +207056,25 @@ - + - + - + - + - + - + @@ -208872,7 +207095,7 @@ - + @@ -208884,191 +207107,262 @@ - + - - + + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - - - - - - - - - - + + + + + + - + + + + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - + + + + + + + + + + + + + - - + + - - + + - - - + + + - - - - + + + + - - - + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - + + + - - + + - + - - + + - - + + - - + + - - + + - - + + - + - - + + - - - + + + - - - + + + - + - - - + + + - + - + - + @@ -209083,7 +207377,7 @@ - + @@ -209092,25 +207386,25 @@ - + - + - + - + - + @@ -209122,42 +207416,42 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -209166,13 +207460,13 @@ - + - + @@ -209193,13 +207487,13 @@ - + - + - + @@ -209229,31 +207523,31 @@ - + - + - + - + - + - + - + @@ -209265,7 +207559,7 @@ - + @@ -209274,7 +207568,7 @@ - + @@ -209289,37 +207583,37 @@ - + - + - + - + - + - + - + - + @@ -209328,41 +207622,112 @@ - + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - + + - + - + @@ -209382,13 +207747,13 @@ - + - + @@ -209397,37 +207762,37 @@ - + - + - + - + - + - + - + - + @@ -209445,40 +207810,40 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -209486,21 +207851,21 @@ - + - + - + - + - + - + @@ -209524,7 +207889,7 @@ - + @@ -209533,942 +207898,122 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - + + + - + + + + + + + + + + + + + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + @@ -210489,7 +208034,7 @@ - + @@ -210498,7 +208043,7 @@ - + @@ -210507,13 +208052,13 @@ - + - + - + @@ -210528,209 +208073,1133 @@ - + - - - - - - - - - - - - - - - - - - - + - - - - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + @@ -210745,10 +209214,10 @@ - + - + @@ -210757,10 +209226,10 @@ - + - + @@ -210768,7 +209237,7 @@ - + @@ -210780,10 +209249,10 @@ - + - + @@ -210807,139 +209276,139 @@ - + - + - - - - + + + + - + - - - + + + - + - - - + + + - - - + + + - - - + + + - - + + - + - + - + - + - + - + - - + + - - + + - + - + - - + + - - + + - + - + - - + + - + - - + + - - + + - - - + + + - + @@ -210968,25 +209437,25 @@ - + - + - + - + - + - + @@ -211000,15 +209469,15 @@ - - - - + + + + - + @@ -211026,7 +209495,7 @@ - + @@ -211038,25 +209507,25 @@ - + - + - + - + - + @@ -211065,10 +209534,10 @@ - + - + @@ -211080,307 +209549,307 @@ - + - + - + - + - + - - - - + + + + - + - + - + - + - + - + - + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - - - + + + - - - + + + - + - + - + - + - - + + - + - + - - + + - + - + - + - + - + - - + + - + - + - + - + - + - - - + + + - + - + - + - - + + - - + + - - + + - + - - + + - + - - + + - - + + - + - - + + - - + + - - + + - + - + - + - + - + - - + + - + - - + + - + - + - - + + @@ -211389,14 +209858,14 @@ - - + + - + @@ -211404,15 +209873,15 @@ - + - + - + - + @@ -211424,39 +209893,39 @@ - + - - + + - - + + - + - + - + - + - - - + + + @@ -211471,11 +209940,11 @@ - + - + @@ -211487,36 +209956,36 @@ - + - + - + - + - + - + - + @@ -211525,7 +209994,7 @@ - + @@ -211534,7 +210003,7 @@ - + @@ -211545,139 +210014,139 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - + + + + - + - + - + - - - - + + + + - + - + - - - - + + + + - + - + - - + + - + - - - + + + - - + + - - + + - - + + - + - + - + @@ -211686,10 +210155,10 @@ - + - + @@ -211713,7 +210182,7 @@ - + @@ -211722,28 +210191,28 @@ - + - + - + - + - + - + - + @@ -211770,53 +210239,53 @@ - + - + - + - - - + + + - + - - + + - + - + - + - + - + @@ -211828,16 +210297,16 @@ - + - + - + - + - + @@ -211858,50 +210327,50 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -211914,73 +210383,73 @@ - + - + - + - + - + - + - - + + - + - + - + - - + + - - + + - + - + - + - + - + @@ -212004,7 +210473,7 @@ - + @@ -212025,7 +210494,7 @@ - + @@ -212052,7 +210521,7 @@ - + @@ -212097,37 +210566,37 @@ - + - + - + - + - + - + - + - + @@ -212139,7 +210608,7 @@ - + @@ -212148,22 +210617,22 @@ - + - + - + - + - + @@ -212178,7 +210647,7 @@ - + @@ -212193,102 +210662,102 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + @@ -212297,7 +210766,7 @@ - + @@ -212305,7 +210774,7 @@ - + @@ -212323,13 +210792,13 @@ - + - + - + @@ -212355,10 +210824,10 @@ - + - + @@ -212367,19 +210836,19 @@ - + - + - - - - - - - + + + + + + + @@ -212414,17 +210883,17 @@ - - - - - - + + + + + + - + - + @@ -212466,58 +210935,58 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -212529,10 +210998,10 @@ - + - + @@ -212541,15 +211010,15 @@ - + - + - + @@ -212573,7 +211042,7 @@ - + @@ -212626,7 +211095,7 @@ - + @@ -212754,7 +211223,7 @@ - + @@ -212838,7 +211307,7 @@ - + @@ -212853,7 +211322,7 @@ - + @@ -212873,7 +211342,7 @@ - + @@ -212884,7 +211353,7 @@ - + @@ -212901,7 +211370,7 @@ - + @@ -212927,7 +211396,7 @@ - + @@ -212941,16 +211410,16 @@ - - + + - - + + - - - + + + @@ -212958,7 +211427,7 @@ - + @@ -212968,57 +211437,57 @@ - - + + - - - - - - - - - + + + + + + + + + - + - + - + - + - + - + - + - + - - - - - + + + + + - - + + @@ -213029,330 +211498,330 @@ - + - + - + - + - + - + - + - + - + - + - + - + - - - + + + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - + + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - - + + + - + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - - + + + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - + - + - + - + - + - + - + - + @@ -213394,58 +211863,58 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -213457,10 +211926,10 @@ - + - + @@ -213469,24 +211938,24 @@ - + - + - + - + - + - + @@ -213510,7 +211979,7 @@ - + @@ -213531,7 +212000,7 @@ - + @@ -213558,7 +212027,7 @@ - + @@ -213603,37 +212072,37 @@ - + - + - + - + - + - + - + - + @@ -213645,7 +212114,7 @@ - + @@ -213654,22 +212123,22 @@ - + - + - + - + - + @@ -213684,7 +212153,7 @@ - + @@ -213699,39 +212168,39 @@ - + - - - - + + + + - + - + - + - + - + - + - + - + - + @@ -213740,43 +212209,43 @@ - - - - + + + + - + - + - - + + - - + + - + - + - + - + - + @@ -213800,7 +212269,7 @@ - + @@ -213821,7 +212290,7 @@ - + @@ -213848,7 +212317,7 @@ - + @@ -213893,37 +212362,37 @@ - + - + - + - + - + - + - + - + @@ -213935,7 +212404,7 @@ - + @@ -213944,22 +212413,22 @@ - + - + - + - + - + @@ -213974,7 +212443,7 @@ - + @@ -213989,30 +212458,30 @@ - + - + - + - + - + - - + + - + - + @@ -214054,58 +212523,58 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -214117,10 +212586,10 @@ - + - + @@ -214129,38 +212598,38 @@ - + - - - + + + - + - + - + - + - + - + - + - + - + @@ -214171,54 +212640,54 @@ - - + + - + - + - + - + - + - - + + - + - + - + - + - + - + @@ -214260,58 +212729,58 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -214323,10 +212792,10 @@ - + - + @@ -214335,24 +212804,24 @@ - + - + - + - + - + - + @@ -214376,7 +212845,7 @@ - + @@ -214397,7 +212866,7 @@ - + @@ -214424,7 +212893,7 @@ - + @@ -214469,37 +212938,37 @@ - + - + - + - + - + - + - + - + @@ -214511,7 +212980,7 @@ - + @@ -214520,22 +212989,22 @@ - + - + - + - + - + @@ -214550,7 +213019,7 @@ - + @@ -214565,37 +213034,37 @@ - + - - + + - + - + - + - + - + - + - + - + - + @@ -214604,25 +213073,25 @@ - + - - + + - - + + - - + + - + @@ -214630,59 +213099,59 @@ - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + @@ -214693,20 +213162,20 @@ - + - - - + + + - + - + - + @@ -214733,24 +213202,24 @@ - + - + - + - + - + - + @@ -214792,58 +213261,58 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -214855,10 +213324,10 @@ - + - + @@ -214867,24 +213336,24 @@ - + - + - + - + - + - + @@ -214908,7 +213377,7 @@ - + @@ -214929,7 +213398,7 @@ - + @@ -214956,7 +213425,7 @@ - + @@ -215001,37 +213470,37 @@ - + - + - + - + - + - + - + - + @@ -215043,7 +213512,7 @@ - + @@ -215052,22 +213521,22 @@ - + - + - + - + - + @@ -215082,7 +213551,7 @@ - + @@ -215097,36 +213566,36 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -215135,11 +213604,11 @@ - - - + + + - + @@ -215148,188 +213617,188 @@ - + - - - - - + + + + + - + - + - - - + + + - - + + - + - + - + - + - + - + - + - + - + - + - + - - - - + + + + - - - - + + + + - + - + - + - + - + - + - - + + - - + + - + - + - + - + - + - + - + - + - + @@ -215353,7 +213822,7 @@ - + @@ -215374,7 +213843,7 @@ - + @@ -215401,7 +213870,7 @@ - + @@ -215446,37 +213915,37 @@ - + - + - + - + - + - + - + - + @@ -215488,7 +213957,7 @@ - + @@ -215497,22 +213966,22 @@ - + - + - + - + - + @@ -215527,7 +213996,7 @@ - + @@ -215542,15 +214011,15 @@ - + - + - + - + @@ -215592,58 +214061,58 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -215655,10 +214124,10 @@ - + - + @@ -215667,18 +214136,18 @@ - + - + - + - + - + @@ -215705,54 +214174,54 @@ - + - + - + - - + + - + - + - - + + - + - + - + - + - + - + @@ -215776,7 +214245,7 @@ - + @@ -215797,7 +214266,7 @@ - + @@ -215824,7 +214293,7 @@ - + @@ -215869,37 +214338,37 @@ - + - + - + - + - + - + - + - + @@ -215911,7 +214380,7 @@ - + @@ -215920,22 +214389,22 @@ - + - + - + - + - + @@ -215950,7 +214419,7 @@ - + @@ -215965,15 +214434,15 @@ - + - + - + - + @@ -216015,58 +214484,58 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -216078,10 +214547,10 @@ - + - + @@ -216090,87 +214559,87 @@ - + - + - + - + - + - + - - + + - + - + - + - + - + - + - - + + - - + + - + - + - + - + @@ -216187,31 +214656,31 @@ - + - + - + - + - + - + - + @@ -216256,22 +214725,22 @@ - + - + - + - + - + @@ -216292,25 +214761,25 @@ - + - + - + - + - + - + @@ -216352,7 +214821,7 @@ - + @@ -216382,78 +214851,78 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - + + + + + + + @@ -216461,7 +214930,7 @@ - + @@ -216479,267 +214948,267 @@ - + - + - - - - - - - - - - + + + + + + + + + + - - + + - + - + - + - + - - - + + + - - + + - + - + - + - + - + - + - - + + - + - + - - + + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - + + + + - + - + - + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - + + - - + + - - + + - - + + - - - - + + + + - - + + @@ -216756,31 +215225,31 @@ - + - + - + - + - + - + - + @@ -216825,22 +215294,22 @@ - + - + - + - + - + @@ -216861,25 +215330,25 @@ - + - + - + - + - + - + @@ -216921,7 +215390,7 @@ - + @@ -216951,12 +215420,12 @@ - + - + - + @@ -216968,7 +215437,7 @@ - + @@ -216980,12 +215449,12 @@ - + - + @@ -216994,18 +215463,18 @@ - + - + - + - + - + @@ -217013,15 +215482,15 @@ - + - + - + @@ -217029,7 +215498,7 @@ - + @@ -217045,7 +215514,7 @@ - + @@ -217058,18 +215527,18 @@ - + - + - + @@ -217077,9 +215546,9 @@ - + - + @@ -217090,18 +215559,18 @@ - + - + - + @@ -217110,17 +215579,17 @@ - + - + - + - + @@ -217129,26 +215598,27 @@ - - + + + - + - + - + - + - + - + @@ -217157,7 +215627,7 @@ - + @@ -217172,7 +215642,7 @@ - + @@ -217190,7 +215660,7 @@ - + @@ -217259,22 +215729,22 @@ - + - + - + - + - + @@ -217283,7 +215753,7 @@ - + @@ -217292,19 +215762,19 @@ - + - + - + - + @@ -217312,10 +215782,10 @@ - + - + @@ -217324,31 +215794,31 @@ - + - + - + - + - + - + @@ -217357,20 +215827,20 @@ - + - - - + + + - + - + @@ -217378,18 +215848,18 @@ - + - + - + - + - + @@ -217398,258 +215868,258 @@ - - + + - - + + - + - + - - + + - + - + - + - + - + - - - + + + - - - + + + - + - - + + - - + + - - + + - - + + - + - - - + + + - + - + - - - + + + - + - + - + - - - + + + - - + + - - + + - + - + - - + + - - - - + + + + - + - + - + - + - - + + - - + + - - - + + + - - - + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - + + + + + + @@ -217657,10 +216127,10 @@ - + - + @@ -217668,11 +216138,11 @@ - - - - - + + + + + @@ -217683,88 +216153,88 @@ - + - - - - - - + + + + + + - + - + - + - + - + - + - + - + - - + + - + - - + + - + - + - + - + - + - + - + - + - + - + @@ -217772,30 +216242,30 @@ - + - + - + - + - + - + - + - + - + @@ -217810,7 +216280,7 @@ - + @@ -217833,72 +216303,72 @@ - - + + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - + + + + + + + + + + + + - + - + - + - + - + - + - - + + @@ -217906,31 +216376,31 @@ - + - + - + - + - + - + - - + + - + @@ -217941,49 +216411,49 @@ - - - - - - - - + + + + + + + + - + - + - + - + - - - - - + + + + + - + - + - + - + - + - + @@ -217994,180 +216464,180 @@ - - - - - - - - - - - + + + + + + + + + + + - - - + + + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - + - - + + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + @@ -218176,138 +216646,51 @@ - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - + - + - + - + @@ -218334,28 +216717,28 @@ - + - + - + - + - + - + - + @@ -218385,43 +216768,43 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -218430,10 +216813,10 @@ - + - + @@ -218447,14 +216830,14 @@ - - + + - + @@ -218462,10 +216845,10 @@ - + - + @@ -218482,7 +216865,7 @@ - + @@ -218491,10 +216874,10 @@ - + - + @@ -218505,7 +216888,7 @@ - + @@ -218526,40 +216909,40 @@ - + - + - + - + - + - + - + - + - + @@ -218570,10 +216953,10 @@ - + - + @@ -218582,30 +216965,30 @@ - + - + - + - + - - - - + + + + - + - + @@ -218620,30 +217003,30 @@ - - + + - - + + - + - - + + - - + + - + - + - + @@ -218652,58 +217035,58 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -218717,23 +217100,23 @@ - + - - - - - - + + + + + + - - - - + + + + @@ -218744,373 +217127,373 @@ - - - - - - - - - - - - + + + + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - + + + + + + + + - + - + - + - + - + - + - + - - + + - + - + - + - + - - + + - - + + - - + + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - - - + + + - - + + - + - - + + - + - + - - - - - + + + + + - - + + - - - + + + - - - + + + - - - - - + + + + + - - - + + + - - - - - - + + + + + + - - - - + + + + - - + + - - + + - - - + + + - - + + - + - - + + - - + + - - + + - - - - + + + + - - - - - + + + + + - - - + + + - - - + + + - - + + - + - + - - + + - + - + - + - - + + - + - + - + - + - + - + - + @@ -219137,28 +217520,28 @@ - + - + - + - + - + - + - + @@ -219188,43 +217571,43 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -219233,15 +217616,15 @@ - + - + - + - + @@ -219250,326 +217633,206 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + - - - - + + + + - - + + - - - - + + + + - + - + - - + + - - + + - - + + - + - + - - - + + + - + - - + + - + - + - + - - - - + + + + - + - + - + - + - + - + - + - + - + - - + + - + - - + + - - + + - + - + @@ -219578,90 +217841,90 @@ - + - + - - + + - - + + - - - + + + - - - + + + - + - + - - - + + + - - + + - + - + - - - + + + - + - + - + - + - - - + + + - + - - - - + + + + - - + + - - + + - + @@ -219669,79 +217932,79 @@ - + - + - + - + - + - + - + - - - + + + - - + + - + - + - + - + - + - + - + - + - + - + - + @@ -219750,204 +218013,204 @@ - - + + - + - + - - + + - - - + + + - - + + - + - - + + - + - + - + - + - - - - + + + + - - + + - - + + - + - - + + - + - - + + - - - + + + - + - + - + - + - - + + - - - - + + + + - - - + + + - + - + - + - + - - + + - - - + + + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -219955,105 +218218,105 @@ - + - + - + - + - + - - - - + + + + - + - + - + - + - + - - + + - - + + - - + + - - + + - + - + - + - - - + + + - + - - + + - + - + - + - + - + - + @@ -220062,18 +218325,18 @@ - + - - + + - - + + - + @@ -220090,138 +218353,138 @@ - + - - - + + + - - + + - - - + + + - - + + - + - - + + - + - + - + - + - + - + - + - + - + - - + + - - + + - + - + - + - + - - + + - - + + - + - + - - + + - + - + - + @@ -220257,28 +218520,28 @@ - + - + - + - + - + - + - + - + @@ -220287,7 +218550,7 @@ - + @@ -220305,16 +218568,16 @@ - + - + - + - + @@ -220365,7 +218628,7 @@ - + @@ -220392,16 +218655,16 @@ - + - + - + - + @@ -220410,22 +218673,22 @@ - + - + - + - + - + - + @@ -220434,37 +218697,37 @@ - + - + - + - + - + - + - + - + - + @@ -220473,10 +218736,10 @@ - + - + @@ -220488,16 +218751,16 @@ - + - + - + - + @@ -220509,37 +218772,37 @@ - + - + - + - + - + - + - + - + - + @@ -220548,25 +218811,25 @@ - + - + - + - + - + - + - + @@ -220576,55 +218839,55 @@ - - + + - - - + + + - - + + - - - - + + + + - + - + - - + + - - + + - + - - + + - + - + @@ -220635,59 +218898,59 @@ - + - + - + - + - + - + - - - - - + + + + + - - + + - - - + + + - - - + + + - + - + - + - + @@ -220699,7 +218962,7 @@ - + @@ -220711,7 +218974,7 @@ - + @@ -220729,9 +218992,9 @@ - + - + @@ -220740,19 +219003,19 @@ - + - + - + - + @@ -220760,29 +219023,29 @@ - + - + - + - + - + - - + + @@ -220791,36 +219054,36 @@ - + - + - + - + - + - + - + - - + + - + - + - + @@ -220844,13 +219107,13 @@ - + - + @@ -220858,65 +219121,65 @@ - - - - - - - - + + + + + + + + - + - - - + + + - - - - + + + + - - + + - - + + - - - + + + - - - + + + - + - + - + - + @@ -220928,7 +219191,7 @@ - + @@ -220937,15 +219200,15 @@ - + - + - + - + @@ -220960,7 +219223,7 @@ - + @@ -220969,39 +219232,39 @@ - + - + - + - + - + - + - + - - - - - - - - - - - + + + + + + + + + + + - + @@ -221013,127 +219276,127 @@ - + - + - + - - - + + + - - + + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - - + + - - + + - - + + - - + + - - + + - - - - + + + + - - + + - - + + - - + + - - + + - + - + @@ -221142,12 +219405,12 @@ - + - + - + @@ -221156,300 +219419,300 @@ - + - + - + - + - + - - - - + + + + - - + + - + - + - + - + - + - + - + - + - + - - - + + + - + - - + + - - - + + + - + - + - + - + - - + + - - + + - + - + - - + + - - + + - + - + - + - + - + - - + + - - + + - + - + - + - + - + - + - + - - + + - + - - + + - + - + - + - - + + - + - + - + - + - + - - + + - + - - + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - + - + - + - + - + - + @@ -221464,241 +219727,241 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - - + + - - + + - - + + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - + + + - - + + - - + + - + - + - - + + - + - + - - - + + + - - + + - - + + - - + + - - + + - + - - + + - + - - - + + + - - - + + + @@ -221711,9 +219974,9 @@ - + - + @@ -221722,19 +219985,19 @@ - + - + - + - + - + @@ -221746,10 +220009,10 @@ - + - + @@ -221760,12 +220023,12 @@ - + - - - + + + @@ -221774,200 +220037,200 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - + + + + - + - + - + - + - + - + - + - + - + - + - - - - - + + + + + - + - + - - - - - + + + + + - + - + - + - + - - - - - + + + + + - + - + - - - - - - + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + @@ -221981,67 +220244,67 @@ - + - - + + - - + + - + - - + + - - + + - - - + + + - - + + - - + + - - - + + + - - + + - - - + + + - - - - + + + + @@ -222049,22 +220312,22 @@ - - - + + + - + - + - + @@ -222082,30 +220345,30 @@ - + - + - + - + - + - + - + - + - + @@ -222117,7 +220380,7 @@ - + @@ -222129,48 +220392,48 @@ - + - + - + - - - - + + + + - + - + - + - + - + - + - + - + @@ -222187,65 +220450,65 @@ - - - - - - - + + + + + + + - + - + - - + + - - - - - - + + + + + + - - - + + + - + - + - + - + - + - + - + @@ -222254,136 +220517,136 @@ - + - + - + - + - + - + - + - - - - + + + + - - + + - + - + - - + + - - + + - + - + - - + + - - + + - + - - - + + + - + - - + + - - + + - - + + - - + + - - + + - + - + - + - + - + - + @@ -222407,31 +220670,31 @@ - + - + - + - + - + - - + + - + @@ -222440,16 +220703,16 @@ - + - + - + @@ -222461,10 +220724,10 @@ - + - + @@ -222482,54 +220745,54 @@ - + - - + + - - + + - + - - - + + + - - + + - + - + - + - + - - + + - + - + - + - + @@ -222546,96 +220809,96 @@ - + - + - + - + - + - + - + - + - + - - + + - + - - + + - + - + - + - + - + - + - - + + - + - - + + - + - - - - + + + + - + - + @@ -222644,16 +220907,16 @@ - + - + - + - + @@ -222670,24 +220933,24 @@ - + - + - - + + - + - + @@ -222695,13 +220958,13 @@ - + - + @@ -222710,13 +220973,13 @@ - + - + @@ -222728,9 +220991,9 @@ - - - + + + @@ -222738,16 +221001,16 @@ - + - + - + - + @@ -222756,32 +221019,32 @@ - - - - + + + + - + - + - + - + - + - + - + - + @@ -222791,94 +221054,94 @@ - - + + - + - + - + - + - - - - + + + + - + - + - - + + - - + + - - + + - + - + - + - - - - + + + + - - - + + + - - + + - - + + - + - + @@ -222886,7 +221149,7 @@ - + @@ -222897,43 +221160,43 @@ - + - + - + - + - + - + - + - + - + - + @@ -222948,16 +221211,16 @@ - + - + - + @@ -222969,42 +221232,42 @@ - + - + - + - + - + - - + + - - - + + + - + - + - + @@ -223012,7 +221275,7 @@ - + @@ -223021,22 +221284,22 @@ - + - + - + - + - + @@ -223048,26 +221311,26 @@ - + - + - + - + - + - + - - + + - + @@ -223085,54 +221348,54 @@ - - - + + + - + - + - + - + - + - + - + - + - - - + + + - + - + - + - + - + @@ -223141,22 +221404,22 @@ - + - + - + - + - + @@ -223174,13 +221437,13 @@ - + - + - + @@ -223188,105 +221451,105 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -223295,16 +221558,16 @@ - + - + - + @@ -223312,20 +221575,20 @@ - + - + - + - + - - - + + + @@ -223348,13 +221611,13 @@ - + - + - + @@ -223363,638 +221626,184 @@ - + - - - - - - - - - - - - - - + + + + + + + + + + + + + + - + - + - + - + - - + + - - + + - + - - + + - + - - + + - - - + + + - - + + - - - + + + - - + + - - + + - + - - + + - - + + - - + + - - + + - + - - + + - - + + - - + + - - - + + + - + - + - + - + - - + + - + - + - + - + - + - + - - + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + @@ -224003,22 +221812,22 @@ - + - + - + - + - + @@ -224036,778 +221845,15 @@ - + - + - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -224816,25 +221862,25 @@ - + - + - + - + - + - + @@ -224843,22 +221889,22 @@ - + - + - + - + - + - + @@ -224873,13 +221919,13 @@ - + - + @@ -224888,13 +221934,13 @@ - + - + @@ -224927,10 +221973,10 @@ - + - + @@ -224942,46 +221988,1385 @@ - + - + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - - + + - + @@ -224999,25 +223384,25 @@ - - + + - + - - + + - + - + @@ -225026,28 +223411,28 @@ - + - + - + - + - + - + @@ -225062,49 +223447,49 @@ - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - + + + + + + + + @@ -225112,10 +223497,10 @@ - + - + @@ -225124,31 +223509,31 @@ - + - + - + - + - + - + @@ -225157,20 +223542,20 @@ - + - + - + - + - + - + @@ -225179,7 +223564,7 @@ - + @@ -225194,7 +223579,7 @@ - + @@ -225212,7 +223597,7 @@ - + @@ -225281,22 +223666,22 @@ - + - + - + - + - + @@ -225305,7 +223690,7 @@ - + @@ -225314,26 +223699,26 @@ - + - + - + - - - + + + - + @@ -225345,20 +223730,20 @@ - + - - - + + + - + - + @@ -225367,79 +223752,79 @@ - - - - + + + + - - + + - + - - - + + + - - - + + + - - - - + + + + - - - + + + - - - + + + - - - + + + - + - - + + - + - - - + + + - - - - - + + + + + - - + + - + @@ -225456,16 +223841,16 @@ - - + + - + - + @@ -225474,10 +223859,10 @@ - + - + @@ -225492,10 +223877,10 @@ - + - + @@ -225516,7 +223901,7 @@ - + @@ -225525,9 +223910,9 @@ - - - + + + @@ -225544,45 +223929,45 @@ - + - + - + - + - + - + - + - - - - - + + + + + - - - - + + + + - + - + - + @@ -225591,16 +223976,16 @@ - + - + - + - + @@ -225642,122 +224027,122 @@ - + - - - - - + + + + + - - - + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - - - - + + + + - - + + - - + + - - + + - - + + - - + + - + - - + + - + - + - + - + @@ -225775,25 +224160,25 @@ - + - + - + - + - + @@ -225805,12 +224190,12 @@ - + - + @@ -225819,22 +224204,22 @@ - + - + - + - - + + - + - + @@ -225843,31 +224228,31 @@ - + - + - + - + - + - + @@ -225876,16 +224261,16 @@ - + - + - + @@ -225897,7 +224282,7 @@ - + @@ -225906,16 +224291,16 @@ - - + + - + - + - + @@ -225924,79 +224309,79 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - + + + + - + - + - + - + @@ -226017,28 +224402,28 @@ - + - + - + - + - - + + - - + + - + @@ -226059,21 +224444,21 @@ - - + + - - + + - - - - - - + + + + + + @@ -226081,8 +224466,8 @@ - - + + @@ -226096,20 +224481,20 @@ - - - - - + + + + + - + - - + + @@ -226117,10 +224502,10 @@ - + - + @@ -226129,31 +224514,31 @@ - + - + - + - + - + - + @@ -226162,18 +224547,18 @@ - + - - - - + + + + - + - + @@ -226182,13 +224567,13 @@ - + - + - + @@ -226197,19 +224582,19 @@ - + - + - + - + @@ -226218,16 +224603,16 @@ - + - + - + @@ -226257,58 +224642,58 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -226317,80 +224702,80 @@ - + - + - + - + - + - + - - - - + + + + - + - + - + - + - + - + - + - + - + - + - - - + + + - + - + - - - - + + + + @@ -226431,12 +224816,12 @@ - + - + - + @@ -226445,10 +224830,10 @@ - + - + @@ -226456,20 +224841,20 @@ - + - + - - - - - + + + + + @@ -226483,118 +224868,118 @@ - - + + - - + + - + - + - + - + - + - - - - - - + + + + + + - - - + + + - - + + - - + + - - + + - - + + - - - + + + - - - - - - + + + + + + - - + + - - - + + + - - + + - + - - - + + + - - + + - - + + - - + + - + - + @@ -226603,33 +224988,33 @@ - + - + - + - + - + - + - + - + @@ -226638,22 +225023,22 @@ - + - + - + - + - + @@ -226671,75 +225056,75 @@ - + - + - + - + - + - + - + - + - + - - + + - - + + - + - + - + - + - + - - + + - + - + @@ -226747,10 +225132,10 @@ - + - + @@ -226759,31 +225144,31 @@ - + - + - + - + - + - + @@ -226792,46 +225177,54 @@ - + + + + + + + + + - - + + - - - + + + - + - + - - + + - + - - + + - - - + + + - + @@ -226849,25 +225242,25 @@ - + - + - + - + - + @@ -226879,7 +225272,7 @@ - + @@ -226890,43 +225283,43 @@ - + - + - + - + - + - + - + - + - + - + @@ -226941,16 +225334,16 @@ - + - + - + @@ -226962,34 +225355,33 @@ - + - + - + - + - + - - + - + @@ -226998,22 +225390,22 @@ - + - + - + - + - + @@ -227025,12 +225417,13 @@ - + + - + @@ -227039,22 +225432,22 @@ - + - + - + - - + + - + - + @@ -227063,31 +225456,31 @@ - + - + - + - + - + - + @@ -227096,16 +225489,16 @@ - + - + - + @@ -227117,7 +225510,7 @@ - + @@ -227126,13 +225519,13 @@ - - + + - + - + @@ -227141,13 +225534,13 @@ - + - + - + @@ -227156,19 +225549,19 @@ - + - + - + - + @@ -227177,16 +225570,16 @@ - + - + - + @@ -227216,58 +225609,58 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -227276,31 +225669,31 @@ - + - + - + - + - + - + - - + + - + @@ -227309,33 +225702,33 @@ - + - + - + - + - + - + - + - + @@ -227344,22 +225737,22 @@ - + - + - + - + - + @@ -227377,212 +225770,23 @@ - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - + - + @@ -227591,10 +225795,10 @@ - + - + @@ -227609,10 +225813,10 @@ - + - + @@ -227633,7 +225837,7 @@ - + @@ -227642,26 +225846,26 @@ - + - + - + - + - - - + + + - - + + - + @@ -227675,63 +225879,63 @@ - - + + - + - - - + + + - + - + - + - + - + - + - - + + - - - + + + - - + + - - + + - + - + @@ -227740,61 +225944,61 @@ - - + + - + - - + + - + - + - - + + - + - - + + - + - + - - + + - + - - + + - + - + - + @@ -227808,104 +226012,104 @@ - - - - + + + + - + - - + + - + - + - + - + - + - + - + - - + + - - + + - - + + - - - + + + - - - - + + + + - + - + - + - + - + - - + + - + - + - + @@ -227917,68 +226121,68 @@ - - + + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + @@ -227987,13 +226191,13 @@ - + - + - + @@ -228002,19 +226206,19 @@ - + - + - + - + @@ -228023,16 +226227,16 @@ - + - + - + @@ -228062,58 +226266,58 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -228122,33 +226326,33 @@ - + - + - + - + - + - + - + - + - + @@ -228157,31 +226361,31 @@ - + - + - + - + - + - + @@ -228190,16 +226394,16 @@ - + - + - + @@ -228211,7 +226415,7 @@ - + @@ -228220,9 +226424,9 @@ - + - + @@ -228240,25 +226444,25 @@ - + - + - + - + - + @@ -228270,7 +226474,7 @@ - + @@ -228281,43 +226485,43 @@ - + - + - + - + - + - + - + - + - + - + @@ -228332,16 +226536,16 @@ - + - + - + @@ -228353,35 +226557,35 @@ - + - + - + - + - + - - - + + + - + @@ -228390,27 +226594,27 @@ - + - + - + - - - - + + + + - + - + - + @@ -228419,20 +226623,20 @@ - + - + - - - - + + + + - + @@ -228441,26 +226645,26 @@ - + - + - + - + - + - + @@ -228475,12 +226679,12 @@ - + - + @@ -228489,21 +226693,21 @@ - + - + - + - + - + - + @@ -228512,31 +226716,31 @@ - + - + - + - + - + - + @@ -228545,16 +226749,16 @@ - + - + - + @@ -228566,7 +226770,7 @@ - + @@ -228575,22 +226779,22 @@ - - + + - + - + - + - + @@ -228598,30 +226802,30 @@ - + - + - + - + - + - + @@ -228630,119 +226834,17 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + @@ -228751,27 +226853,27 @@ - - - + + + - + - + - + - + - + - + @@ -228780,7 +226882,7 @@ - + @@ -228795,7 +226897,7 @@ - + @@ -228813,7 +226915,7 @@ - + @@ -228882,22 +226984,22 @@ - + - + - + - + - + @@ -228906,47 +227008,47 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -228981,7 +227083,7 @@ - + @@ -229068,10 +227170,10 @@ - + - + @@ -229134,7 +227236,7 @@ - + @@ -229146,10 +227248,10 @@ - + - + @@ -229158,7 +227260,7 @@ - + @@ -229230,13 +227332,13 @@ - + - + - + @@ -229251,7 +227353,7 @@ - + @@ -229314,7 +227416,7 @@ - + @@ -229335,7 +227437,7 @@ - + @@ -229413,7 +227515,7 @@ - + @@ -229479,10 +227581,10 @@ - + - + @@ -229494,11 +227596,11 @@ - - - + + + - + @@ -229507,9 +227609,9 @@ - + - + @@ -229521,51 +227623,51 @@ - + - + - - - + + + - + - + - + - + - + - + - + - + - + @@ -229577,55 +227679,55 @@ - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - + + + + + + + + @@ -229637,22 +227739,22 @@ - - + + - - + + - - + + - + - + @@ -229678,28 +227780,28 @@ - + - + - + - + - + - - + + - + @@ -229708,7 +227810,7 @@ - + @@ -229732,79 +227834,79 @@ - + - + - + - + - - - - + + + + - + - + - + - + - - - - + + + + - + - + - + - + - + - + - + - + - + - + - + - + @@ -229821,13 +227923,13 @@ - + - + - + @@ -229836,21 +227938,21 @@ - + - - + + - + - - + + - + @@ -229864,150 +227966,150 @@ - + - + - - + + - - + + - - + + - - + + - + - - + + - - + + - + - + - - + + - + - - + + - + - + - - + + - - + + - - + + - - + + - + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -230040,7 +228142,7 @@ - + @@ -230049,19 +228151,19 @@ - + - + - + - + @@ -230070,55 +228172,55 @@ - + - + - + - + - + - + - + - + - + - + - + - - - - - - + + + + + + - + - + - + @@ -230139,35 +228241,35 @@ - + - + - + - + - - - + + + - - + + - + - + @@ -230191,38 +228293,38 @@ - + - + - + - + - + - + - - + + - - + + @@ -230230,36 +228332,36 @@ - - + + - - + + - + - + - + - + - + - + - + - + @@ -230268,20 +228370,20 @@ - - - + + + - + - + - + @@ -230293,32 +228395,32 @@ - + - - + + - - - + + + - + - + - + - + - + - + @@ -230330,60 +228432,60 @@ - + - - + + - - - + + + - + - + - + - + - + - + - + - + - + @@ -230403,60 +228505,60 @@ - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - + - + - + - + - + @@ -230489,7 +228591,7 @@ - + @@ -230498,19 +228600,19 @@ - + - + - + - + @@ -230519,28 +228621,27 @@ - + - + - + - - + - + - + - + @@ -230561,25 +228662,24 @@ - + - + - + - + - - + - + @@ -230603,24 +228703,26 @@ - + - - + + + + - + - + - + @@ -230629,33 +228731,33 @@ - + - + - + - + - + - + - + - + @@ -230664,22 +228766,22 @@ - + - + - + - + - + @@ -230697,13 +228799,13 @@ - + - + - + @@ -230711,22 +228813,22 @@ - + - + - - + + - + - + - + @@ -230736,23 +228838,23 @@ - + - + - + - + - + @@ -230763,10 +228865,10 @@ - + - + @@ -230775,14 +228877,14 @@ - - - + + + - - + + - + @@ -230803,13 +228905,13 @@ - + - - + + @@ -230820,19 +228922,19 @@ - + - + - + - + - + @@ -230850,43 +228952,43 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -230901,13 +229003,13 @@ - + - + @@ -230916,31 +229018,31 @@ - + - + - + - + - + @@ -230949,7 +229051,7 @@ - + @@ -230973,19 +229075,19 @@ - + - + - + - + - + @@ -230994,7 +229096,7 @@ - + @@ -231005,43 +229107,43 @@ - + - + - + - + - + - + - + - + - + - + @@ -231056,16 +229158,16 @@ - + - + - + @@ -231077,33 +229179,33 @@ - + - + - + - + - + - - - - + + + + - + @@ -231112,48 +229214,48 @@ - + - + - + - + - + - + - + - + - + - + - + - - + + @@ -231195,8 +229297,8 @@ - - + + @@ -231207,10 +229309,10 @@ - + - + @@ -231228,7 +229330,7 @@ - + @@ -231237,7 +229339,7 @@ - + @@ -231249,93 +229351,93 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -231368,7 +229470,7 @@ - + @@ -231377,9 +229479,9 @@ - + - + @@ -231391,16 +229493,16 @@ - + - + - + @@ -231451,28 +229553,28 @@ - + - + - + - + - + - + @@ -231484,32 +229586,32 @@ - + - + - - - - - + + + + + - + - + - + - + @@ -231518,16 +229620,16 @@ - + - + - + @@ -231540,143 +229642,143 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - + + + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - - - - - + + + + + @@ -231687,147 +229789,147 @@ - + - + - - - - + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - - + + - + - + - + - - + + - - + + - - - + + + @@ -231838,40 +229940,40 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -231889,7 +229991,7 @@ - + @@ -231897,10 +229999,10 @@ - + - + @@ -231915,10 +230017,10 @@ - + - + @@ -231936,7 +230038,7 @@ - + @@ -231948,33 +230050,33 @@ - - - - + + + + - + - + - + - + - + - + @@ -231983,28 +230085,28 @@ - + - + - + - + - + - + - + @@ -232022,7 +230124,7 @@ - + @@ -232033,7 +230135,7 @@ - + @@ -232042,13 +230144,13 @@ - + - + @@ -232057,10 +230159,10 @@ - + - + @@ -232069,7 +230171,7 @@ - + @@ -232078,19 +230180,19 @@ - + - + - + - + - + @@ -232147,22 +230249,22 @@ - + - + - + - - + + @@ -232188,674 +230290,76 @@ - - - + + + - - + + - - - - + + + + - + - + - + - + - + - + - + + + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + - + - + @@ -232867,61 +230371,61 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - + + + - + - + - + @@ -232929,7 +230433,7 @@ - + @@ -232964,37 +230468,37 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -233009,7 +230513,7 @@ - + @@ -233020,7 +230524,7 @@ - + @@ -233028,35 +230532,35 @@ - + - + - - + + - - - - - + + + + + - + - - - - + + + + @@ -233073,10 +230577,10 @@ - - - - + + + + @@ -233084,10 +230588,10 @@ - + - + @@ -233096,31 +230600,31 @@ - + - + - + - + - + - + @@ -233129,20 +230633,194 @@ - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - + + + + + + + + + + + @@ -233162,15 +230840,15 @@ - + - + - - - + + + @@ -233178,21 +230856,21 @@ - + - + - + - + @@ -233213,31 +230891,31 @@ - + - - + + - - + + - - - - + + + + - + - + - + @@ -233258,28 +230936,28 @@ - + - - + + - + - + - + @@ -233291,22 +230969,22 @@ - - + + - - - - - + + + + + - + @@ -233317,2966 +230995,27 @@ - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -236285,13 +231024,13 @@ - + - + - + @@ -236300,19 +231039,19 @@ - + - + - + - + @@ -236321,16 +231060,16 @@ - + - + - + @@ -236360,58 +231099,58 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -236420,33 +231159,33 @@ - + - + - + - + - + - + - + - + - + @@ -236455,31 +231194,31 @@ - + - + - + - + - + - + @@ -236488,16 +231227,16 @@ - + - + - + @@ -236509,7 +231248,7 @@ - + @@ -236518,9 +231257,9 @@ - + - + @@ -236538,25 +231277,25 @@ - + - + - + - + - + @@ -236568,12 +231307,12 @@ - + - + @@ -236582,108 +231321,65 @@ - + - + - + - - - - - + + + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -236691,28 +231387,28 @@ - + - + - + - + - + - + - + - + @@ -236721,7 +231417,7 @@ - + @@ -236730,15 +231426,15 @@ - + - + - + @@ -236747,22 +231443,22 @@ - + - + - + - + - + - + @@ -236774,10 +231470,10 @@ - + - + @@ -236789,37 +231485,37 @@ - + - + - + - + - + - + - + - + - + @@ -236831,19 +231527,19 @@ - + - + - + - + @@ -236852,13 +231548,13 @@ - + - + @@ -236870,25 +231566,25 @@ - + - + - + - + - + - + @@ -236909,88 +231605,533 @@ - - - + + + - - + + + + + + + + + + + + + + + + + + + + - + - + - + + + + + + + + + + - + - + - - - - + - + + + + - + - - - - + - + - - - - + - + - + - + - + - - - - - - - - + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + @@ -236999,24 +232140,24 @@ - + - + - + - + @@ -237025,398 +232166,1497 @@ - + - + - + - - - - - + + + + + + + + + + + + + + + + + - + - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - + - + - - - - - - - - - - - - - - - - - - - - - - + - - - - - + + + - - - - - + + + + + + + + + + + + + + + + + + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + @@ -237427,19 +233667,19 @@ - + - + - + - + - + @@ -237457,43 +233697,43 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -237508,13 +233748,13 @@ - + - + @@ -237523,31 +233763,31 @@ - + - + - + - + - + @@ -237556,7 +233796,7 @@ - + @@ -237580,19 +233820,19 @@ - + - + - + - + - + @@ -237601,236 +233841,122 @@ - - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -237842,16 +233968,16 @@ - + - + - + @@ -237902,28 +234028,28 @@ - + - + - + - + - + - + @@ -237935,52 +234061,447 @@ - + - + - - - - - - + - + + + + + + + + + + + + + + + + - + - + - + - + - + - - + + + + + + + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + @@ -237989,22 +234510,22 @@ - + - + - + - + - + - + @@ -238016,10 +234537,10 @@ - + - + @@ -238031,37 +234552,37 @@ - + - + - + - + - + - + - + - + - + @@ -238073,19 +234594,19 @@ - + - + - + - + @@ -238094,13 +234615,13 @@ - + - + @@ -238112,25 +234633,25 @@ - + - + - + - + - + - + @@ -238151,12 +234672,1153 @@ - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -238167,36 +235829,36 @@ - + - + - + - + - + - + - + - + @@ -238208,8 +235870,8 @@ - - + + @@ -238217,10 +235879,10 @@ - + - + @@ -238235,10 +235897,10 @@ - + - + @@ -238256,7 +235918,7 @@ - + @@ -238268,92 +235930,93 @@ - - + + + - + - + - - + + - - + + - - - + + + - + - + - + - + - + - + - + - + - + - + - + - - - - + + + + - + - + @@ -238362,326 +236025,161 @@ - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + + - - + + - - + + - - + + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - + - + - + - + @@ -238714,7 +236212,7 @@ - + @@ -238723,19 +236221,19 @@ - + - + - + - + @@ -238744,53 +236242,53 @@ - + - + - + - - + - + - + - + - + + - + - + - + - + - + - + - + @@ -238799,12 +236297,12 @@ - + - + @@ -238813,21 +236311,21 @@ - + - + - + - + - + - + @@ -238836,31 +236334,31 @@ - + - + - + - + - + - + @@ -238869,16 +236367,16 @@ - + - + - + @@ -238890,7 +236388,7 @@ - + @@ -238899,10 +236397,10 @@ - - + + - + @@ -238910,7 +236408,7 @@ - + @@ -238936,7 +236434,7 @@ - + @@ -238945,37 +236443,37 @@ - + - + - + - + - + - + - + - + - + @@ -238993,72 +236491,72 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -239094,28 +236592,28 @@ - + - + - + - + - + - + - + - + @@ -239124,7 +236622,7 @@ - + @@ -239142,16 +236640,16 @@ - + - + - + - + @@ -239202,7 +236700,7 @@ - + @@ -239229,16 +236727,16 @@ - + - + - + - + @@ -239247,22 +236745,22 @@ - + - + - + - + - + - + @@ -239271,37 +236769,37 @@ - + - + - + - + - + - + - + - + - + @@ -239310,10 +236808,10 @@ - + - + @@ -239325,16 +236823,16 @@ - + - + - + - + @@ -239346,37 +236844,37 @@ - + - + - + - + - + - + - + - + - + @@ -239385,25 +236883,25 @@ - + - + - + - + - + - + - + @@ -239412,87 +236910,87 @@ - + - + - + - + - + - + - + - + - + - + - + - - - - - - - + + + + + + + - - + + - + - + - + - + - + - + - + - + - + - + @@ -239501,55 +236999,55 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -239570,7 +237068,7 @@ - + @@ -239753,10 +237251,10 @@ - + - + @@ -239765,7 +237263,7 @@ - + @@ -239774,10 +237272,10 @@ - + - + @@ -239810,25 +237308,25 @@ - + - + - + - + @@ -239837,10 +237335,10 @@ - + - + @@ -239863,186 +237361,109 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -240060,31 +237481,31 @@ - + - + - + - + - + - + - + - + - + @@ -240093,24 +237514,24 @@ - + - + - + - + - + - + @@ -240119,69 +237540,69 @@ - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + @@ -240189,89 +237610,89 @@ - + - + - + - + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - + - + - + - + - + - + @@ -240282,11 +237703,11 @@ - + - + @@ -240295,33 +237716,33 @@ - + - + - + - + - + - + - - - + + + - + @@ -240329,113 +237750,113 @@ - - + + - + - - + + - - + + - - + + - - + + - + - + - + - + - - + + - - + + - + - - + + - + - - - + + + - - + + - - + + - + - + - - + + @@ -240443,13 +237864,13 @@ - - + + - + - + @@ -240458,16 +237879,16 @@ - + - + - + - + @@ -240482,19 +237903,19 @@ - + - + - + - + - + @@ -240512,13 +237933,13 @@ - + - + - + @@ -240533,7 +237954,7 @@ - + @@ -240548,16 +237969,16 @@ - + - + - + - + @@ -240572,7 +237993,7 @@ - + @@ -240605,10 +238026,10 @@ - + - + @@ -240629,7 +238050,7 @@ - + @@ -240662,7 +238083,7 @@ - + @@ -240671,297 +238092,45 @@ - + - + - + - + - + - + - + - + - + - + - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - + @@ -240970,10 +238139,10 @@ - + - + @@ -240982,28 +238151,28 @@ - + - + - + - + - - + + - + - - + + @@ -241011,27 +238180,27 @@ - + - + - - + + - + - + - + - + - + @@ -241040,7 +238209,7 @@ - + @@ -241055,22 +238224,22 @@ - + - + - + - + - + - + @@ -241091,19 +238260,19 @@ - + - + - + - + @@ -241111,24 +238280,24 @@ - + - + - + - + - + - + - + @@ -241146,22 +238315,22 @@ - + - + - + - + - + - - + + @@ -241187,7 +238356,7 @@ - + @@ -241201,7 +238370,7 @@ - + @@ -241209,18 +238378,18 @@ - + - + - + - + @@ -241234,16 +238403,16 @@ - + - - + + - + - + @@ -241273,28 +238442,29 @@ - + - + - + - - + + - + + - + - + @@ -241303,19 +238473,19 @@ - + - + - + - + @@ -241333,34 +238503,34 @@ - + - + - + - + - + - + - + - + @@ -241386,7 +238556,7 @@ - + @@ -241398,21 +238568,21 @@ - + - + - + - + - + @@ -241421,13 +238591,13 @@ - + - + - + @@ -241439,55 +238609,55 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -241499,60 +238669,60 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -241569,15 +238739,15 @@ - + - + - + - + @@ -241589,8 +238759,8 @@ - - + + @@ -241616,7 +238786,7 @@ - + @@ -241628,12 +238798,12 @@ - + - + - + @@ -241642,25 +238812,25 @@ - + - - + + - + - + - - + + - + @@ -241669,28 +238839,28 @@ - + - - + + - + - + - + - - - - + + + + @@ -241701,7 +238871,7 @@ - + @@ -241721,34 +238891,34 @@ - + - - + + - + - + - + - + - + - - - - - - - + + + + + + + @@ -241759,9 +238929,9 @@ - + - + @@ -241773,12 +238943,12 @@ - + - + - + @@ -241787,37 +238957,37 @@ - + - + - + - + - + - + - + - - - - - - - - - - + + + + + + + + + + @@ -241828,31 +238998,163 @@ - + - + - + - + - + - + - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -241878,7 +239180,7 @@ - + @@ -241887,37 +239189,37 @@ - + - + - + - + - + - + - + - + - + @@ -241935,103 +239237,103 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + @@ -242040,55 +239342,55 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -242109,7 +239411,7 @@ - + @@ -242292,10 +239594,10 @@ - + - + @@ -242304,7 +239606,7 @@ - + @@ -242313,10 +239615,10 @@ - + - + @@ -242349,25 +239651,25 @@ - + - + - + - + @@ -242376,10 +239678,10 @@ - + - + @@ -242402,132 +239704,55 @@ - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + @@ -242538,55 +239763,55 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - + + + + @@ -242595,23 +239820,23 @@ - - - + + + - + - - - - + + + + @@ -242619,7 +239844,7 @@ - + @@ -242652,83 +239877,82 @@ - - - - - - - - - + + + + + + + + + - + - + - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -242746,31 +239970,31 @@ - + - + - + - + - + - + - + - + - + @@ -242779,30 +240003,30 @@ - + - + - + - + - + - + - + - + @@ -242817,25 +240041,25 @@ - + - + - + - + - + - + @@ -242868,15 +240092,15 @@ - + - + - + @@ -242885,10 +240109,10 @@ - + - + @@ -242897,18 +240121,18 @@ - + - + - + - + - + @@ -242920,49 +240144,50 @@ - + - - - + + + + - + - - + + - + - + - + - + - + - + - + - + @@ -242971,36 +240196,216 @@ - + - - - - - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - + - + - + @@ -243018,10 +240423,10 @@ - + - + @@ -243030,26 +240435,26 @@ - + - + - + - + - + - + - + - + @@ -243070,7 +240475,7 @@ - + @@ -243082,33 +240487,33 @@ - + - + - + - + - - - + + + - + - + - + - + @@ -243117,16 +240522,16 @@ - + - + - + @@ -243135,9 +240540,9 @@ - - - + + + @@ -243160,9 +240565,9 @@ - + - + @@ -243171,18 +240576,18 @@ - + - + - + - + @@ -243191,40 +240596,40 @@ - + - + - + - + - + - + - + - + - + @@ -243239,13 +240644,13 @@ - + - + - + @@ -243257,235 +240662,105 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + - - - - + + + - + - - + + - + - - + + - + - + - + - + - + - + - + - + - + - - - + + + - + - + - + - + - + - + @@ -243494,8 +240769,8 @@ - - + + @@ -243506,281 +240781,279 @@ - + - - - - + + + + - - - + + + - + - + - - + + - - - - - + + + - + - + - + - + - + - - + + - - + + - - + + - - + + - - - + + + - + - + - - + + - + - + - + - + - - + + - - + + - - + + - - - + + + - - + + - + - - + + - + - + - - + + - - + + - - + + - + - + - + - - + + - + - + - - - - - + + + + + - - + + - + - + - - - - - + + + + + - + - - + + - - + + - + - + - + @@ -243793,127 +241066,127 @@ - - + + - - + + + + + + + + + + + + + + - - - - + + + + - - - - + + + + - - - - - - - - - - - - - - + + - + - - + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - + - + - + - - - - - - + + + + + + - + - + @@ -243934,7 +241207,7 @@ - + @@ -243958,10 +241231,10 @@ - + - + @@ -244003,7 +241276,7 @@ - + @@ -244057,7 +241330,7 @@ - + @@ -244075,7 +241348,7 @@ - + @@ -244087,19 +241360,19 @@ - + - + - + - + - + @@ -244108,12 +241381,12 @@ - + - + - + @@ -244122,33 +241395,33 @@ - + - + - + - + - + - + - - + + - - + + @@ -244157,34 +241430,34 @@ - + - + - + - + - + - + - + - + @@ -244198,16 +241471,16 @@ - + - + - + - + @@ -244216,15 +241489,15 @@ - + - - - + + + @@ -244233,41 +241506,157 @@ - + - + - + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + @@ -244276,7 +241665,7 @@ - + @@ -244287,83 +241676,83 @@ - + - + - + - + - + - + - + - + - + - + - + - - - + + + - + - + - + - + - + - + - + - + @@ -244379,28 +241768,28 @@ - + - + - + - + - - - + + + - + @@ -244416,10 +241805,10 @@ - + - + @@ -244427,12 +241816,12 @@ - + - + - + @@ -244441,16 +241830,16 @@ - + - + - + - + @@ -244465,19 +241854,19 @@ - + - + - + - + - + @@ -244495,13 +241884,13 @@ - + - + - + @@ -244516,7 +241905,7 @@ - + @@ -244531,16 +241920,16 @@ - + - + - + - + @@ -244555,7 +241944,7 @@ - + @@ -244588,10 +241977,10 @@ - + - + @@ -244612,7 +242001,7 @@ - + @@ -244645,7 +242034,7 @@ - + @@ -244654,42 +242043,42 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -244702,7 +242091,7 @@ - + @@ -244715,13 +242104,13 @@ - + - + @@ -244739,22 +242128,22 @@ - + - + - + - + - + @@ -244766,270 +242155,346 @@ - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - + - + + + + - + - + + + + + + + + + + + + - + - + - + - + - + + + + + + + + + + - + + + + - + - + - - - - + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - + - + - - + + - + + + + + + + + + + - - - - - - - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + - + + + + + + + + + + + + + - + - - + + - - + + + + + + + + - + - - - - + - + - + - + + + + - + + + + + + + + + + + + + + + + + + + + + + - + - + + + + + + + + + + + + + + + - + @@ -245038,22 +242503,22 @@ - + - + - + - + - + @@ -245071,13 +242536,13 @@ - + - + - + @@ -245085,1275 +242550,318 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - + - + - + - + - - + + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - - + + + - + - + - + - + - + - + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - - + + - + - - + + - + - - + + - + - + - - - + + + - + - + - - + + - + - + - - + + - + - - + + - - + + - + - - + + - - + + - + - - + + - - + + - - + + - - - + + + - - - + + + - + @@ -246367,183 +242875,183 @@ - + - + - + - + - + - + - - + + - + - + - + - - + + - + - - - + + + - - + + - - + + - - + + - + - + - - + + - - + + - - + + - + - + - - + + - - - + + + - - + + - + - + - + - + - + - - + + - + - + - - - + + + - + - + - - + + - - + + - + - + @@ -246552,63 +243060,63 @@ - + - + - + - + - - + + - - + + - + - - + + - - - + + + - - - + + + - + - + - - + + - - + + - + @@ -246618,12 +243126,12 @@ - + - + - + @@ -246632,16 +243140,16 @@ - + - + - + - + @@ -246656,19 +243164,19 @@ - + - + - + - + - + @@ -246686,13 +243194,13 @@ - + - + - + @@ -246707,7 +243215,7 @@ - + @@ -246722,16 +243230,16 @@ - + - + - + - + @@ -246746,7 +243254,7 @@ - + @@ -246779,10 +243287,10 @@ - + - + @@ -246803,7 +243311,7 @@ - + @@ -246836,7 +243344,7 @@ - + @@ -246845,175 +243353,174 @@ - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - + - + - + - + - - + + - + - + - + - - + + - + - + - + - + - + - - + + - - + + - - - + + + - + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - - + + + + + + + + + + + + + + + @@ -247039,147 +243546,176 @@ - + - + - + - + - + - + - + - + - - + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - - - + + + - - + + - + - + - - - - + + + + - - - + + + + + + + + + + + + + + + + + - - + + - + - - + + - + - + - + - + - + - + - + - + - + - + - - + + - - + + @@ -247187,43 +243723,43 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -247232,16 +243768,16 @@ - + - + - + - + @@ -247256,19 +243792,19 @@ - + - + - + - + - + @@ -247286,13 +243822,13 @@ - + - + - + @@ -247307,7 +243843,7 @@ - + @@ -247322,16 +243858,16 @@ - + - + - + - + @@ -247346,7 +243882,7 @@ - + @@ -247379,10 +243915,10 @@ - + - + @@ -247403,7 +243939,7 @@ - + @@ -247436,7 +243972,7 @@ - + @@ -247445,49 +243981,41 @@ - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - + + @@ -247495,22 +244023,22 @@ - + - + - + - + @@ -247521,185 +244049,158 @@ - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - + + + - + - + - + - - + + - + - - + + - - + + - - + + - - + + - + - - + + - + - - + + - - - + + + - - - - + + + + - - - - + + + + - - - - + + + + - + - - + + - - + + - - - + + + - - - + + + - + - + - + - + - + - + - + @@ -247726,40 +244227,40 @@ - + - + - - - - - - + + + + + + - + - - - - - - + + + + + + - + - + @@ -247767,17 +244268,17 @@ - + - - + + - - + + @@ -247803,7 +244304,7 @@ - + @@ -247812,37 +244313,37 @@ - + - + - + - + - + - + - + - + - + @@ -247860,69 +244361,69 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -247931,16 +244432,16 @@ - + - + - + - + @@ -247955,19 +244456,19 @@ - + - + - + - + - + @@ -247985,13 +244486,13 @@ - + - + - + @@ -248006,7 +244507,7 @@ - + @@ -248021,16 +244522,16 @@ - + - + - + - + @@ -248045,7 +244546,7 @@ - + @@ -248078,10 +244579,10 @@ - + - + @@ -248102,7 +244603,7 @@ - + @@ -248135,7 +244636,7 @@ - + @@ -248144,93 +244645,101 @@ - + - + - + - + - + - + - + - + - + - + - + + + + + + + + + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + @@ -248239,55 +244748,55 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -248308,7 +244817,7 @@ - + @@ -248491,10 +245000,10 @@ - + - + @@ -248503,7 +245012,7 @@ - + @@ -248512,10 +245021,10 @@ - + - + @@ -248548,25 +245057,25 @@ - + - + - + - + @@ -248575,10 +245084,10 @@ - + - + @@ -248601,188 +245110,111 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -248800,31 +245232,31 @@ - + - + - + - + - + - + - + - + - + @@ -248833,33 +245265,33 @@ - + - + - + - + - + - + - + - + @@ -248868,40 +245300,40 @@ - + - + - + - + - + - + - + - + - + @@ -248916,13 +245348,13 @@ - + - + - + @@ -248934,81 +245366,81 @@ - - + + - - + + - - + + - + - + - + - + - + - + - + - - - - + + + + - + - + - + - + - - + + - + - - + + - + @@ -249034,7 +245466,7 @@ - + @@ -249043,37 +245475,37 @@ - + - + - + - + - + - + - + - + - + @@ -249091,93 +245523,93 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -249186,55 +245618,55 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -249255,7 +245687,7 @@ - + @@ -249438,10 +245870,10 @@ - + - + @@ -249450,7 +245882,7 @@ - + @@ -249459,10 +245891,10 @@ - + - + @@ -249495,25 +245927,25 @@ - + - + - + - + @@ -249522,144 +245954,67 @@ - + - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -249677,31 +246032,31 @@ - + - + - + - + - + - + - + - + - + @@ -249710,82 +246065,82 @@ - + - + - + - + - - + + - - - + + + - - - - + + + + - - - + + + - - - - + + + + - - - + + + - + - + - - + + - - - - + + + + - + - + @@ -249813,20 +246168,20 @@ - - + + - - + + - + - + - + @@ -249847,7 +246202,7 @@ - + @@ -249871,10 +246226,10 @@ - + - + @@ -249916,7 +246271,7 @@ - + @@ -249970,7 +246325,7 @@ - + @@ -249988,7 +246343,7 @@ - + @@ -250000,19 +246355,19 @@ - + - + - + - + - + @@ -250021,12 +246376,12 @@ - + - + - + @@ -250035,34 +246390,34 @@ - + - + - + - + - + - + - + - + - + @@ -250098,28 +246453,28 @@ - + - + - + - + - + - + - + - + @@ -250128,7 +246483,7 @@ - + @@ -250146,16 +246501,16 @@ - + - + - + - + @@ -250206,7 +246561,7 @@ - + @@ -250233,16 +246588,16 @@ - + - + - + - + @@ -250251,22 +246606,22 @@ - + - + - + - + - + - + @@ -250275,37 +246630,37 @@ - + - + - + - + - + - + - + - + - + @@ -250314,10 +246669,10 @@ - + - + @@ -250329,16 +246684,16 @@ - + - + - + - + @@ -250350,37 +246705,37 @@ - + - + - + - + - + - + - + - + - + @@ -250389,25 +246744,25 @@ - + - + - + - + - + - + - + @@ -250416,19 +246771,18 @@ - - + - + - + - + @@ -250467,13 +246821,13 @@ - + - + @@ -250488,13 +246842,13 @@ - + - + - + @@ -250509,16 +246863,16 @@ - + - + - + @@ -250527,30 +246881,31 @@ - + - + - - - + + + + - + - + - - + + - + @@ -250576,7 +246931,7 @@ - + @@ -250585,37 +246940,37 @@ - + - + - + - + - + - + - + - + - + @@ -250633,93 +246988,93 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -250728,55 +247083,55 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -250797,7 +247152,7 @@ - + @@ -250980,10 +247335,10 @@ - + - + @@ -250992,7 +247347,7 @@ - + @@ -251001,10 +247356,10 @@ - + - + @@ -251037,25 +247392,25 @@ - + - + - + - + @@ -251064,10 +247419,10 @@ - + - + @@ -251090,187 +247445,110 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -251288,31 +247566,31 @@ - + - + - + - + - + - + - + - + - + @@ -251321,39 +247599,39 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -251362,18 +247640,18 @@ - + - + - + - + @@ -251382,19 +247660,19 @@ - + - + - + - + @@ -251412,22 +247690,22 @@ - + - + - + - + @@ -251441,22 +247719,22 @@ - + - + - + - - + + - + @@ -251465,47 +247743,47 @@ - - + + - - - + + + - + - + - + - + - + - + - + - + - + - + - + @@ -251516,9 +247794,9 @@ - + - + @@ -251527,12 +247805,12 @@ - + - + @@ -251543,134 +247821,134 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - - + + - - + + - + - + - + - + - + - - + + - + - + - + - - + + - - + + - + - + - + @@ -251679,16 +247957,16 @@ - - + + - + - + @@ -251724,28 +248002,28 @@ - + - + - + - + - + - + - + - + @@ -251754,7 +248032,7 @@ - + @@ -251772,16 +248050,16 @@ - + - + - + - + @@ -251832,7 +248110,7 @@ - + @@ -251859,16 +248137,16 @@ - + - + - + - + @@ -251877,22 +248155,22 @@ - + - + - + - + - + - + @@ -251901,37 +248179,37 @@ - + - + - + - + - + - + - + - + - + @@ -251940,10 +248218,10 @@ - + - + @@ -251955,16 +248233,16 @@ - + - + - + - + @@ -251976,37 +248254,37 @@ - + - + - + - + - + - + - + - + - + @@ -252015,25 +248293,25 @@ - + - + - + - + - + - + - + @@ -252042,9 +248320,9 @@ - + - + @@ -252053,13 +248331,13 @@ - + - + - + @@ -252068,7 +248346,7 @@ - + @@ -252095,49 +248373,49 @@ - + - + - + - + - - + + - + - + - + - + - + - + - + @@ -252164,29 +248442,29 @@ - - - - - - + + + + + + - + - + - + - + - + @@ -252204,93 +248482,13 @@ - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -252301,34 +248499,34 @@ - + - + - + - + - + - + - + - + - + - + @@ -252349,13 +248547,13 @@ - + - + - + @@ -252367,34 +248565,30 @@ - + - + - + - + - - - - - + - + - + - + @@ -252403,267 +248597,34 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - + - + - + - + - + - + @@ -252693,19 +248654,19 @@ - + - + - + - + - + @@ -252720,28 +248681,28 @@ - + - + - + - + - + - + - + @@ -252753,21 +248714,21 @@ - + - + - + - + - + - + @@ -252776,10 +248737,10 @@ - + - + @@ -252800,58 +248761,28 @@ - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + - + - + - + @@ -252860,11 +248791,11 @@ - + - - + + @@ -252896,10 +248827,10 @@ - + - + @@ -252908,22 +248839,22 @@ - + - + - + - + - + - + @@ -252955,34 +248886,34 @@ - + - + - + - + - + - + - + @@ -252991,19 +248922,19 @@ - + - + - + - + - + @@ -253015,21 +248946,21 @@ - + - + - + - + - + - + @@ -253050,36 +248981,36 @@ - - + + - + - - + + - + - + - + - + - + - + - + @@ -253088,7 +249019,7 @@ - + @@ -253103,15 +249034,15 @@ - + - + - + - + @@ -253120,13 +249051,13 @@ - + - + - + @@ -253135,16 +249066,16 @@ - + - + - + - + @@ -253153,28 +249084,28 @@ - + - + - + - + - + - + @@ -253189,23 +249120,9 @@ - - - - - - - - - - - - - - - - - + + + @@ -253231,7 +249148,7 @@ - + @@ -253240,37 +249157,37 @@ - + - + - + - + - + - + - + - + - + @@ -253288,969 +249205,93 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - - - - - - - - - - - - - - - - - - - - - - - - + - + - - - - - - - + - - - - - - - - - - - - - - - + - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + @@ -254259,55 +249300,55 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -254328,7 +249369,7 @@ - + @@ -254511,10 +249552,10 @@ - + - + @@ -254523,7 +249564,7 @@ - + @@ -254532,10 +249573,10 @@ - + - + @@ -254568,25 +249609,25 @@ - + - + - + - + @@ -254595,32 +249636,32 @@ - + - + - + - + - + - + - + - + - + @@ -254643,187 +249684,110 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -254841,31 +249805,31 @@ - + - + - + - + - + - + - + - + - + @@ -254874,39 +249838,39 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -254915,141 +249879,44 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + - + - + - + - + - + - + @@ -255063,16 +249930,16 @@ - + - + - + - + @@ -255081,68 +249948,68 @@ - + - + - - - + + + - - + + - + - - + + - - + + - + - + - + - + - - + + - + - + @@ -255154,31 +250021,31 @@ - + - + - + - + - + - + - + - + @@ -255190,14 +250057,14 @@ - + - + - - + + @@ -255208,20 +250075,20 @@ - + - + - - + + - - - + + + @@ -255229,40 +250096,40 @@ - - - - + + + + - + - - + + - - - + + + - + - + - + - + - + @@ -255271,167 +250138,169 @@ - - - - + + + + - + - + - + - + - + - + - + - + - + - + - - - - + + + + - + - + - + - + - + + + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - - + + @@ -255440,24 +250309,24 @@ - + - + - + - + - - + + - + @@ -255495,15 +250364,15 @@ - + - + - + @@ -255524,81 +250393,79 @@ - - - - + + - - + + - - + + - + - - + + - + - - + + - - + + - + - + - + - - + + - - + + - + @@ -255606,161 +250473,161 @@ - + - + - + - + - - + + - - + + - + - + - + - + - - - + + + - - + + - + - - + + - - - - + + + + - - + + - + - - + + - - - - + + + + - - - + + + - + - - - + + + - - - + + + - - - + + + - + - - + + - + - + - - + + - - + + - + - - + + - + - + @@ -255768,19 +250635,19 @@ - + - - + + - - + + - + @@ -255789,76 +250656,76 @@ - + - - - + + + - - + + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - - + + - - + + @@ -255866,337 +250733,337 @@ - - - + + + - - + + - - + + - - - + + + - - - + + + - + - - + + - - - + + + - - + + - + - + - + - + - + - + - + - + - - + + - + - + - + - - + + - - + + - - + + - + - + - + - + - + - + - - + + - - + + - + - + - + - - - + + + - + - - + + - - + + - - + + - - + + - - + + - + - + - - + + - + - + - + - + - - + + - - + + - - - + + + - - + + - + - + - + - - - - + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - - + + + + + - + - - + + - - - - + + + + - - - + + + - + - + - - + + - + - + - + @@ -256232,28 +251099,28 @@ - + - + - + - + - + - + - + - + @@ -256262,7 +251129,7 @@ - + @@ -256280,16 +251147,16 @@ - + - + - + - + @@ -256340,7 +251207,7 @@ - + @@ -256367,16 +251234,16 @@ - + - + - + - + @@ -256385,22 +251252,22 @@ - + - + - + - + - + - + @@ -256409,37 +251276,37 @@ - + - + - + - + - + - + - + - + - + @@ -256448,10 +251315,10 @@ - + - + @@ -256463,16 +251330,16 @@ - + - + - + - + @@ -256484,37 +251351,37 @@ - + - + - + - + - + - + - + - + - + @@ -256523,25 +251390,25 @@ - + - + - + - + - + - + - + @@ -256551,8 +251418,8 @@ - - + + @@ -256560,25 +251427,25 @@ - + - + - + - + - + - + - + - + @@ -256587,23 +251454,23 @@ - + - + - + - + - + - + @@ -256625,21 +251492,21 @@ - + - + - + - + - + @@ -256648,29 +251515,29 @@ - + - + - + - + - + - + - + @@ -256682,7 +251549,7 @@ - + @@ -256691,10 +251558,10 @@ - - - - + + + + @@ -256705,9 +251572,9 @@ - + - + @@ -256719,9 +251586,9 @@ - - - + + + @@ -256730,67 +251597,67 @@ - - + + - - - + + + - + - - - - + + + + - - + + - + - - + + - - + + - + - - + + - + - + - + - + @@ -256826,28 +251693,28 @@ - + - + - + - + - + - + - + - + @@ -256856,7 +251723,7 @@ - + @@ -256874,16 +251741,16 @@ - + - + - + - + @@ -256934,7 +251801,7 @@ - + @@ -256961,16 +251828,16 @@ - + - + - + - + @@ -256979,22 +251846,22 @@ - + - + - + - + - + - + @@ -257003,37 +251870,37 @@ - + - + - + - + - + - + - + - + - + @@ -257042,10 +251909,10 @@ - + - + @@ -257057,16 +251924,16 @@ - + - + - + - + @@ -257078,37 +251945,37 @@ - + - + - + - + - + - + - + - + - + @@ -257117,25 +251984,25 @@ - + - + - + - + - + - + - + @@ -257145,180 +252012,180 @@ - - + + - - + + - + - - + + - - + + - + - - - - + + + + - + - - - - + + + + - - - + + + - - - + + + - + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - - - + + + - - - + + + - - - + + + - + - + @@ -257354,28 +252221,28 @@ - + - + - + - + - + - + - + - + @@ -257384,7 +252251,7 @@ - + @@ -257402,16 +252269,16 @@ - + - + - + - + @@ -257462,7 +252329,7 @@ - + @@ -257489,16 +252356,16 @@ - + - + - + - + @@ -257507,22 +252374,22 @@ - + - + - + - + - + - + @@ -257531,37 +252398,37 @@ - + - + - + - + - + - + - + - + - + @@ -257570,10 +252437,10 @@ - + - + @@ -257585,16 +252452,16 @@ - + - + - + - + @@ -257606,37 +252473,37 @@ - + - + - + - + - + - + - + - + - + @@ -257645,25 +252512,25 @@ - + - + - + - + - + - + - + @@ -257672,7 +252539,7 @@ - + @@ -257704,10 +252571,10 @@ - + - + @@ -257716,52 +252583,52 @@ - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + @@ -257787,7 +252654,7 @@ - + @@ -257796,37 +252663,37 @@ - + - + - + - + - + - + - + - + - + @@ -257844,975 +252711,93 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + - + - + @@ -258821,55 +252806,55 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -258890,7 +252875,7 @@ - + @@ -259073,10 +253058,10 @@ - + - + @@ -259085,7 +253070,7 @@ - + @@ -259094,10 +253079,10 @@ - + - + @@ -259130,25 +253115,25 @@ - + - + - + - + @@ -259157,10 +253142,32 @@ - + - + + + + + + + + + + + + + + + + + + + + + + + @@ -259183,187 +253190,108 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -259381,31 +253309,31 @@ - + - + - + - + - + - + - + - + - + @@ -259414,3530 +253342,119 @@ - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + + + + - + - - - - + - + + + + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + @@ -262946,2991 +253463,83 @@ - + - - + + - + - - + + - + - + - + - + - - - - + + + + + + + + - + - - - - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -265951,7 +253560,7 @@ - + @@ -265963,358 +253572,1370 @@ - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + - - + + + + + + + - - - + + + + + - + + + + + + + - + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - + - + - - + + - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - + - - - - - - - + - + + + + + + + - + - + - - - - - + + - + + + + + + + + + - + - - + + - - + + + + - + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + - + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - + + - + + + + - + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + + + + - + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -266323,7 +254944,7 @@ - + @@ -266332,10 +254953,10 @@ - + - + @@ -266359,19 +254980,19 @@ - + - + - + - + - + @@ -266380,288 +255001,3457 @@ - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + - - - - + - + - + - + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + + + + + + + + + + + + + + + + + + + + + + - + - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - + - - - - - - - - - - - - - - - - - - + - + - + - + - + - - - - + - - - - - - - - - - + - - - - - - - - - - - - + + + + + + + + + - - - - - - - - - - - - + + - - - + + + + - - - - - - - - - - - + + + + + + + - - - - - + + + + + - - - - - - + + + + - - - - - + + + + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + + + + - - - + + + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - + + + + - + + + + - + - - - - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + @@ -266697,28 +258487,28 @@ - + - + - + - + - + - + - + - + @@ -266727,7 +258517,7 @@ - + @@ -266745,16 +258535,16 @@ - + - + - + - + @@ -266805,7 +258595,7 @@ - + @@ -266832,16 +258622,16 @@ - + - + - + - + @@ -266850,22 +258640,22 @@ - + - + - + - + - + - + @@ -266874,37 +258664,37 @@ - + - + - + - + - + - + - + - + - + @@ -266913,10 +258703,10 @@ - + - + @@ -266928,16 +258718,16 @@ - + - + - + - + @@ -266949,37 +258739,37 @@ - + - + - + - + - + - + - + - + - + @@ -266988,25 +258778,25 @@ - + - + - + - + - + - + - + @@ -267015,141 +258805,1302 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - + + + + + + + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - + - + - + - + - - - + + + - + - + - - - - + + + + - - - + + + - - + + - - + + - + - + - + - + - + - + - - - + + + - + - + - + @@ -267166,8 +260117,8 @@ - - + + @@ -267178,7 +260129,7 @@ - + @@ -267187,1062 +260138,115 @@ - - + + - - + + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - + + - - - + + + - + - + - + - + - + - + - - + + - - + + - - - - + + + + - - - - - + + + + + - + - + - + - + - + - - + + - - + + - + - + @@ -268250,33 +260254,33 @@ - + - + - - + + - - + + - + - + - + - + @@ -268288,103 +260292,79 @@ - + - - + + - + - + - + - + - + - - + + - - + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - + - + @@ -268402,7 +260382,7 @@ - + @@ -268411,7 +260391,7 @@ - + @@ -268425,10 +260405,10 @@ - + - + @@ -268446,807 +260426,21 @@ - + - + - - - - + - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -269261,25 +260455,25 @@ - + - + - + - + - + - + @@ -269312,57 +260506,24 @@ - + - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + @@ -269380,10 +260541,10 @@ - + - + @@ -269392,201 +260553,93 @@ - + - + - + - + - + - + - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - + - + - + - - + + - + - + - + - + - - + + - - + + - - - + + + - - + + - + - + - - + + - + - + @@ -269595,46 +260648,46 @@ - + - - - + + + - - - - + + + + - + - - - - + + + + - - - + + + - + - + - + @@ -269646,60 +260699,60 @@ - + - + - - + + - + - + - + - - + + - - + + - - + + - + - - + + - - + + - - - + + + - + @@ -269707,10 +260760,10 @@ - + - + @@ -269719,9 +260772,9 @@ - + - + @@ -269730,7 +260783,7 @@ - + @@ -269745,40 +260798,40 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -269786,46 +260839,46 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -269847,31 +260900,31 @@ - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - + - - + + @@ -269885,9 +260938,9 @@ - + - + @@ -269896,190 +260949,155 @@ - - + + - + - - - - - + + + + + - + - - + + - - + + - - + + - - + + - - - + + + - - + + - + - - - - - + + + + + - - + + - - - - + + + + - - + + - - - + + + - - + + - + - - - - + + + + - - - + + + - - - - - + + + - - - - - - + + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - + + + - + - + - + - + - - - + + + - - + + - + - + @@ -270088,7 +261106,7 @@ - + @@ -270103,497 +261121,167 @@ - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - - + + - + - - - + + + - - + + - + - - - + + + - - + + - + - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - + - - + + - - + + - + @@ -270601,27 +261289,27 @@ - + - + - + - + - + - + - + @@ -270636,44 +261324,44 @@ - + - - - - + + + + - + - - - - + + + + - + - + - + - + - + - + @@ -270682,10 +261370,10 @@ - + - + @@ -270700,52 +261388,18 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + @@ -270763,7 +261417,7 @@ - + @@ -270772,7 +261426,7 @@ - + @@ -270786,10 +261440,10 @@ - + - + @@ -270807,31 +261461,31 @@ - + - + - + - - - + + + - + - + - + @@ -270839,63 +261493,63 @@ - + - - - + + + - + - - + + - - - + + + - - + + - + - - - + + + - - - - + + + + - - + + - - + + - + - + - + @@ -270904,34 +261558,34 @@ - + - + - + - + - + - + - + - - + + @@ -270957,7 +261611,7 @@ - + @@ -270966,37 +261620,37 @@ - + - + - + - + - + - + - + - + - + @@ -271014,120 +261668,120 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -271145,31 +261799,31 @@ - + - + - + - + - + - + - + - + - + @@ -271178,49 +261832,49 @@ - + - + - + - + - - - - - - + + + + + + - + - + - + - + - + - + - + @@ -271232,7 +261886,7 @@ - + @@ -271241,73 +261895,73 @@ - - + + - - + + - - + + - + - - + + - - + + - + - + - + - - + + - + - - + + - + - + @@ -271315,87 +261969,87 @@ - + - + - + - + - + - + - + - - - + + + - + - + - + - + - + - + - + - + - + - - - - + + + + - - + + - - + + - + - - + + - - + + @@ -271403,31 +262057,31 @@ - + - + - - + + - - - + + + - - - + + + - - + + @@ -271439,7 +262093,7 @@ - + @@ -271462,28 +262116,28 @@ - + - + - + - + - + - + - + - + @@ -271495,21 +262149,21 @@ - + - + - + - + - + - + @@ -271524,7 +262178,7 @@ - + @@ -271532,28 +262186,28 @@ - + - + - + - + - + - + - + @@ -271564,80 +262218,80 @@ - - - - - - - - + + + + + + + + - - - + + + - + - - + + - + - + - + - - + + - - + + - - - + + + - - - - + + + + - - - + + + - - - - + + + + - + @@ -271648,261 +262302,168 @@ - - - + + + - + - + - + - + - + + + + + + + + + + + + + + + + - + - - + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + @@ -271938,28 +262499,28 @@ - + - + - + - + - + - + - + - + @@ -271968,7 +262529,7 @@ - + @@ -271986,16 +262547,16 @@ - + - + - + - + @@ -272046,7 +262607,7 @@ - + @@ -272073,16 +262634,16 @@ - + - + - + - + @@ -272091,22 +262652,22 @@ - + - + - + - + - + - + @@ -272115,37 +262676,37 @@ - + - + - + - + - + - + - + - + - + @@ -272154,10 +262715,10 @@ - + - + @@ -272169,16 +262730,16 @@ - + - + - + - + @@ -272190,37 +262751,37 @@ - + - + - + - + - + - + - + - + - + @@ -272229,25 +262790,25 @@ - + - + - + - + - + - + - + @@ -272256,177 +262817,36 @@ - - + - - - - + - - - - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + - + - + @@ -272435,55 +262855,55 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -272504,7 +262924,7 @@ - + @@ -272687,10 +263107,10 @@ - + - + @@ -272699,7 +263119,7 @@ - + @@ -272708,10 +263128,10 @@ - + - + @@ -272744,25 +263164,25 @@ - + - + - + - + @@ -272771,10 +263191,10 @@ - + - + @@ -272797,187 +263217,110 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -272995,31 +263338,31 @@ - + - + - + - + - + - + - + - + - + @@ -273028,35 +263371,35 @@ - + - + - + - + - + - + - + - + - + @@ -273065,70 +263408,70 @@ - + - + - + - + - + - + - + - + - - - - - - - - - + + + + + + + + + - + - + - + - + - + - + - + - - - - - + + + + + @@ -273139,83 +263482,83 @@ - - - - - - - - - - - - - + + + + + + + + + + + + + - + - + - + - - + + - - - - - - - - - - + + + + + + + + + + - + - + - + - - - + + + - - - + + + - - - - - + + + + + - + - + - + @@ -273224,339 +263567,337 @@ - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - + - - + + - + - - + + - - - + + + - - - + + + - - - + + + - - - - - + + + + + - - - - + + + + - - + + - - - + + + - - - - - - + + + + + + - - - - + + + + - - - + + + - - + + - - - - - + + + + + - - + + - - - + + + - - - + + + - - - - - + + + + + - + - + - - + + - + - + - + - + - + - + - + - + - - - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - - - - + + + + - - - + + + - - + + - + - - + + - + - - - + + + - - + + - + - + - + - - + + - - - - + + + + - - + + - - - - + + + + - + - + - - - + + + - - - - + + + + - + @@ -273582,7 +263923,7 @@ - + @@ -273591,37 +263932,37 @@ - + - + - + - + - + - + - + - + - + @@ -273639,93 +263980,93 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -273734,55 +264075,55 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -273803,7 +264144,7 @@ - + @@ -273986,10 +264327,10 @@ - + - + @@ -273998,7 +264339,7 @@ - + @@ -274007,10 +264348,10 @@ - + - + @@ -274043,25 +264384,25 @@ - + - + - + - + @@ -274070,66 +264411,136 @@ - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -274147,31 +264558,31 @@ - + - + - + - + - + - + - + - + - + @@ -274180,36 +264591,36 @@ - + - + - + - + - - + + - + - + - + @@ -274218,70 +264629,70 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - - - + + + - + - + - + @@ -274290,10 +264701,10 @@ - + - + @@ -274302,67 +264713,67 @@ - + - + - + - - - + + + - + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - - + + @@ -274370,12 +264781,12 @@ - + - + - + @@ -274396,7 +264807,7 @@ - + @@ -274420,10 +264831,10 @@ - + - + @@ -274465,7 +264876,7 @@ - + @@ -274519,7 +264930,7 @@ - + @@ -274537,7 +264948,7 @@ - + @@ -274549,19 +264960,19 @@ - + - + - + - + - + @@ -274570,12 +264981,12 @@ - + - + - + @@ -274584,34 +264995,34 @@ - + - + - + - + - + - + - + - + - + @@ -274647,28 +265058,28 @@ - + - + - + - + - + - + - + - + @@ -274677,7 +265088,7 @@ - + @@ -274695,16 +265106,16 @@ - + - + - + - + @@ -274755,7 +265166,7 @@ - + @@ -274782,16 +265193,16 @@ - + - + - + - + @@ -274800,22 +265211,22 @@ - + - + - + - + - + - + @@ -274824,37 +265235,37 @@ - + - + - + - + - + - + - + - + - + @@ -274863,10 +265274,10 @@ - + - + @@ -274878,16 +265289,16 @@ - + - + - + - + @@ -274899,37 +265310,37 @@ - + - + - + - + - + - + - + - + - + @@ -274938,25 +265349,25 @@ - + - + - + - + - + - + - + @@ -274965,39 +265376,39 @@ - + - + - + - - - - - + + + + + - + - + - + - + - + @@ -275023,7 +265434,7 @@ - + @@ -275032,37 +265443,37 @@ - + - + - + - + - + - + - + - + - + @@ -275080,93 +265491,93 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -275175,55 +265586,55 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -275244,7 +265655,7 @@ - + @@ -275427,10 +265838,10 @@ - + - + @@ -275439,7 +265850,7 @@ - + @@ -275448,10 +265859,10 @@ - + - + @@ -275484,25 +265895,25 @@ - + - + - + - + @@ -275511,10 +265922,10 @@ - + - + @@ -275537,187 +265948,110 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -275735,31 +266069,31 @@ - + - + - + - + - + - + - + - + - + @@ -275768,27 +266102,27 @@ - + - + - + - + - + - + - + @@ -275797,19 +266131,19 @@ - + - + - + - + @@ -275827,27 +266161,27 @@ - + - + - + - - + + - - - + + + @@ -275859,10 +266193,10 @@ - + - + @@ -275873,66 +266207,66 @@ - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - + + + + + + + + + - + - + - + - - + + @@ -275940,39 +266274,39 @@ - + - - + + - - - - - - - + + + + + + + - - + + - + - + @@ -275981,7 +266315,7 @@ - + @@ -275990,373 +266324,343 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + @@ -276370,72 +266674,72 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + @@ -276444,38 +266748,38 @@ - + - - + + - + - - + + - - - + + + - + - + - + - + @@ -276496,7 +266800,7 @@ - + @@ -276520,10 +266824,10 @@ - + - + @@ -276565,7 +266869,7 @@ - + @@ -276619,7 +266923,7 @@ - + @@ -276637,7 +266941,7 @@ - + @@ -276649,19 +266953,19 @@ - + - + - + - + - + @@ -276670,12 +266974,12 @@ - + - + - + @@ -276684,28 +266988,28 @@ - + - + - + - + - + - + - - - + + + @@ -276731,7 +267035,7 @@ - + @@ -276740,37 +267044,37 @@ - + - + - + - + - + - + - + - + - + @@ -276788,64 +267092,64 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -276853,25 +267157,25 @@ - + - + - + - + - + - + @@ -276882,90 +267186,90 @@ - + - + - + - + - - + + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -276983,31 +267287,31 @@ - + - + - + - + - + - + - + - + - + @@ -277016,30 +267320,30 @@ - + - + - + - + - + - + - + - + @@ -277054,25 +267358,25 @@ - + - + - + - + - + - + @@ -277105,30 +267409,30 @@ - + - + - + - + - + - + - + - + @@ -277137,25 +267441,25 @@ - + - - - + + + - + - + - + @@ -277173,10 +267477,10 @@ - + - + @@ -277185,26 +267489,18 @@ - + - + - + - - - - - - - - - + - + @@ -277225,7 +267521,7 @@ - + @@ -277237,22 +267533,14 @@ - + - - - - - - - - - - - + + + - + @@ -277261,14 +267549,14 @@ - + - + - + - + @@ -277277,16 +267565,16 @@ - - - + + + - + - + - + @@ -277295,30 +267583,30 @@ - + - + - + - + - + - + - + - + - + @@ -277330,36 +267618,36 @@ - + - + - + - + - + - + - + - + - - - + + + - + @@ -277368,25 +267656,25 @@ - + - + - + - + - + - + - + @@ -277404,7 +267692,7 @@ - + @@ -277415,273 +267703,273 @@ - - - - - - - - - + + + + + + + + + - + - - - + + + - - + + - - + + - + - - + + - + - + - + - + - - - - + + + + - + - + - - + + - - - - + + + + - + - + - + - + - + - + - + - + - + - - + + - - + + - - + + - - - + + + - - - + + + - - + + - - + + - + - + - - + + - + - + - + - - + + - - - + + + - - - + + + - - + + - - + + - + - + - + - + - - + + - - - + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -277690,12 +267978,12 @@ - + - + @@ -277704,40 +267992,40 @@ - + - + - + - + - + - + - + - + - + - - + + - + - + @@ -277758,7 +268046,7 @@ - + @@ -277782,10 +268070,10 @@ - + - + @@ -277827,7 +268115,7 @@ - + @@ -277881,7 +268169,7 @@ - + @@ -277899,7 +268187,7 @@ - + @@ -277911,19 +268199,19 @@ - + - + - + - + - + @@ -277932,12 +268220,12 @@ - + - + - + @@ -277946,27 +268234,27 @@ - + - + - + - + - - - - - + + + + + - + - + @@ -277975,10 +268263,10 @@ - + - + @@ -278004,7 +268292,7 @@ - + @@ -278013,37 +268301,37 @@ - + - + - + - + - + - + - + - + - + @@ -278061,93 +268349,93 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -278156,55 +268444,55 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -278225,7 +268513,7 @@ - + @@ -278408,10 +268696,10 @@ - + - + @@ -278420,7 +268708,7 @@ - + @@ -278429,10 +268717,10 @@ - + - + @@ -278465,25 +268753,25 @@ - + - + - + - + @@ -278492,10 +268780,10 @@ - + - + @@ -278518,187 +268806,110 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -278716,31 +268927,31 @@ - + - + - + - + - + - + - + - + - + @@ -278749,24 +268960,24 @@ - + - + - + - + - + - + @@ -278775,159 +268986,158 @@ - - - - - + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - + + - - + + - - - + + + - + - + - + - + - - - - - + + + + - - - - + + + + - + - + - - + + - - - - + + + + - + - - - - - - + + + + + + - + - + - + - - + + - - + + - + - + - + - + @@ -278937,36 +269147,36 @@ - + - + - + - + - + - + - + - + - + - - + + - + @@ -278974,67 +269184,67 @@ - + - + - + - + - + - + - - + + - + - + - + - + - - - + + + - + - + - + @@ -279042,25 +269252,25 @@ - + - + - + - + - - + + - - + + @@ -279068,33 +269278,33 @@ - - + + - + - + - - + + - + - + @@ -279104,17 +269314,17 @@ - - + + - + - + - + @@ -279123,65 +269333,65 @@ - - + + - + - + - - - - + + + + - - - + + + - - - - + + + + - - - + + + - - + + - + - + - + - + @@ -279207,7 +269417,7 @@ - + @@ -279216,37 +269426,37 @@ - + - + - + - + - + - + - + - + - + @@ -279264,120 +269474,120 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -279395,31 +269605,31 @@ - + - + - + - + - + - + - + - + - + @@ -279428,1429 +269638,39 @@ - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + @@ -280859,18 +269679,18 @@ - + - + - + - + @@ -280879,19 +269699,19 @@ - + - + - + - + @@ -280909,33 +269729,1059 @@ - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -280944,13 +270790,13 @@ - + - + - + @@ -280962,55 +270808,55 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -281022,103 +270868,62 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -281130,19 +270935,136 @@ - - + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + @@ -281151,44 +271073,74 @@ - - + + - - + + - - + + - - - + + + - - + + - - + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + @@ -281209,7 +271161,7 @@ - + @@ -281233,10 +271185,10 @@ - + - + @@ -281278,7 +271230,7 @@ - + @@ -281332,7 +271284,7 @@ - + @@ -281350,7 +271302,7 @@ - + @@ -281362,19 +271314,19 @@ - + - + - + - + - + @@ -281383,12 +271335,12 @@ - + - + - + @@ -281397,106 +271349,446 @@ - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - - + + - - + + - - + + - - + + - - + + - + - - + + - - - + + + @@ -281507,18 +271799,18 @@ - + - + - + - + @@ -281528,18 +271820,18 @@ - - + + - + - + - + - + @@ -281550,46 +271842,46 @@ - + - - - - + + + + - + - - + + - - - - - + + + + + - + - + - + - + - + @@ -281598,7 +271890,7 @@ - + @@ -281607,39 +271899,39 @@ - + - + - + - + - + - + - + - + - + - + @@ -281664,13 +271956,13 @@ - - + + - + - + @@ -281680,10 +271972,10 @@ - + - + @@ -281695,43 +271987,43 @@ - + - + - + - - - + + + - + - + - + - + - + - + - + - + @@ -281755,12 +272047,12 @@ - - - - + + + + - + @@ -281769,7 +272061,7 @@ - + @@ -281778,118 +272070,118 @@ - + - - - - - - + + + + + + - + - + - + - - - - - - - - - - - + + + + + + + + + + + - + - + - + - - - - + + + + - + - - + + - + - + - + - - + + - + - + - + - + - + - + - + - + - + @@ -281897,19 +272189,19 @@ - + - + - - + + - + @@ -281919,101 +272211,101 @@ - + - + - + - + - + - + - + - + - - + + - + - + - - - + + + - - + + - + - + - + - + - + - + - + - + - + - + - - - + + + - - + + @@ -282030,17 +272322,17 @@ - + - + - + @@ -282050,19 +272342,19 @@ - + - - - + + + - - - + + + @@ -282073,34 +272365,34 @@ - - - - + + + + - + - + - + - + - + - + @@ -282109,128 +272401,108 @@ - - + + - + - + - + - - - + + + - - - + + + - + - + - - + + - + - - + + - + - + - + - + - + - + - + - + - + - - + + - - - - - + + + + + - + - - - - - - - - - - - - - - - - - - - - - + - - - + + + - - + + - - + + - + @@ -282238,57 +272510,57 @@ - + - - + + - + - - + + - - + + - - - + + + - - - + + + - - + + - - + + - + - - + + - + - + @@ -282314,7 +272586,7 @@ - + @@ -282323,37 +272595,37 @@ - + - + - + - + - + - + - + - + - + @@ -282371,93 +272643,93 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -282466,55 +272738,55 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -282535,7 +272807,7 @@ - + @@ -282718,10 +272990,10 @@ - + - + @@ -282730,7 +273002,7 @@ - + @@ -282739,10 +273011,10 @@ - + - + @@ -282775,25 +273047,25 @@ - + - + - + - + @@ -282802,10 +273074,10 @@ - + - + @@ -282828,187 +273100,110 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -283026,31 +273221,31 @@ - + - + - + - + - + - + - + - + - + @@ -283059,706 +273254,22 @@ - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -283766,31 +273277,30 @@ - - + - - + + - - + + - - + + - + - + @@ -283811,7 +273321,7 @@ - + @@ -283823,75 +273333,80 @@ - + - + - + - + - - - - - - - + + + + + + + - - + + - - + + - + - + - - - - - - + + + + + + + + + + + - - - - - + + + + + - + - + - + - + @@ -283903,7 +273418,7 @@ - + @@ -283912,82 +273427,82 @@ - + - + - + - + - + - + - + - + - + - + - + - - - + + + - - + + - + - + - + - + - + - + - + - + - + @@ -283999,60 +273514,60 @@ - - + + - - + + - - + + - + - - + + - - + + - - - + + + - + - + - + - + - - + + - + @@ -284078,7 +273593,7 @@ - + @@ -284087,37 +273602,37 @@ - + - + - + - + - + - + - + - + - + @@ -284135,83 +273650,205 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + + - + - + - + - + @@ -284253,81 +273890,344 @@ - + - + - - - + + + - - + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - + - + - + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - - - + + + + + + + - + - + - + @@ -284336,16 +274236,16 @@ - + - + - + - + @@ -284360,19 +274260,19 @@ - + - + - + - + - + @@ -284390,13 +274290,13 @@ - + - + - + @@ -284411,7 +274311,7 @@ - + @@ -284426,16 +274326,16 @@ - + - + - + - + @@ -284450,7 +274350,7 @@ - + @@ -284483,10 +274383,10 @@ - + - + @@ -284507,7 +274407,7 @@ - + @@ -284540,7 +274440,7 @@ - + @@ -284549,1353 +274449,115 @@ - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + - + - + - - - + + + - + - + - - - - - + + + + + - + - + - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + + - + @@ -285921,7 +274583,7 @@ - + @@ -285930,37 +274592,37 @@ - + - + - + - + - + - + - + - + - + @@ -285978,645 +274640,121 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -286634,31 +274772,31 @@ - + - + - + - + - + - + - + - + - + @@ -286667,202 +274805,105 @@ - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - + + + - - - - - - - + + + + + + + - + - + - - - - - - - - - + + + + + + + + + - - + + - - + + - + - + - - + + - + - + - + - + - + - + - + @@ -286880,15 +274921,15 @@ - + - + - + - + @@ -286897,19 +274938,19 @@ - + - + - + - + @@ -286918,53 +274959,24 @@ - + - + - - + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + @@ -286973,16 +274985,16 @@ - + - + - + - + @@ -286997,19 +275009,19 @@ - + - + - + - + - + @@ -287027,13 +275039,13 @@ - + - + - + @@ -287048,7 +275060,7 @@ - + @@ -287063,16 +275075,16 @@ - + - + - + - + @@ -287087,7 +275099,7 @@ - + @@ -287120,10 +275132,10 @@ - + - + @@ -287144,7 +275156,7 @@ - + @@ -287177,7 +275189,7 @@ - + @@ -287186,48 +275198,1208 @@ - + - + - + - + - + - + - + - + - + - + - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -287253,7 +276425,7 @@ - + @@ -287262,37 +276434,37 @@ - + - + - + - + - + - + - + - + - + @@ -287310,120 +276482,568 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - - + + - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + - + - - - - - + + - + + + + - + + + + - + + + + - + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + @@ -287441,31 +277061,31 @@ - + - + - + - + - + - + - + - + - + @@ -287474,65 +277094,2338 @@ - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - - - - + + + + - + - + - + - + - + - + @@ -287550,16 +279443,16 @@ - + - + - + - + @@ -287568,303 +279461,271 @@ - - - + + + - - - - + + + + - - - - + + + + - - + + - - + + - - + + - - + + - - - - + + + + - + - + - + - - - - + + + + - - - + + + - + - + - - + + - + - + - + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + + - + - + - + - + - - - - + + + + - + - - - + + + - + - - + + - + - - + + - - + + - - + + - - + + - - - + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - + - + - + - + - - - - - + + + + + - + - + - + @@ -288025,45 +279886,45 @@ - + - - + + - - - - - + + + + + - + - + - + - + - + - + - + @@ -288072,16 +279933,16 @@ - + - + - + - + @@ -288096,19 +279957,19 @@ - + - + - + - + - + @@ -288126,13 +279987,13 @@ - + - + - + @@ -288147,7 +280008,7 @@ - + @@ -288162,16 +280023,16 @@ - + - + - + - + @@ -288186,7 +280047,7 @@ - + @@ -288219,10 +280080,10 @@ - + - + @@ -288243,7 +280104,7 @@ - + @@ -288276,7 +280137,7 @@ - + @@ -288285,399 +280146,59 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + @@ -288724,61 +280245,61 @@ - - + + - + - + - + - + - + - + - + - + - + - - - + + + - + - - + + - - + + - + - + - + @@ -288796,16 +280317,16 @@ - + - + - + - + @@ -288814,171 +280335,171 @@ - + - - + + - + - + - + - + - + - + - + - - - - - - - - - + + + + + + + + + - - - + + + - - - - + + + + - - - - - + + + + + - - - - - - - + + + + + + + - - - + + + - - + + - - - - + + + + - + - - + + - + - + - + - + - + - - - - - - + + + + + + - + - + - - + + - + - + - + - + - + - + - + - + - + @@ -288990,30 +280511,30 @@ - + - + - + - + - + - + - + - + - + @@ -289022,16 +280543,16 @@ - + - + - + - + @@ -289046,19 +280567,19 @@ - + - + - + - + - + @@ -289076,13 +280597,13 @@ - + - + - + @@ -289097,7 +280618,7 @@ - + @@ -289112,16 +280633,16 @@ - + - + - + - + @@ -289136,7 +280657,7 @@ - + @@ -289169,10 +280690,10 @@ - + - + @@ -289193,7 +280714,7 @@ - + @@ -289226,7 +280747,7 @@ - + @@ -289235,178 +280756,178 @@ - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - + + + + + + + + + + - - + + - - + + - + - + - - + + - - + + - - - - - - - + + + + + + + - - + + - - + + - - + + - - + + - + - - + + - + - + - + - - - - + + + + - - - - - - - - + + + + + + + + - - - + + + - - - + + + - + - - + + - - - - + + + + - + - + - + @@ -289415,16 +280936,16 @@ - + - + - + - + @@ -289439,19 +280960,19 @@ - + - + - + - + - + @@ -289469,13 +280990,13 @@ - + - + - + @@ -289490,7 +281011,7 @@ - + @@ -289505,16 +281026,16 @@ - + - + - + - + @@ -289529,7 +281050,7 @@ - + @@ -289562,10 +281083,10 @@ - + - + @@ -289586,7 +281107,7 @@ - + @@ -289619,7 +281140,7 @@ - + @@ -289628,56 +281149,56 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -289695,16 +281216,16 @@ - + - + - + - + @@ -289713,67 +281234,66 @@ - - - - - + + + + - - - + + + - - + + - - - - + + + + - - - + + + - - + + - - - + + + - + - + - + - + - + - - + + - + - + @@ -289782,7 +281302,7 @@ - + @@ -289866,7 +281386,7 @@ - + @@ -289878,7 +281398,7 @@ - + @@ -289968,7 +281488,7 @@ - + @@ -290001,7 +281521,7 @@ - + @@ -290079,28 +281599,28 @@ - + - + - + - + - + - + - + @@ -290145,45 +281665,45 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -290192,25 +281712,25 @@ - + - + - + - + - + - + @@ -290240,42 +281760,42 @@ - + - + - + - + - + - + - + - + - + - + @@ -290335,27 +281855,27 @@ - + - + - + - + - + - + - + - + @@ -290364,7 +281884,7 @@ - + @@ -290373,7 +281893,7 @@ - + @@ -290382,7 +281902,7 @@ - + @@ -290424,7 +281944,7 @@ - + @@ -290433,44 +281953,44 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -290517,31 +282037,31 @@ - + - + - + - + - + - - + + @@ -290549,54 +282069,54 @@ - + - - + + - - + + - + - + - - + + - + - + - - + + - + - + - + - + @@ -290608,7 +282128,7 @@ - + @@ -290617,11 +282137,11 @@ - + - - + + @@ -290635,22 +282155,22 @@ - + - + - + - + - + @@ -290658,8 +282178,8 @@ - - + + @@ -290673,9 +282193,9 @@ - - - + + + @@ -290683,9 +282203,9 @@ - + - + @@ -290694,26 +282214,26 @@ - - - - + + + + - + - + - + - + - + @@ -290722,7 +282242,7 @@ - + @@ -290731,7 +282251,7 @@ - + @@ -290743,7 +282263,7 @@ - + @@ -290760,21 +282280,21 @@ - + - + - + - + - + - + @@ -290786,31 +282306,31 @@ - + - - + + - + - + - + - - - - + + + + @@ -290839,7 +282359,7 @@ - + @@ -290857,11 +282377,11 @@ - - + + - + @@ -290888,16 +282408,16 @@ - - + + - + - + - + @@ -290906,11 +282426,11 @@ - - + + - + @@ -290919,16 +282439,16 @@ - - + + - + - + @@ -290939,7 +282459,7 @@ - + @@ -290950,7 +282470,7 @@ - + @@ -290958,12 +282478,12 @@ - + - + - + @@ -290972,849 +282492,160 @@ - + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - - + + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - + + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + @@ -291840,7 +282671,7 @@ - + @@ -291849,37 +282680,37 @@ - + - + - + - + - + - + - + - + - + @@ -291897,93 +282728,93 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -291992,55 +282823,55 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -292061,7 +282892,7 @@ - + @@ -292244,10 +283075,10 @@ - + - + @@ -292256,7 +283087,7 @@ - + @@ -292265,10 +283096,10 @@ - + - + @@ -292301,25 +283132,25 @@ - + - + - + - + @@ -292328,214 +283159,66 @@ - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -292553,31 +283236,31 @@ - + - + - + - + - + - + - + - + - + @@ -292586,448 +283269,305 @@ - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - - + + + + + + + + + + + - + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - + - - - - + - + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + + - + - + - - + + - + - + - + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + @@ -293053,7 +283593,7 @@ - + @@ -293062,37 +283602,37 @@ - + - + - + - + - + - + - + - + - + @@ -293110,93 +283650,93 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -293205,55 +283745,55 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -293274,7 +283814,7 @@ - + @@ -293457,10 +283997,10 @@ - + - + @@ -293469,7 +284009,7 @@ - + @@ -293478,10 +284018,10 @@ - + - + @@ -293514,25 +284054,25 @@ - + - + - + - + @@ -293541,66 +284081,66 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -293618,31 +284158,31 @@ - + - + - + - + - + - + - + - + - + @@ -293651,301 +284191,301 @@ - + - + - + - + - - - - - + + + + + - - - + + + - - - - + + + + - - - - - + + + + + - + - + - - - + + + - - - + + + - + - - - + + + - - + + - - + + - - + + - + - + - - + + - + - + - + - - + + - + - + - + - + - - + + - + - + - + - + - + - - - - + + + + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -293966,13 +284506,13 @@ - + - + @@ -293981,766 +284521,127 @@ - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - + + - + - - - + + + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - - - + + + + - + - + - - - - - + + + + + - + - - - - - - + + + + + + - - - - - - - + + + + + + + - + - + @@ -294748,40 +284649,40 @@ - + - - + + - + - - + + - + - - + + - + - + - + - + @@ -294811,19 +284712,19 @@ - + - + - + - + - + @@ -294838,28 +284739,28 @@ - + - + - + - + - + - + - + @@ -294871,7 +284772,7 @@ - + @@ -294897,7 +284798,7 @@ - + @@ -294906,37 +284807,37 @@ - + - + - + - + - + - + - + - + - + @@ -294954,1148 +284855,93 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + @@ -296104,55 +284950,55 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -296173,7 +285019,7 @@ - + @@ -296356,10 +285202,10 @@ - + - + @@ -296368,7 +285214,7 @@ - + @@ -296377,10 +285223,10 @@ - + - + @@ -296413,25 +285259,25 @@ - + - + - + - + @@ -296440,10 +285286,842 @@ - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -296466,187 +286144,110 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -296664,31 +286265,31 @@ - + - + - + - + - + - + - + - + - + @@ -296697,27 +286298,27 @@ - + - + - + - + - + - + @@ -296733,33 +286334,33 @@ - + - + - + - + - + - + - + - + - + @@ -296792,15 +286393,15 @@ - + - + - + - + @@ -296812,27 +286413,27 @@ - - + + - + - + - - + + - + - + - + @@ -296841,16 +286442,16 @@ - + - + - + - + @@ -296865,19 +286466,19 @@ - + - + - + - + - + @@ -296895,13 +286496,13 @@ - + - + - + @@ -296916,7 +286517,7 @@ - + @@ -296931,16 +286532,16 @@ - + - + - + - + @@ -296955,7 +286556,7 @@ - + @@ -296988,10 +286589,10 @@ - + - + @@ -297012,7 +286613,7 @@ - + @@ -297045,7 +286646,7 @@ - + @@ -297054,45 +286655,53 @@ - + - + - + - + - + - + - + - + - + - + - + + + + + + + + + - + - + @@ -297101,19 +286710,19 @@ - + - + - + - + @@ -297131,1143 +286740,62 @@ - + - + - + - + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - - + + - - + + - - + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -298287,54 +286815,56 @@ - + - + - - - - + + + + - + - + - - + + - - + + + + - - - + + + - - - + + + - + - + - + - + @@ -298358,7 +286888,7 @@ - + @@ -298367,7 +286897,7 @@ - + @@ -298379,29 +286909,29 @@ - + - + - + - + - + - + - + - + @@ -298419,10 +286949,10 @@ - + - + @@ -298431,40 +286961,73 @@ - + - + - + - - - + + + - - + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + + - + - + @@ -298482,10 +287045,10 @@ - + - + @@ -298494,18 +287057,18 @@ - + - + - + - + - + @@ -298526,7 +287089,7 @@ - + @@ -298538,243 +287101,82 @@ - + - + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - + @@ -298800,7 +287202,7 @@ - + @@ -298809,37 +287211,37 @@ - + - + - + - + - + - + - + - + - + @@ -298857,93 +287259,378 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + - + - + - + @@ -298952,55 +287639,55 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -299021,7 +287708,7 @@ - + @@ -299204,10 +287891,10 @@ - + - + @@ -299216,7 +287903,7 @@ - + @@ -299225,10 +287912,10 @@ - + - + @@ -299261,25 +287948,25 @@ - + - + - + - + @@ -299288,66 +287975,137 @@ - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -299365,31 +288123,31 @@ - + - + - + - + - + - + - + - + - + @@ -299398,39 +288156,39 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -299439,129 +288197,143 @@ - + - - - - - - - - - - - - - - - - - - + + - + - + + + + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - + + - - - + + + - - + + - - - + + + - + @@ -299579,157 +288351,19 @@ - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -299755,7 +288389,7 @@ - + @@ -299764,37 +288398,37 @@ - + - + - + - + - + - + - + - + - + @@ -299812,759 +288446,112 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + - - - + + + - + - + - + - + - + - + - + - + @@ -300576,10 +288563,10 @@ - + - + @@ -300597,89 +288584,444 @@ - + - + - + - + - + - + - + - + - + - + - - + + - - - + + + - - + + - - + + - - + + - + - + - + - + - + - + - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -300705,7 +289047,7 @@ - + @@ -300714,37 +289056,37 @@ - + - + - + - + - + - + - + - + - + @@ -300762,93 +289104,93 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -300857,55 +289199,55 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -300926,7 +289268,7 @@ - + @@ -301109,10 +289451,10 @@ - + - + @@ -301121,7 +289463,7 @@ - + @@ -301130,10 +289472,10 @@ - + - + @@ -301166,25 +289508,25 @@ - + - + - + - + @@ -301193,10 +289535,10 @@ - + - + @@ -301219,188 +289561,111 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -301418,31 +289683,31 @@ - + - + - + - + - + - + - + - + - + @@ -301451,33 +289716,33 @@ - + - + - + - + - + - + - + - + @@ -301486,40 +289751,40 @@ - + - + - + - + - + - + - + - + - + @@ -301534,13 +289799,13 @@ - + - + - + @@ -301552,62 +289817,62 @@ - - + + - + - + - + - + - + - - + + - + - + - + - + - - + + @@ -301615,81 +289880,81 @@ - - + + - + - - - + + + - - - + + + - + - - - - + + + + - - - + + + - + - - - - + + + + - - - + + + - + - + - - + + - + - + - + - + @@ -301697,72 +289962,42 @@ - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + - + - - + + - + - + - + - - - + + + - + @@ -301789,78 +290024,602 @@ - - - - + + + + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + @@ -301869,65 +290628,65 @@ - - - + + + - - - - - - - - - - - - + + + + + - - + + + + + + + + + - - + + - - + + - - + + - + - + - + - + - + - + @@ -301957,10 +290716,10 @@ - + - + @@ -301972,10 +290731,10 @@ - + - + @@ -301984,7 +290743,7 @@ - + @@ -301996,8 +290755,8 @@ - - + + @@ -302023,7 +290782,7 @@ - + @@ -302032,37 +290791,37 @@ - + - + - + - + - + - + - + - + - + @@ -302080,186 +290839,64 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -302267,27 +290904,27 @@ - + - + - + - + - + - + - + - + @@ -302296,993 +290933,197 @@ - - + + - + - + - + - + - - + + - + - + - - - - - + + + + + - + - + - + - + - + - - - + + + - + - + - + - + - + - + - - - - - - - - - + - - - - + + + + - + - + - - + + - - + + - - + + - - - + + + - + - - + + - + - + - + - - + + - + - + - - + + - + - - - + + + - - - + + + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + @@ -303300,21 +291141,21 @@ - + - + - + - + - + - + @@ -303332,10 +291173,10 @@ - + - + @@ -303344,146 +291185,72 @@ - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - + + + - + - + - + - - - + + + - + - + - + - - - - + + + + - - + + - + @@ -303509,7 +291276,7 @@ - + @@ -303518,37 +291285,37 @@ - + - + - + - + - + - + - + - + - + @@ -303566,120 +291333,120 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -303697,31 +291464,31 @@ - + - + - + - + - + - + - + - + - + @@ -303730,39 +291497,39 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -303770,13 +291537,13 @@ - + - + - + @@ -303794,23 +291561,23 @@ - + - + - + - - + + - - - + + + - + @@ -303818,177 +291585,130 @@ - + - + - + - + - + - - - - - - - - + + + + + + + + - - - + + + - - + + - - - + + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + - - - + + + - + - + - + - + - + - + - + - + - + - + - - + + - + - - - + + + - - + + - - + + - + - + - + - + - + @@ -303997,13 +291717,13 @@ - + - + - + @@ -304015,55 +291735,55 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -304075,1713 +291795,57 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -305802,7 +291866,7 @@ - + @@ -305826,10 +291890,10 @@ - + - + @@ -305871,7 +291935,7 @@ - + @@ -305925,7 +291989,7 @@ - + @@ -305943,7 +292007,7 @@ - + @@ -305955,19 +292019,19 @@ - + - + - + - + - + @@ -305976,12 +292040,12 @@ - + - + - + @@ -305990,417 +292054,262 @@ - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + + + + - + + + + - + + + + - + + + + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + @@ -306409,16 +292318,16 @@ - + - + - + - + @@ -306433,19 +292342,19 @@ - + - + - + - + - + @@ -306463,13 +292372,13 @@ - + - + - + @@ -306484,7 +292393,7 @@ - + @@ -306499,16 +292408,16 @@ - + - + - + - + @@ -306523,7 +292432,7 @@ - + @@ -306556,10 +292465,10 @@ - + - + @@ -306580,7 +292489,7 @@ - + @@ -306613,7 +292522,7 @@ - + @@ -306622,107 +292531,57 @@ - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + @@ -306748,7 +292607,7 @@ - + @@ -306757,37 +292616,37 @@ - + - + - + - + - + - + - + - + - + @@ -306805,93 +292664,94 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + - + - + - + - + - + - + - + - + - + @@ -306900,55 +292760,55 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -306969,7 +292829,7 @@ - + @@ -307152,10 +293012,10 @@ - + - + @@ -307164,7 +293024,7 @@ - + @@ -307173,10 +293033,10 @@ - + - + @@ -307209,25 +293069,25 @@ - + - + - + - + @@ -307236,10 +293096,10 @@ - + - + @@ -307262,187 +293122,111 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -307460,31 +293244,31 @@ - + - + - + - + - + - + - + - + - + @@ -307493,37 +293277,2792 @@ - + - + - + - + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - + - + - + @@ -307535,24 +296074,24 @@ - + - + - + - + - + - + @@ -307564,24 +296103,24 @@ - + - + - + - + - + - + - + @@ -307590,28 +296129,28 @@ - + - + - + - + - + - + - + - + @@ -307620,10 +296159,10 @@ - + - + @@ -307632,7 +296171,7 @@ - + @@ -307641,24 +296180,24 @@ - - + + - - - + + + - + - + - + @@ -307667,25 +296206,25 @@ - - + + - - - - - + + + + + - - - + + + - + @@ -307699,7 +296238,7 @@ - + @@ -307717,59 +296256,59 @@ - + - + - + - + - + - + - + - - + + - - - + + + - + - + - + - + - + - + - + @@ -307778,25 +296317,25 @@ - + - + - + - + - + - + @@ -307826,42 +296365,42 @@ - + - + - + - + - + - + - + - + - + - + @@ -307921,27 +296460,27 @@ - + - + - + - + - + - + - + - + @@ -307950,7 +296489,7 @@ - + @@ -307959,7 +296498,7 @@ - + @@ -307968,7 +296507,7 @@ - + @@ -308010,7 +296549,7 @@ - + @@ -308019,36 +296558,36 @@ - + - + - + - + - + - + - + - + - + - + @@ -308095,8 +296634,54 @@ - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -308113,21 +296698,21 @@ - + - + - + - + - + - + @@ -308139,10 +296724,10 @@ - + - + @@ -308171,7 +296756,7 @@ - + @@ -308188,8 +296773,8 @@ - - + + @@ -308206,68 +296791,208 @@ - + - - + + - - - - - + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + + + + - - - - + + + + - - + + - - - - - + + + + + - + - + - + - + - + - + - + @@ -308276,122 +297001,122 @@ - - - - - - - - + + + + + + + + - + - + - - - + + + - - - - + + + + - - + + - + - - + + - - - - - + + + + + - - - + + + - + - + - + - + - + - + - + - + - + - - + + - + - + - - - - - + + + + + - + - + - + @@ -308400,16 +297125,16 @@ - + - + - + - + @@ -308424,19 +297149,19 @@ - + - + - + - + - + @@ -308454,13 +297179,13 @@ - + - + - + @@ -308475,7 +297200,7 @@ - + @@ -308490,16 +297215,16 @@ - + - + - + - + @@ -308514,7 +297239,7 @@ - + @@ -308547,10 +297272,10 @@ - + - + @@ -308571,7 +297296,7 @@ - + @@ -308604,7 +297329,7 @@ - + @@ -308613,47 +297338,47 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -308679,7 +297404,7 @@ - + @@ -308688,37 +297413,37 @@ - + - + - + - + - + - + - + - + - + @@ -308736,93 +297461,93 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -308831,55 +297556,55 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -308900,7 +297625,7 @@ - + @@ -309083,10 +297808,10 @@ - + - + @@ -309095,7 +297820,7 @@ - + @@ -309104,10 +297829,10 @@ - + - + @@ -309140,25 +297865,25 @@ - + - + - + - + @@ -309167,10 +297892,10 @@ - + - + @@ -309193,187 +297918,110 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -309391,31 +298039,31 @@ - + - + - + - + - + - + - + - + - + @@ -309424,43 +298072,76 @@ - + - + - + - + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - + - + - + - + - + @@ -309486,37 +298167,37 @@ - + - - + + - + - + - + - + - - + + - + - + @@ -309524,23 +298205,23 @@ - + - + - + - + - + @@ -309549,108 +298230,108 @@ - - + + - - - + + + - + - - + + - + - - + + - - - - + + + + - + - - - - + + + + - + - - - - + + + + - + - - + + - + - - + + - + - + - + - + - + - + - - - + + + - + - + - + - + - + @@ -309677,58 +298358,104 @@ - + - + - + - + - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - - + + @@ -309739,61 +298466,61 @@ - - - + + + - + - - - + + + - - - - + + + + - - + + - - + + - + - - + + - - + + - - - - + + + + - - + + - - + + - + @@ -309801,1557 +298528,30 @@ - + - - + + - + - - + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -311377,7 +298577,7 @@ - + @@ -311386,37 +298586,37 @@ - + - + - + - + - + - + - + - + - + @@ -311434,718 +298634,93 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - + - - - - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - + - - - - - - - - - - - - - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + @@ -312154,55 +298729,55 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -312223,7 +298798,7 @@ - + @@ -312406,10 +298981,10 @@ - + - + @@ -312418,7 +298993,7 @@ - + @@ -312427,10 +299002,10 @@ - + - + @@ -312463,25 +299038,25 @@ - + - + - + - + @@ -312490,1990 +299065,10 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -314496,187 +299091,110 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -314694,31 +299212,31 @@ - + - + - + - + - + - + - + - + - + @@ -314727,139 +299245,1618 @@ - + - + - + - + - - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + + + + - + + + + - - - - - - - + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -314885,7 +300882,7 @@ - + @@ -314894,37 +300891,37 @@ - + - + - + - + - + - + - + - + - + @@ -314942,120 +300939,497 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - - + + - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + - + - - - - - + + - + + + + - + + + + - + + + + - + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + @@ -315073,31 +301447,31 @@ - + - + - + - + - + - + - + - + - + @@ -315106,221 +301480,2079 @@ - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -315346,7 +303578,7 @@ - + @@ -315358,91 +303590,48 @@ - + - - - - - - - - - - - - - - - + + + + - - - - - - - - - - - - - - + + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - + - + + + + + + + + + + + + + + @@ -315468,7 +303657,7 @@ - + @@ -315477,37 +303666,37 @@ - + - + - + - + - + - + - + - + - + @@ -315525,120 +303714,120 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -315656,31 +303845,31 @@ - + - + - + - + - + - + - + - + - + @@ -315689,36 +303878,661 @@ - + - + - + - + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - + - + - + @@ -315730,24 +304544,24 @@ - + - + - + - + - + - + @@ -315762,24 +304576,24 @@ - + - + - + - + - + - + - + @@ -315788,10 +304602,10 @@ - + - + @@ -315807,303 +304621,29 @@ - - + + - - + + - - - - - + + + + + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -316129,7 +304669,7 @@ - + @@ -316138,37 +304678,37 @@ - + - + - + - + - + - + - + - + - + @@ -316186,93 +304726,93 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -316281,55 +304821,55 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -316350,7 +304890,7 @@ - + @@ -316533,10 +305073,10 @@ - + - + @@ -316545,7 +305085,7 @@ - + @@ -316554,10 +305094,10 @@ - + - + @@ -316590,25 +305130,25 @@ - + - + - + - + @@ -316617,1005 +305157,10 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -317638,187 +305183,110 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -317836,31 +305304,31 @@ - + - + - + - + - + - + - + - + - + @@ -317869,95 +305337,310 @@ - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - + + + - - - - - - - + + + + + + - - - - + + + + + + + + + + + + + + + + + - + - - + + - - + + - - + + - - + + - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - + @@ -317983,7 +305666,7 @@ - + @@ -317992,37 +305675,37 @@ - + - + - + - + - + - + - + - + - + @@ -318040,120 +305723,497 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - - + + - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + - + - - - - - + + - + + + + - + + + + - + + + + - + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + @@ -318171,31 +306231,31 @@ - + - + - + - + - + - + - + - + - + @@ -318204,62 +306264,425 @@ - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + + - - - - - - + + + + + + + + + + + + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + @@ -318283,13 +306706,13 @@ - + - + @@ -318315,7 +306738,7 @@ - + @@ -318324,37 +306747,37 @@ - + - + - + - + - + - + - + - + - + @@ -318372,120 +306795,120 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -318503,31 +306926,31 @@ - + - + - + - + - + - + - + - + - + @@ -318536,22 +306959,55 @@ - + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -318571,28 +307027,28 @@ - + - + - + - + - + - + - + @@ -318611,167 +307067,147 @@ - - - + + + - - - + + + - + - + - + - + - + - + - + - + - + - + - - - - + + + + - - - + + + - - + + - + - + - + + + - + - + - + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - + + @@ -318797,7 +307233,7 @@ - + @@ -318806,37 +307242,37 @@ - + - + - + - + - + - + - + - + - + @@ -318854,120 +307290,120 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -318985,31 +307421,31 @@ - + - + - + - + - + - + - + - + - + @@ -319018,155 +307454,153 @@ - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - - + + - + - + - - + + - + - - + + - + - - - - + + + + - + - - - + + + - - + + - - + + - - + + - - - - - + + + + + - - + + - + - - - - + + + + - - - - + + + + - + - - + + - - - - + + + + @@ -319180,163 +307614,110 @@ - + - - + + - + - - + + - + - - + + - - + + - - + + - - - + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - - + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -319362,7 +307743,7 @@ - + @@ -319371,37 +307752,37 @@ - + - + - + - + - + - + - + - + - + @@ -319419,198 +307800,120 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -319628,31 +307931,31 @@ - + - + - + - + - + - + - + - + - + @@ -319661,127 +307964,194 @@ - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - + + + + + + + + + - - - + + + - - - - - - - + + + + + + + - - - + + + - - - - - - + + + + + + - - + + - + - - - + + + - - - - - - + + + + + + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + @@ -319789,441 +308159,312 @@ - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - + + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - - + + + - + - + - + @@ -320232,7 +308473,7 @@ - + @@ -320250,16 +308491,16 @@ - + - + - + - + @@ -320271,40 +308512,40 @@ - + - + - + - + - + - + - + - + - + - + @@ -320316,7 +308557,7 @@ - + @@ -320327,19 +308568,19 @@ - + - + - + - + @@ -320348,10 +308589,10 @@ - + - + @@ -320390,10 +308631,10 @@ - + - + @@ -320435,208 +308676,208 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - + + + + + - - + + - + - + - + @@ -320672,28 +308913,28 @@ - + - + - + - + - + - + - + - + @@ -320702,7 +308943,7 @@ - + @@ -320720,16 +308961,16 @@ - + - + - + - + @@ -320780,7 +309021,7 @@ - + @@ -320807,16 +309048,16 @@ - + - + - + - + @@ -320825,22 +309066,22 @@ - + - + - + - + - + - + @@ -320849,37 +309090,37 @@ - + - + - + - + - + - + - + - + - + @@ -320888,10 +309129,10 @@ - + - + @@ -320903,16 +309144,16 @@ - + - + - + - + @@ -320924,37 +309165,37 @@ - + - + - + - + - + - + - + - + - + @@ -320963,25 +309204,25 @@ - + - + - + - + - + - + - + @@ -320990,18 +309231,18 @@ - + - + - + - + @@ -321040,13 +309281,13 @@ - + - + @@ -321061,13 +309302,13 @@ - + - + - + @@ -321082,16 +309323,16 @@ - + - + - + @@ -321100,145 +309341,145 @@ - + - + - - - + + + - + - - - + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - - + + - - + + - + - - - + + + - - + + - - + + - - - - + + + + - + - + - + - + @@ -321264,7 +309505,7 @@ - + @@ -321273,37 +309514,37 @@ - + - + - + - + - + - + - + - + - + @@ -321321,198 +309562,121 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -321530,31 +309694,31 @@ - + - + - + - + - + - + - + - + - + @@ -321563,24 +309727,24 @@ - + - + - + - + - + - + @@ -321590,20 +309754,20 @@ - + - - + + - + - + @@ -321611,7 +309775,7 @@ - + @@ -321626,37 +309790,37 @@ - + - + - + - + - + - + - + - + - + @@ -321668,10 +309832,10 @@ - + - + @@ -321683,10 +309847,10 @@ - + - + @@ -321719,7 +309883,7 @@ - + @@ -321866,7 +310030,7 @@ - + @@ -321935,79 +310099,79 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -322016,7 +310180,7 @@ - + @@ -322025,10 +310189,10 @@ - + - + @@ -322070,7 +310234,7 @@ - + @@ -322082,28 +310246,28 @@ - + - + - + - + - + - + - + @@ -322121,87 +310285,87 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - - + + - - + + - - + + - + @@ -322215,17 +310379,17 @@ - + - - + + - + - + @@ -322238,7 +310402,7 @@ - + @@ -322253,19 +310417,19 @@ - + - + - + @@ -322280,13 +310444,13 @@ - + - + @@ -322295,7 +310459,7 @@ - + @@ -322303,8 +310467,8 @@ - - + + @@ -322324,7 +310488,7 @@ - + @@ -322356,96 +310520,96 @@ - - + + - - + + - - - - - - - - - - + + + + + + + + + + - + - + - + - + - + - + - + - - + + - - + + - + - - + + - + - + - + - + - + - + - + - + @@ -322453,25 +310617,25 @@ - + - + - + - + @@ -322498,10 +310662,10 @@ - + - + @@ -322561,19 +310725,19 @@ - + - + - + - + @@ -322600,34 +310764,34 @@ - + - + - + - + - + - + - + - + - + @@ -322636,121 +310800,121 @@ - + - + - + - + - + - - - - - - - + + + + + + + - + - + - + - + - + - - + + - - - + + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - - - + + + + - + - + - + - + @@ -322774,12 +310938,12 @@ - + - + - + @@ -322800,10 +310964,10 @@ - + - + @@ -322815,19 +310979,19 @@ - + - + - + - + @@ -322842,7 +311006,7 @@ - + @@ -322850,10 +311014,10 @@ - + - + @@ -322862,16 +311026,16 @@ - - + + - + - + - + @@ -322883,22 +311047,22 @@ - + - + - + - + @@ -322931,7 +311095,7 @@ - + @@ -323033,10 +311197,10 @@ - + - + @@ -323084,31 +311248,31 @@ - + - + - + - + - + - + - + - + - + @@ -323120,14 +311284,14 @@ - + - - + + @@ -323138,115 +311302,115 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - + + + + + + + + + + - + - + - + - - - + + + - - - + + + - - + + - - + + - + - - + + - - + + - - + + - + @@ -323257,15 +311421,15 @@ - + - + - + - + @@ -323274,120 +311438,120 @@ - - - - - + + + + + - + - + - - - + + + - - - + + + - + - - - + + + - + - + - + - + - + - + - + - - - + + + - - + + - - + + - - + + - + - - + + - - + + - + - - - + + + - - - + + + - + @@ -323398,8 +311562,8 @@ - - + + @@ -323407,42 +311571,42 @@ - + - + - + - + - + - + - + - + @@ -323453,13 +311617,13 @@ - + - + @@ -323471,45 +311635,45 @@ - + - + - + - + - + - + - + - + - + @@ -323538,541 +311702,24 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - - + + - + - + - + - + - + @@ -324080,7 +311727,7 @@ - + @@ -324089,13 +311736,13 @@ - + - + @@ -324113,7 +311760,7 @@ - + @@ -324131,13 +311778,13 @@ - + - + @@ -324161,31 +311808,31 @@ - + - + - + - + - + - + - + - + - + @@ -324195,83 +311842,83 @@ - - - - + + + + - - + + - + - + - + - + - + - + - + - + - - + + - - - - + + + + - + - - + + - - + + - + - + - + - + - + - + @@ -324289,43 +311936,43 @@ - - + + - + - - + + - - - + + + - + - + - + - + - + - + @@ -324343,13 +311990,13 @@ - + - + @@ -324358,50 +312005,50 @@ - + - + - + - - + + - - + + - - + + - - - + + + - + - + - + - + - + - + @@ -324428,13 +312075,13 @@ - + - + @@ -324470,13 +312117,13 @@ - + - + @@ -324494,16 +312141,16 @@ - + - + - + @@ -324521,16 +312168,16 @@ - + - + - + @@ -324539,43 +312186,43 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -324614,19 +312261,19 @@ - + - + - + - + - - + + @@ -324634,11 +312281,11 @@ - - - + + + - + @@ -324662,7 +312309,7 @@ - + @@ -324670,17 +312317,17 @@ - - - - - + + + + + - + @@ -324700,12 +312347,12 @@ - + - + - + @@ -324720,7 +312367,7 @@ - + @@ -324731,13 +312378,13 @@ - - - - - - - + + + + + + + @@ -324760,24 +312407,24 @@ - + - + - + - + - + - + @@ -324786,16 +312433,16 @@ - - + + - + - + - + @@ -324804,16 +312451,16 @@ - + - + - + @@ -324822,43 +312469,19 @@ - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -324869,7 +312492,7 @@ - + @@ -324877,16 +312500,16 @@ - + - - + + - + @@ -324895,10 +312518,10 @@ - + - + @@ -324907,43 +312530,43 @@ - + - + - + - + - + - + - + - + - + @@ -324964,50 +312587,50 @@ - + - + - + - - + + - - + + - + - + - + - + - + - - + + - - + + @@ -325015,32 +312638,32 @@ - - + + - + - + - + - - + + - + - + @@ -325076,28 +312699,28 @@ - + - + - + - + - + - + - + - + @@ -325106,7 +312729,7 @@ - + @@ -325124,16 +312747,16 @@ - + - + - + - + @@ -325184,7 +312807,7 @@ - + @@ -325211,16 +312834,16 @@ - + - + - + - + @@ -325229,22 +312852,22 @@ - + - + - + - + - + - + @@ -325253,37 +312876,37 @@ - + - + - + - + - + - + - + - + - + @@ -325292,10 +312915,10 @@ - + - + @@ -325307,16 +312930,16 @@ - + - + - + - + @@ -325328,37 +312951,37 @@ - + - + - + - + - + - + - + - + - + @@ -325367,25 +312990,25 @@ - + - + - + - + - + - + - + @@ -325394,18 +313017,18 @@ - + - + - + - + @@ -325426,10 +313049,10 @@ - + - + @@ -325441,22 +313064,22 @@ - + - + - + - + - + @@ -325465,13 +313088,13 @@ - + - + - + @@ -325507,7 +313130,7 @@ - + @@ -325516,10 +313139,10 @@ - + - + @@ -325537,26 +313160,26 @@ - - - - + + + + - + - + - + - + - + @@ -325568,30 +313191,30 @@ - + - + - + - + - + - - + + @@ -325599,7 +313222,7 @@ - + @@ -325625,39 +313248,39 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -325666,13 +313289,13 @@ - + - + @@ -325681,12 +313304,12 @@ - + - + - + @@ -325719,7 +313342,7 @@ - + @@ -325728,14 +313351,14 @@ - + - - + + @@ -325749,24 +313372,24 @@ - + - - - + + + - + - - + + - + - + @@ -325775,7 +313398,7 @@ - + @@ -325786,47 +313409,47 @@ - + - + - + - - + + - - - + + + - + - + - + - + - + - + - + @@ -325835,22 +313458,22 @@ - + - - + + - + - + - + - + @@ -325859,7 +313482,7 @@ - + @@ -325874,42 +313497,42 @@ - + - + - - + + - - - + + + - + - + - + - - - + + + - + - + - + @@ -325918,19 +313541,19 @@ - + - + - + - + @@ -325944,8 +313567,8 @@ - - + + @@ -325959,29 +313582,29 @@ - + - + - + - + - + - - + + - + @@ -325989,92 +313612,92 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - - + + - - - + + + - - + + - + @@ -326082,16 +313705,16 @@ - + - + - + - + @@ -326100,46 +313723,46 @@ - + - + - + - - + + - + - + - - - + + + @@ -326147,24 +313770,24 @@ - + - + - + - + - + - + - + @@ -326176,7 +313799,7 @@ - + @@ -326187,7 +313810,7 @@ - + @@ -326195,15 +313818,15 @@ - + - + - + - + @@ -326218,18 +313841,18 @@ - + - - + + - - - + + + @@ -326237,28 +313860,28 @@ - + - + - + - + - + - + - + - + @@ -326267,7 +313890,7 @@ - + @@ -326276,15 +313899,16 @@ - + - + + - + @@ -326293,22 +313917,22 @@ - + - + - + - + - + - + @@ -326320,10 +313944,10 @@ - + - + @@ -326335,37 +313959,37 @@ - + - + - + - + - + - + - + - + @@ -326377,19 +314001,19 @@ - + - + - + - + @@ -326398,13 +314022,13 @@ - + - + @@ -326416,25 +314040,25 @@ - + - + - + - + - + - + @@ -326455,18 +314079,18 @@ - + - + - + - + @@ -326487,7 +314111,7 @@ - + @@ -326496,7 +314120,7 @@ - + @@ -326505,7 +314129,7 @@ - + @@ -326526,41 +314150,41 @@ - - - + + + - + - + - + - + - - - + + + - + - + - - - + + + @@ -326580,23 +314204,23 @@ - - - + + + - + - + - + - + @@ -326604,13 +314228,13 @@ - - + + - + - + @@ -326631,7 +314255,7 @@ - + @@ -326655,10 +314279,10 @@ - + - + @@ -326700,7 +314324,7 @@ - + @@ -326754,7 +314378,7 @@ - + @@ -326772,7 +314396,7 @@ - + @@ -326784,19 +314408,19 @@ - + - + - + - + - + @@ -326805,12 +314429,12 @@ - + - + - + @@ -326819,33 +314443,33 @@ - + - + - + - + - + - + - - - - - - + + + + + + - + @@ -326853,7 +314477,7 @@ - + @@ -326885,10 +314509,10 @@ - + - + @@ -326896,7 +314520,7 @@ - + @@ -326917,342 +314541,342 @@ - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - + + + + @@ -327260,32 +314884,32 @@ - + - + - + - - - - - - - - - - - - + + + + + + + + + + + + - + - + @@ -327294,25 +314918,25 @@ - + - + - + - + - + @@ -327324,22 +314948,22 @@ - + - + - + - + - + @@ -327351,33 +314975,33 @@ - + - + - + - + - + - + - + - + - + - + @@ -327404,13 +315028,13 @@ - + - + @@ -327421,19 +315045,19 @@ - + - + - + @@ -327442,16 +315066,16 @@ - + - + - + @@ -327465,7 +315089,7 @@ - + @@ -327473,93 +315097,93 @@ - + - + - + - + - - + + - - - + + + - + - + - + - + - + - + - + - + - + - + - + - - + + - - - - - - - - + + + + + + + + - + - + @@ -327589,10 +315213,10 @@ - + - + @@ -327601,25 +315225,25 @@ - + - + - + - + @@ -327634,7 +315258,7 @@ - + @@ -327643,10 +315267,10 @@ - + - + @@ -327655,25 +315279,25 @@ - + - + - + - + - - - + + + - + @@ -327682,9 +315306,9 @@ - - - + + + @@ -327710,25 +315334,25 @@ - + - + - + - + - + - + @@ -327746,16 +315370,16 @@ - + - + - + @@ -327767,13 +315391,13 @@ - + - + - + @@ -327794,13 +315418,13 @@ - + - + - + @@ -327815,7 +315439,7 @@ - + @@ -327841,7 +315465,7 @@ - + @@ -327852,7 +315476,7 @@ - + @@ -327860,7 +315484,7 @@ - + @@ -327877,10 +315501,10 @@ - + - + @@ -327918,13 +315542,13 @@ - - - - - - - + + + + + + + @@ -327959,10 +315583,10 @@ - - - - + + + + @@ -328027,7 +315651,7 @@ - + @@ -328042,7 +315666,7 @@ - + @@ -328051,17 +315675,17 @@ - - - - - - + + + + + + - + - + @@ -328079,7 +315703,7 @@ - + @@ -328100,13 +315724,13 @@ - + - + @@ -328115,17 +315739,17 @@ - - - - + + + + - + - - - + + + @@ -328136,7 +315760,7 @@ - + @@ -328148,17 +315772,17 @@ - + - + - - - + + + - + @@ -328173,7 +315797,7 @@ - + @@ -328181,14 +315805,14 @@ - - - - - - + + + + + + - + @@ -328197,10 +315821,10 @@ - + - + @@ -328215,28 +315839,28 @@ - + - + - + - + - + - + - + @@ -328245,38 +315869,38 @@ - + - + - + - - - - + + + + - + - + - + - + @@ -328285,29 +315909,29 @@ - + - - - + + + - + - + - + - + @@ -328316,35 +315940,35 @@ - + - + - + - + - + - + - - - + + + - + - + @@ -328356,14 +315980,14 @@ - - - + + + - + - + @@ -328375,32 +315999,32 @@ - - - + + + - + - + - + - + - + - + - + @@ -328409,13 +316033,13 @@ - + - + - + @@ -328430,34 +316054,34 @@ - + - + - + - + - + - + - + - + @@ -328466,7 +316090,7 @@ - + @@ -328475,21 +316099,21 @@ - + - + - + - + - + @@ -328498,30 +316122,30 @@ - + - + - + - - - - - + + + + + - + - + - + - + @@ -328551,34 +316175,34 @@ - + - + - + - + - - - - - - - - - - - + + + + + + + + + + + - + @@ -328602,41 +316226,41 @@ - + - - - + + + - + - + - + - + - + - - - - - + + + + + - + @@ -328645,7 +316269,7 @@ - + @@ -328660,35 +316284,35 @@ - + - - - - - - - - - - - - + + + + + + + + + + + + - + - + - + - - - - + + + + @@ -328696,25 +316320,25 @@ - - - - - - + + + + + + - + - - - + + + @@ -328722,49 +316346,49 @@ - - + + - + - + - + - + - + - - - - + + + + - + - + - + - + @@ -328773,7 +316397,7 @@ - + @@ -328785,20 +316409,20 @@ - - - + + + - + - + - + @@ -328807,11 +316431,11 @@ - - + + - + @@ -328820,18 +316444,18 @@ - + - - - - - - - - + + + + + + + + @@ -328839,14 +316463,14 @@ - - - + + + - + - + @@ -328867,13 +316491,13 @@ - + - + @@ -328882,7 +316506,7 @@ - + @@ -328891,16 +316515,16 @@ - + - + - + @@ -328915,7 +316539,7 @@ - + @@ -328923,48 +316547,48 @@ - + - + - - - - - - - - - + + + + + + + + + - + - + - + - - - - + + + + - + - + - + @@ -328973,18 +316597,18 @@ - + - + - - - - + + + + @@ -329016,9 +316640,9 @@ - - - + + + @@ -329035,35 +316659,35 @@ - + - + - + - + - + - + - + - + - + @@ -329093,7 +316717,7 @@ - + @@ -329101,717 +316725,717 @@ - - + + - - - - + + + + - + - + - - - - - + + + + + - + - + - + - + - + - + - + - + - + - - + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - - + + + + + - - - - + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - + + + + - - - - + + + + - - - + + + - - - - + + + + - + - - - - + + + + - + - - - - + + + + - - - - - + + + + + - - - - + + + + - - - - + + + + - - - + + + - - - + + + - + - - - + + + - - + + - - - + + + - - - + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - + + + - - - - - + + + + + - - - - + + + + - - - + + + - - - + + + - + - - - + + + - - - + + + - - - + + + - - - + + + - + - - - + + + - + - - - + + + - + - - - + + + - - + + - - - + + + - + - + - - - + + + - - - - - - + + + + + + - - + + - - + + - - - - + + + + - - - + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - + + + - - - - + + + + - + - - - + + + - - - + + + - + - + - - + + - - - - + + + + - - - + + + - - + + - - - + + + - - - - + + + + - - - + + + - - - + + + - - + + - - - + + + - + - + - + - + - + - + - + - + @@ -329829,120 +317453,120 @@ - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - - - - - - - - + + + + + + + + - - + + - + - + - - + + - - + + - + - + - - + + - + - + - + - + - + - + - + @@ -329969,13 +317593,13 @@ - + - + @@ -330011,13 +317635,13 @@ - + - + @@ -330035,16 +317659,16 @@ - + - + - + @@ -330062,16 +317686,16 @@ - + - + - + @@ -330080,43 +317704,43 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -330155,13 +317779,13 @@ - + - + - + @@ -330184,27 +317808,27 @@ - + - + - + - + - + - + - + @@ -330213,16 +317837,16 @@ - + - + - + @@ -330231,25 +317855,25 @@ - + - + - + - - + + - + @@ -330258,10 +317882,10 @@ - + - + @@ -330270,43 +317894,43 @@ - + - + - + - + - + - + - + - + - + @@ -330327,19 +317951,19 @@ - + - - + + - + - + @@ -330375,28 +317999,28 @@ - + - + - + - + - + - + - + - + @@ -330405,7 +318029,7 @@ - + @@ -330423,16 +318047,16 @@ - + - + - + - + @@ -330483,7 +318107,7 @@ - + @@ -330510,16 +318134,16 @@ - + - + - + - + @@ -330528,22 +318152,22 @@ - + - + - + - + - + - + @@ -330552,37 +318176,37 @@ - + - + - + - + - + - + - + - + - + @@ -330591,10 +318215,10 @@ - + - + @@ -330606,16 +318230,16 @@ - + - + - + - + @@ -330627,37 +318251,37 @@ - + - + - + - + - + - + - + - + - + @@ -330666,25 +318290,25 @@ - + - + - + - + - + - + - + @@ -330693,18 +318317,18 @@ - + - + - + - + @@ -330725,10 +318349,10 @@ - + - + @@ -330740,22 +318364,22 @@ - + - + - + - + - + @@ -330764,13 +318388,13 @@ - + - + - + @@ -330806,7 +318430,7 @@ - + @@ -330815,31 +318439,31 @@ - + - - - + + + - + - + - + - + - + - + - + @@ -330848,22 +318472,22 @@ - + - - + + - + - + - + - + @@ -330872,7 +318496,7 @@ - + @@ -330887,26 +318511,26 @@ - + - - - + + + - + - + - + - + - + @@ -330914,45 +318538,45 @@ - + - + - + - + - + - + - - - - + + + + - - - - - - - + + + + + + + - - + + - + @@ -330960,22 +318584,22 @@ - + - - + + - + - + - + - + - + @@ -331000,35 +318624,35 @@ - + - - + + - + - + - + - + - + - - + + - + @@ -331036,52 +318660,52 @@ - + - - + + - - - + + + - - + + - + - - - + + + - + - + - - + + - - + + @@ -331089,676 +318713,75 @@ - - + + - - + + - + - - + + - + - + - + - - + + - + - + - + - - + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - - - - - + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -331785,13 +318808,13 @@ - + - + @@ -331827,13 +318850,13 @@ - + - + @@ -331851,16 +318874,16 @@ - + - + - + @@ -331878,16 +318901,16 @@ - + - + - + @@ -331896,43 +318919,43 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -331971,13 +318994,847 @@ - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -332000,24 +319857,24 @@ - + - + - + - + - + @@ -332026,10 +319883,10 @@ - + - + @@ -332038,43 +319895,43 @@ - + - + - + - + - + - + - + - + - + @@ -332095,18 +319952,18 @@ - + - + - + - + @@ -332142,28 +319999,28 @@ - + - + - + - + - + - + - + - + @@ -332172,7 +320029,7 @@ - + @@ -332190,16 +320047,16 @@ - + - + - + - + @@ -332250,7 +320107,7 @@ - + @@ -332277,16 +320134,16 @@ - + - + - + - + @@ -332295,22 +320152,22 @@ - + - + - + - + - + - + @@ -332319,37 +320176,37 @@ - + - + - + - + - + - + - + - + - + @@ -332358,10 +320215,10 @@ - + - + @@ -332373,16 +320230,16 @@ - + - + - + - + @@ -332394,37 +320251,37 @@ - + - + - + - + - + - + - + - + - + @@ -332433,25 +320290,25 @@ - + - + - + - + - + - + - + @@ -332460,18 +320317,18 @@ - + - + - + - + @@ -332492,10 +320349,10 @@ - + - + @@ -332507,22 +320364,22 @@ - + - + - + - + - + @@ -332531,13 +320388,13 @@ - + - + - + @@ -332573,7 +320430,7 @@ - + @@ -332582,31 +320439,31 @@ - + - - - + + + - + - + - + - + - + - + - + @@ -332615,11 +320472,11 @@ - + - - + + @@ -332651,10 +320508,10 @@ - + - + @@ -332663,22 +320520,22 @@ - + - + - + - + - + - + @@ -332710,34 +320567,34 @@ - + - + - + - + - + - + - + @@ -332746,19 +320603,19 @@ - + - + - + - + - + @@ -332770,21 +320627,21 @@ - + - + - + - + - + - + @@ -332805,36 +320662,20 @@ - - - - - - - - - - - - - - - - - - - + + + - + - + - + - + @@ -332843,7 +320684,7 @@ - + @@ -332858,15 +320699,15 @@ - + - + - + - + @@ -332875,13 +320716,13 @@ - + - + - + @@ -332890,16 +320731,16 @@ - + - + - + - + @@ -332908,28 +320749,28 @@ - + - + - + - + - + - + @@ -332944,244 +320785,11 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + @@ -333189,28 +320797,28 @@ - + - + - + - + - + - + - + - + @@ -333219,7 +320827,7 @@ - + @@ -333228,486 +320836,34 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + - + - + - + - + @@ -333737,10 +320893,10 @@ - + - + @@ -333749,25 +320905,25 @@ - + - + - + - + @@ -333782,7 +320938,7 @@ - + @@ -333791,11 +320947,11 @@ - + - - + + @@ -333808,12 +320964,12 @@ - - - + + + - + @@ -333960,7 +321116,7 @@ - + @@ -334244,24 +321400,24 @@ - - - - + + + + - + - + - + - + @@ -334270,153 +321426,153 @@ - + - + - + - - + + - + - + - + - - - + + + - + - + - + - - + + - - - + + + - + - + - + - + - - - + + + - - - + + + - + - - - + + + - - + + - - - + + + - + - + - - + + - + - - - + + + - - + + @@ -334424,84 +321580,84 @@ - - + + - + - - - + + + - + - + - - + + - - + + - + - + - + - + - - - + + + - - + + - + - - + + - + @@ -334533,7 +321689,7 @@ - + @@ -334545,130 +321701,130 @@ - + - + - + - + - + - + - + - - + + - - + + - - + + - - - + + + - + - + - + - + - + - - + + - + - - + + - - + + - - - + + + - + - - + + - - + + - - + + - - + + - - - + + + - + @@ -334676,32 +321832,32 @@ - - - + + + - + - + - + - - + + - - - + + + @@ -334711,56 +321867,458 @@ - - - + + + - - - + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + @@ -334772,72 +322330,72 @@ - + - + - + - + - - + + - + - + - + - + - + - + - + - + - - + + - - + + - + - + @@ -334846,12 +322404,12 @@ - - - + + + - + @@ -334859,48 +322417,48 @@ - - - + + + - + - - - + + + - - - + + + - - + + - - - + + + - - + + - + @@ -334908,10 +322466,10 @@ - + - + @@ -334920,37 +322478,37 @@ - + - + - + - + - + - + - + - + - + @@ -334959,7 +322517,7 @@ - + @@ -334968,7 +322526,7 @@ - + @@ -334983,16 +322541,16 @@ - + - + - + - + @@ -335049,7 +322607,7 @@ - + @@ -335060,44 +322618,44 @@ - + - - - + + + - - + + - + - + - + - + - + - + @@ -335106,7 +322664,7 @@ - + @@ -335133,7 +322691,7 @@ - + @@ -335163,10 +322721,10 @@ - + - + @@ -335178,7 +322736,7 @@ - + @@ -335190,7 +322748,7 @@ - + @@ -335213,16 +322771,16 @@ - + - + - + @@ -335230,21 +322788,21 @@ - + - + - + - + - + - + @@ -335271,13 +322829,13 @@ - + - + @@ -335313,13 +322871,13 @@ - + - + @@ -335337,16 +322895,16 @@ - + - + - + @@ -335364,16 +322922,16 @@ - + - + - + @@ -335382,43 +322940,43 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -335457,13 +323015,13 @@ - + - + - + @@ -335486,24 +323044,24 @@ - + - + - + - + - + @@ -335512,10 +323070,10 @@ - + - + @@ -335524,43 +323082,43 @@ - + - + - + - + - + - + - + - + - + @@ -335581,18 +323139,18 @@ - + - + - + - + @@ -335628,28 +323186,28 @@ - + - + - + - + - + - + - + - + @@ -335658,7 +323216,7 @@ - + @@ -335676,16 +323234,16 @@ - + - + - + - + @@ -335736,7 +323294,7 @@ - + @@ -335763,16 +323321,16 @@ - + - + - + - + @@ -335781,22 +323339,22 @@ - + - + - + - + - + - + @@ -335805,37 +323363,37 @@ - + - + - + - + - + - + - + - + - + @@ -335844,10 +323402,10 @@ - + - + @@ -335859,16 +323417,16 @@ - + - + - + - + @@ -335880,37 +323438,37 @@ - + - + - + - + - + - + - + - + - + @@ -335919,25 +323477,25 @@ - + - + - + - + - + - + - + @@ -335946,18 +323504,18 @@ - + - + - + - + @@ -335978,10 +323536,10 @@ - + - + @@ -335993,22 +323551,22 @@ - + - + - + - + - + @@ -336017,13 +323575,13 @@ - + - + - + @@ -336059,7 +323617,7 @@ - + @@ -336068,13 +323626,13 @@ - + - - - - + + + + @@ -336082,28 +323640,28 @@ - + - + - + - + - + - + - + - + @@ -336112,7 +323670,7 @@ - + @@ -336121,37 +323679,192 @@ - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + @@ -336180,331 +323893,331 @@ - - - - + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -336522,13 +324235,13 @@ - + - + - + @@ -336552,30 +324265,30 @@ - + - + - + - + - + - + - + - + @@ -336595,12 +324308,12 @@ - + - + - + @@ -336616,30 +324329,30 @@ - + - + - - + + - + - + - + - + - + - + @@ -336648,18 +324361,18 @@ - + - + - + - + - + @@ -336674,13 +324387,13 @@ - + - + - + @@ -336689,15 +324402,15 @@ - + - + - + - + @@ -336772,34 +324485,34 @@ - + - + - + - + - + - + - + - + @@ -336814,7 +324527,7 @@ - + @@ -336826,10 +324539,10 @@ - + - + @@ -336844,13 +324557,13 @@ - + - + @@ -336865,15 +324578,15 @@ - + - + - + - + @@ -336881,34 +324594,34 @@ - + - + - + - + - + - + - + - + - + @@ -336917,14 +324630,14 @@ - - - + + + - + - + @@ -336936,44 +324649,44 @@ - + - + - + - - + + - - + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - + @@ -336990,7 +324703,7 @@ - + @@ -336999,49 +324712,49 @@ - + - - - - - - + + + + + + - + - + - + - + - + - + - - + + - - + + - + - + @@ -337050,10 +324763,10 @@ - + - + @@ -337068,28 +324781,28 @@ - + - + - + - + - + - + - + @@ -337098,15 +324811,15 @@ - + - - - - - - + + + + + + @@ -337120,56 +324833,56 @@ - - - + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -337177,44 +324890,44 @@ - + - + - + - + - + - + - + - + - + - + - - - - + + + + - - + + @@ -337222,11 +324935,11 @@ - - - - - + + + + + @@ -337249,10 +324962,10 @@ - + - + @@ -337263,18 +324976,18 @@ - - - - - - - + + + + + + + - + - + @@ -337292,7 +325005,7 @@ - + @@ -337302,12 +325015,12 @@ - - - - - - + + + + + + @@ -337318,7 +325031,7 @@ - + @@ -337327,82 +325040,82 @@ - - - - - + + + + + - - - - - + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -337411,60 +325124,60 @@ - - - - + + + + - - - - - - - - - - - + + + + + + + + + + + - + - + - + - - + + - - + + - - - - - - - - + + + + + + + + - + - + @@ -337482,500 +325195,500 @@ - + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - + - + - + - + - + - + - - + + - - - + + + - - - - - - + + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - - + + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - + - - - - + + + + - - - - + + + + - - - - + + + + - - - - - - + + + + + + - - - - + + + + - - + + - - - + + + - - - + + + - - - + + + - + - - - + + + - + - - + + - + - - + + - - + + - - - - + + + + - - + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - - + + + - + - - - - + + + + - - - + + + - - - + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - - + + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - - + + + + + - + - - - - + + + + - - - - - + + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - - - - + + + + + + - - + + - + - + @@ -337983,29 +325696,29 @@ - + - + - + - + - + - + - + - + - + - + @@ -338014,48 +325727,48 @@ - - + + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + @@ -338072,57 +325785,57 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -338137,9 +325850,9 @@ - + - + @@ -338149,22 +325862,22 @@ - + - - + + - + - + - + @@ -338182,65 +325895,65 @@ - + - + - + - + - + - - + + - - + + - - + + - - + + - - - + + + - + - + - + - + - + - + - + - + @@ -338258,45 +325971,45 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -338314,39 +326027,39 @@ - - - - + + + + - - - + + + - - + + - + - + - + - + @@ -338355,98 +326068,98 @@ - - + + - + - + - + - + - - + + - - + + - + - - + + - + - - - + + + - + - + - - + + - - - + + + - - - + + + - + @@ -338454,64 +326167,64 @@ - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - + + + + + + + + - + - + - + - + - + @@ -338523,135 +326236,135 @@ - + - - - - - + + + + + - + - + - + - + - + - - - - + + + + - - - + + + - + - + - + - + - + - + - - - + + + - + - - - + + + - + - - + + - + - + - + - + - + - + - - - + + + - + - + - - + + - + - + - + - - + + - + - + - + - + @@ -338672,7 +326385,7 @@ - + @@ -338696,10 +326409,10 @@ - + - + @@ -338741,7 +326454,7 @@ - + @@ -338795,7 +326508,7 @@ - + @@ -338813,7 +326526,7 @@ - + @@ -338825,19 +326538,19 @@ - + - + - + - + - + @@ -338846,12 +326559,12 @@ - + - + - + @@ -338860,34 +326573,34 @@ - + - + - + - + - + - + - + - + - + @@ -338923,28 +326636,28 @@ - + - + - + - + - + - + - + - + @@ -338953,7 +326666,7 @@ - + @@ -338971,16 +326684,16 @@ - + - + - + - + @@ -339031,7 +326744,7 @@ - + @@ -339058,16 +326771,16 @@ - + - + - + - + @@ -339076,22 +326789,22 @@ - + - + - + - + - + - + @@ -339100,37 +326813,37 @@ - + - + - + - + - + - + - + - + - + @@ -339139,10 +326852,10 @@ - + - + @@ -339154,16 +326867,16 @@ - + - + - + - + @@ -339175,37 +326888,37 @@ - + - + - + - + - + - + - + - + - + @@ -339214,25 +326927,25 @@ - + - + - + - + - + - + - + @@ -339241,7 +326954,7 @@ - + @@ -339249,7 +326962,7 @@ - + @@ -339281,10 +326994,10 @@ - + - + @@ -339293,22 +327006,22 @@ - + - + - + - + - + - + @@ -339340,34 +327053,34 @@ - + - + - + - + - + - + - + @@ -339376,19 +327089,19 @@ - + - + - + - + - + @@ -339400,21 +327113,21 @@ - + - + - + - + - + - + @@ -339435,30 +327148,30 @@ - - + + - + - - + + - + - + - + - + - + @@ -339467,13 +327180,13 @@ - + - + - + @@ -339482,16 +327195,16 @@ - + - + - + - + @@ -339500,28 +327213,28 @@ - + - + - + - + - + - + @@ -339536,70 +327249,70 @@ - + - + - + - + - - - + + + - + - + - + - - + + - - - - + + + + - + - + - + - + @@ -339607,15 +327320,15 @@ - - + + - + - + @@ -339624,74 +327337,74 @@ - + - + - + - + - + - + - + - - - + + + - + - - - + + + - + - + - - + + - - + + - + - + - + - + - + @@ -339699,289 +327412,289 @@ - + - - + + - + - - - - + + + + - - - - - + + + + + - - - + + + - - - + + + - - + + - + - - - + + + - + - - - + + + - + - + - + - + - + - - + + - - + + - + - + - + - + - + - - + + - - + + - - - + + + - + - + - + - - - + + + - - - + + + - - - + + + - + - + - + - + - + - - - + + + - - - - - + + + + + - + - + - + - - + + - - - + + + - - + + - - + + - - + + - - - - - + + + + + - + - - + + - + - + - + - + - + - + - + - + - - + + - - + + - - + + - - + + - - + + - + - + - + - + - + - + @@ -339992,13 +327705,13 @@ - + - + - + @@ -340010,132 +327723,94 @@ - + - + - + - - + + - - + + - - - + + + - + - + - + - - + + - + - - + + - - - + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - + - + - - - + + + - + - - - + + + @@ -340143,19 +327818,19 @@ - - + + - + - + @@ -340176,37 +327851,37 @@ - + - + - + - + - + - + - + - + @@ -340219,137 +327894,137 @@ - + - + - + - + - - - - + + + + - + - + - + - + - + - + - + - + - + - + - + - + - - - + + + - + - + - + - + - - + + - + - - + + - + - - + + - + - - + + - + - + - + - + - + @@ -340367,13 +328042,13 @@ - + - + @@ -340385,13 +328060,13 @@ - + - + - + @@ -340409,9 +328084,9 @@ - + - + @@ -340423,190 +328098,190 @@ - + - + - + - + - + - + - - + + - - - + + + - + - + - - + + - - + + - - + + - - - + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - + + + + + + + + + + + + + + @@ -340617,10 +328292,10 @@ - - - - + + + + @@ -340628,209 +328303,209 @@ - - - - - - - + + + + + + + - - + + - + - - + + - - + + - - - + + + - - - + + + - - - - + + + + - - + + - + - - + + - + - + - - + + - + - - - - + + + + - - - + + + - - - + + + - + - - + + - - + + - - - + + + - + - - - + + + - + - - + + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - - + + - - - + + + - + - + - + - + - + - + @@ -340845,46 +328520,46 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -340923,141 +328598,141 @@ - + - - + + - + - + - - + + - + - - + + - + - + - - + + - + - + - + - + - - + + - - + + - + - + - + - + - + - + - - - + + + - - - + + + - + - + - + - - + + - - + + - - + + - - - + + + - + - + @@ -341066,534 +328741,534 @@ - - + + - - + + - + - + - - - + + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - + - + - + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + @@ -341601,15 +329276,15 @@ - + - - - - - + + + + + @@ -341619,7 +329294,7 @@ - + @@ -341627,39 +329302,39 @@ - + - + - + - - + + - - + + - + @@ -341667,34 +329342,34 @@ - + - + - + - - + + - + - + @@ -341707,22 +329382,22 @@ - - + + - + - - + + - - - + + + @@ -341732,17 +329407,17 @@ - + - + - + - + @@ -341750,7 +329425,7 @@ - + @@ -341758,58 +329433,58 @@ - + - - + + - + - + - - + + - + - - - + + + - - - - + + + + - - - - - - + + + + + + - - - + + + - - + + - + @@ -341817,167 +329492,167 @@ - + - - - + + + - - + + - - + + - - + + - - + + - + - + - + - + - - - + + + - - + + - + - - + + - - + + - + - + - + - + - - + + - - + + - - - + + + - + - - + + - + - - + + - + - - + + - - + + - + - + - + - + - - - + + + - + - + - + @@ -341990,36 +329665,36 @@ - - - + + + - + - - + + - - - + + + - - + + - + @@ -342033,48 +329708,48 @@ - + - - + + - + - + - + - - + + - + - + - + - + @@ -342085,131 +329760,131 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - - + + - - + + - + - + - - - + + + - - + + - + - - + + - - + + - - + + - - - + + + - + - + - + @@ -342218,104 +329893,104 @@ - + - + - + - + - - + + - + - + - + - + - + - + - + - - + + - - + + - + - + - - + + - + - + - + - + - - - + + + - + - + - + @@ -342323,101 +329998,101 @@ - + - + - + - - + + - + - - + + - - - + + + - - - - + + + + - - - - - + + + + + - - + + - - - - + + + + - + - + - - - + + + - + - - + + - - - + + + - - - - + + + + - - - - - + + + + + @@ -342434,47 +330109,47 @@ - + - + - + - + - + - + - + - + - + - - - + + + - - - - + + + + - + @@ -342482,21 +330157,21 @@ - + - + - + - - + + @@ -342504,19 +330179,19 @@ - - + + - + - + - + @@ -342524,13 +330199,13 @@ - + - + @@ -342541,20 +330216,20 @@ - - + + - - + + - - + + @@ -342571,15 +330246,15 @@ - - - + + + - + @@ -342588,10 +330263,10 @@ - + - + @@ -342599,14 +330274,14 @@ - + - + - + @@ -342618,84 +330293,84 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -342704,7 +330379,7 @@ - + @@ -342715,9 +330390,9 @@ - + - + @@ -342725,157 +330400,157 @@ - + - + - + - + - + - + - + - + - + - + - - - + + + - + - + - - + + - - - + + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - + + - - + + - - + + - - - + + + - - - - + + + + - - + + - - - + + + - - - + + + - - - + + + - - - - - + + + + + - - - - - + + + + + - - - - - - + + + + + + - - - - - + + + + + - - - - - - + + + + + + - + @@ -342883,82 +330558,82 @@ - - - - - - + + + + + + - - - - - - - + + + + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - - + + + + + - - - - - + + + + + - - - - - - - + + + + + + + - - + + - - + + @@ -342979,58 +330654,57 @@ - - + + - + - + - + - - + - - - + + + - + - - + + - + - - - - - - + + + + + + - - - - + + + + - - + + - - + + diff --git a/arch/arc/Makefile b/arch/arc/Makefile index 480af1af9e63..03a0b19c92cd 100644 --- a/arch/arc/Makefile +++ b/arch/arc/Makefile @@ -5,6 +5,10 @@ KBUILD_DEFCONFIG := nsim_hs_defconfig +ifeq ($(CROSS_COMPILE),) +CROSS_COMPILE := $(call cc-cross-prefix, arc-linux- arceb-linux-) +endif + cflags-y += -fno-common -pipe -fno-builtin -mmedium-calls -D__linux__ cflags-$(CONFIG_ISA_ARCOMPACT) += -mA7 cflags-$(CONFIG_ISA_ARCV2) += -mcpu=hs38 diff --git a/arch/arc/plat-hsdk/platform.c b/arch/arc/plat-hsdk/platform.c index 6a91a742ab3d..7dd2dd335cf6 100644 --- a/arch/arc/plat-hsdk/platform.c +++ b/arch/arc/plat-hsdk/platform.c @@ -32,8 +32,6 @@ static void __init hsdk_init_per_cpu(unsigned int cpu) #define ARC_PERIPHERAL_BASE 0xf0000000 #define CREG_BASE (ARC_PERIPHERAL_BASE + 0x1000) -#define CREG_PAE (CREG_BASE + 0x180) -#define CREG_PAE_UPDATE (CREG_BASE + 0x194) #define SDIO_BASE (ARC_PERIPHERAL_BASE + 0xA000) #define SDIO_UHS_REG_EXT (SDIO_BASE + 0x108) @@ -99,20 +97,167 @@ static void __init hsdk_enable_gpio_intc_wire(void) iowrite32(GPIO_INT_CONNECTED_MASK, (void __iomem *) GPIO_INTEN); } -static void __init hsdk_init_early(void) +enum hsdk_axi_masters { + M_HS_CORE = 0, + M_HS_RTT, + M_AXI_TUN, + M_HDMI_VIDEO, + M_HDMI_AUDIO, + M_USB_HOST, + M_ETHERNET, + M_SDIO, + M_GPU, + M_DMAC_0, + M_DMAC_1, + M_DVFS +}; + +#define UPDATE_VAL 1 + +/* + * This is modified configuration of AXI bridge. Default settings + * are specified in "Table 111 CREG Address Decoder register reset values". + * + * AXI_M_m_SLV{0|1} - Slave Select register for master 'm'. + * Possible slaves are: + * - 0 => no slave selected + * - 1 => DDR controller port #1 + * - 2 => SRAM controller + * - 3 => AXI tunnel + * - 4 => EBI controller + * - 5 => ROM controller + * - 6 => AXI2APB bridge + * - 7 => DDR controller port #2 + * - 8 => DDR controller port #3 + * - 9 => HS38x4 IOC + * - 10 => HS38x4 DMI + * AXI_M_m_OFFSET{0|1} - Addr Offset register for master 'm' + * + * Please read ARC HS Development IC Specification, section 17.2 for more + * information about apertures configuration. + * + * m master AXI_M_m_SLV0 AXI_M_m_SLV1 AXI_M_m_OFFSET0 AXI_M_m_OFFSET1 + * 0 HS (CBU) 0x11111111 0x63111111 0xFEDCBA98 0x0E543210 + * 1 HS (RTT) 0x77777777 0x77777777 0xFEDCBA98 0x76543210 + * 2 AXI Tunnel 0x88888888 0x88888888 0xFEDCBA98 0x76543210 + * 3 HDMI-VIDEO 0x77777777 0x77777777 0xFEDCBA98 0x76543210 + * 4 HDMI-ADUIO 0x77777777 0x77777777 0xFEDCBA98 0x76543210 + * 5 USB-HOST 0x77777777 0x77999999 0xFEDCBA98 0x76DCBA98 + * 6 ETHERNET 0x77777777 0x77999999 0xFEDCBA98 0x76DCBA98 + * 7 SDIO 0x77777777 0x77999999 0xFEDCBA98 0x76DCBA98 + * 8 GPU 0x77777777 0x77777777 0xFEDCBA98 0x76543210 + * 9 DMAC (port #1) 0x77777777 0x77777777 0xFEDCBA98 0x76543210 + * 10 DMAC (port #2) 0x77777777 0x77777777 0xFEDCBA98 0x76543210 + * 11 DVFS 0x00000000 0x60000000 0x00000000 0x00000000 + */ + +#define CREG_AXI_M_SLV0(m) ((void __iomem *)(CREG_BASE + 0x20 * (m))) +#define CREG_AXI_M_SLV1(m) ((void __iomem *)(CREG_BASE + 0x20 * (m) + 0x04)) +#define CREG_AXI_M_OFT0(m) ((void __iomem *)(CREG_BASE + 0x20 * (m) + 0x08)) +#define CREG_AXI_M_OFT1(m) ((void __iomem *)(CREG_BASE + 0x20 * (m) + 0x0C)) +#define CREG_AXI_M_UPDT(m) ((void __iomem *)(CREG_BASE + 0x20 * (m) + 0x14)) + +#define CREG_AXI_M_HS_CORE_BOOT ((void __iomem *)(CREG_BASE + 0x010)) + +#define CREG_PAE ((void __iomem *)(CREG_BASE + 0x180)) +#define CREG_PAE_UPDT ((void __iomem *)(CREG_BASE + 0x194)) + +static void __init hsdk_init_memory_bridge(void) { + u32 reg; + + /* + * M_HS_CORE has one unique register - BOOT. + * We need to clean boot mirror (BOOT[1:0]) bits in them to avoid first + * aperture to be masked by 'boot mirror'. + */ + reg = readl(CREG_AXI_M_HS_CORE_BOOT) & (~0x3); + writel(reg, CREG_AXI_M_HS_CORE_BOOT); + writel(0x11111111, CREG_AXI_M_SLV0(M_HS_CORE)); + writel(0x63111111, CREG_AXI_M_SLV1(M_HS_CORE)); + writel(0xFEDCBA98, CREG_AXI_M_OFT0(M_HS_CORE)); + writel(0x0E543210, CREG_AXI_M_OFT1(M_HS_CORE)); + writel(UPDATE_VAL, CREG_AXI_M_UPDT(M_HS_CORE)); + + writel(0x77777777, CREG_AXI_M_SLV0(M_HS_RTT)); + writel(0x77777777, CREG_AXI_M_SLV1(M_HS_RTT)); + writel(0xFEDCBA98, CREG_AXI_M_OFT0(M_HS_RTT)); + writel(0x76543210, CREG_AXI_M_OFT1(M_HS_RTT)); + writel(UPDATE_VAL, CREG_AXI_M_UPDT(M_HS_RTT)); + + writel(0x88888888, CREG_AXI_M_SLV0(M_AXI_TUN)); + writel(0x88888888, CREG_AXI_M_SLV1(M_AXI_TUN)); + writel(0xFEDCBA98, CREG_AXI_M_OFT0(M_AXI_TUN)); + writel(0x76543210, CREG_AXI_M_OFT1(M_AXI_TUN)); + writel(UPDATE_VAL, CREG_AXI_M_UPDT(M_AXI_TUN)); + + writel(0x77777777, CREG_AXI_M_SLV0(M_HDMI_VIDEO)); + writel(0x77777777, CREG_AXI_M_SLV1(M_HDMI_VIDEO)); + writel(0xFEDCBA98, CREG_AXI_M_OFT0(M_HDMI_VIDEO)); + writel(0x76543210, CREG_AXI_M_OFT1(M_HDMI_VIDEO)); + writel(UPDATE_VAL, CREG_AXI_M_UPDT(M_HDMI_VIDEO)); + + writel(0x77777777, CREG_AXI_M_SLV0(M_HDMI_AUDIO)); + writel(0x77777777, CREG_AXI_M_SLV1(M_HDMI_AUDIO)); + writel(0xFEDCBA98, CREG_AXI_M_OFT0(M_HDMI_AUDIO)); + writel(0x76543210, CREG_AXI_M_OFT1(M_HDMI_AUDIO)); + writel(UPDATE_VAL, CREG_AXI_M_UPDT(M_HDMI_AUDIO)); + + writel(0x77777777, CREG_AXI_M_SLV0(M_USB_HOST)); + writel(0x77999999, CREG_AXI_M_SLV1(M_USB_HOST)); + writel(0xFEDCBA98, CREG_AXI_M_OFT0(M_USB_HOST)); + writel(0x76DCBA98, CREG_AXI_M_OFT1(M_USB_HOST)); + writel(UPDATE_VAL, CREG_AXI_M_UPDT(M_USB_HOST)); + + writel(0x77777777, CREG_AXI_M_SLV0(M_ETHERNET)); + writel(0x77999999, CREG_AXI_M_SLV1(M_ETHERNET)); + writel(0xFEDCBA98, CREG_AXI_M_OFT0(M_ETHERNET)); + writel(0x76DCBA98, CREG_AXI_M_OFT1(M_ETHERNET)); + writel(UPDATE_VAL, CREG_AXI_M_UPDT(M_ETHERNET)); + + writel(0x77777777, CREG_AXI_M_SLV0(M_SDIO)); + writel(0x77999999, CREG_AXI_M_SLV1(M_SDIO)); + writel(0xFEDCBA98, CREG_AXI_M_OFT0(M_SDIO)); + writel(0x76DCBA98, CREG_AXI_M_OFT1(M_SDIO)); + writel(UPDATE_VAL, CREG_AXI_M_UPDT(M_SDIO)); + + writel(0x77777777, CREG_AXI_M_SLV0(M_GPU)); + writel(0x77777777, CREG_AXI_M_SLV1(M_GPU)); + writel(0xFEDCBA98, CREG_AXI_M_OFT0(M_GPU)); + writel(0x76543210, CREG_AXI_M_OFT1(M_GPU)); + writel(UPDATE_VAL, CREG_AXI_M_UPDT(M_GPU)); + + writel(0x77777777, CREG_AXI_M_SLV0(M_DMAC_0)); + writel(0x77777777, CREG_AXI_M_SLV1(M_DMAC_0)); + writel(0xFEDCBA98, CREG_AXI_M_OFT0(M_DMAC_0)); + writel(0x76543210, CREG_AXI_M_OFT1(M_DMAC_0)); + writel(UPDATE_VAL, CREG_AXI_M_UPDT(M_DMAC_0)); + + writel(0x77777777, CREG_AXI_M_SLV0(M_DMAC_1)); + writel(0x77777777, CREG_AXI_M_SLV1(M_DMAC_1)); + writel(0xFEDCBA98, CREG_AXI_M_OFT0(M_DMAC_1)); + writel(0x76543210, CREG_AXI_M_OFT1(M_DMAC_1)); + writel(UPDATE_VAL, CREG_AXI_M_UPDT(M_DMAC_1)); + + writel(0x00000000, CREG_AXI_M_SLV0(M_DVFS)); + writel(0x60000000, CREG_AXI_M_SLV1(M_DVFS)); + writel(0x00000000, CREG_AXI_M_OFT0(M_DVFS)); + writel(0x00000000, CREG_AXI_M_OFT1(M_DVFS)); + writel(UPDATE_VAL, CREG_AXI_M_UPDT(M_DVFS)); + /* * PAE remapping for DMA clients does not work due to an RTL bug, so * CREG_PAE register must be programmed to all zeroes, otherwise it * will cause problems with DMA to/from peripherals even if PAE40 is * not used. */ + writel(0x00000000, CREG_PAE); + writel(UPDATE_VAL, CREG_PAE_UPDT); +} - /* Default is 1, which means "PAE offset = 4GByte" */ - writel_relaxed(0, (void __iomem *) CREG_PAE); - - /* Really apply settings made above */ - writel(1, (void __iomem *) CREG_PAE_UPDATE); +static void __init hsdk_init_early(void) +{ + hsdk_init_memory_bridge(); /* * Switch SDIO external ciu clock divider from default div-by-8 to diff --git a/arch/arm/boot/dts/armada-xp-98dx3236.dtsi b/arch/arm/boot/dts/armada-xp-98dx3236.dtsi index 59753470cd34..267d0c178e55 100644 --- a/arch/arm/boot/dts/armada-xp-98dx3236.dtsi +++ b/arch/arm/boot/dts/armada-xp-98dx3236.dtsi @@ -336,3 +336,11 @@ status = "disabled"; }; +&uart0 { + compatible = "marvell,armada-38x-uart"; +}; + +&uart1 { + compatible = "marvell,armada-38x-uart"; +}; + diff --git a/arch/arm/boot/dts/gemini-dlink-dir-685.dts b/arch/arm/boot/dts/gemini-dlink-dir-685.dts index cfbfbc91a1e1..3613f05f8a80 100644 --- a/arch/arm/boot/dts/gemini-dlink-dir-685.dts +++ b/arch/arm/boot/dts/gemini-dlink-dir-685.dts @@ -20,7 +20,7 @@ }; chosen { - bootargs = "console=ttyS0,19200n8 root=/dev/sda1 rw rootwait"; + bootargs = "console=ttyS0,19200n8 root=/dev/sda1 rw rootwait consoleblank=300"; stdout-path = "uart0:19200n8"; }; diff --git a/arch/arm/boot/dts/gemini-dlink-dns-313.dts b/arch/arm/boot/dts/gemini-dlink-dns-313.dts index b12504e10f0b..360642a02a48 100644 --- a/arch/arm/boot/dts/gemini-dlink-dns-313.dts +++ b/arch/arm/boot/dts/gemini-dlink-dns-313.dts @@ -11,7 +11,7 @@ / { model = "D-Link DNS-313 1-Bay Network Storage Enclosure"; - compatible = "dlink,dir-313", "cortina,gemini"; + compatible = "dlink,dns-313", "cortina,gemini"; #address-cells = <1>; #size-cells = <1>; diff --git a/arch/arm/boot/dts/imx6ul.dtsi b/arch/arm/boot/dts/imx6ul.dtsi index bbf010c73336..a7f6d1d58e20 100644 --- a/arch/arm/boot/dts/imx6ul.dtsi +++ b/arch/arm/boot/dts/imx6ul.dtsi @@ -358,7 +358,7 @@ pwm1: pwm@2080000 { compatible = "fsl,imx6ul-pwm", "fsl,imx27-pwm"; reg = <0x02080000 0x4000>; - interrupts = ; + interrupts = ; clocks = <&clks IMX6UL_CLK_PWM1>, <&clks IMX6UL_CLK_PWM1>; clock-names = "ipg", "per"; @@ -369,7 +369,7 @@ pwm2: pwm@2084000 { compatible = "fsl,imx6ul-pwm", "fsl,imx27-pwm"; reg = <0x02084000 0x4000>; - interrupts = ; + interrupts = ; clocks = <&clks IMX6UL_CLK_PWM2>, <&clks IMX6UL_CLK_PWM2>; clock-names = "ipg", "per"; @@ -380,7 +380,7 @@ pwm3: pwm@2088000 { compatible = "fsl,imx6ul-pwm", "fsl,imx27-pwm"; reg = <0x02088000 0x4000>; - interrupts = ; + interrupts = ; clocks = <&clks IMX6UL_CLK_PWM3>, <&clks IMX6UL_CLK_PWM3>; clock-names = "ipg", "per"; @@ -391,7 +391,7 @@ pwm4: pwm@208c000 { compatible = "fsl,imx6ul-pwm", "fsl,imx27-pwm"; reg = <0x0208c000 0x4000>; - interrupts = ; + interrupts = ; clocks = <&clks IMX6UL_CLK_PWM4>, <&clks IMX6UL_CLK_PWM4>; clock-names = "ipg", "per"; diff --git a/arch/arm/boot/dts/meson8.dtsi b/arch/arm/boot/dts/meson8.dtsi index 7ef442462ea4..40c11b6b217a 100644 --- a/arch/arm/boot/dts/meson8.dtsi +++ b/arch/arm/boot/dts/meson8.dtsi @@ -248,8 +248,8 @@ , , , - , - , + , + , , , , @@ -264,7 +264,6 @@ clocks = <&clkc CLKID_CLK81>, <&clkc CLKID_MALI>; clock-names = "bus", "core"; operating-points-v2 = <&gpu_opp_table>; - switch-delay = <0xffff>; }; }; }; /* end of / */ diff --git a/arch/arm/boot/dts/meson8b.dtsi b/arch/arm/boot/dts/meson8b.dtsi index 800cd65fc50a..ec67f49116d9 100644 --- a/arch/arm/boot/dts/meson8b.dtsi +++ b/arch/arm/boot/dts/meson8b.dtsi @@ -163,23 +163,23 @@ opp-255000000 { opp-hz = /bits/ 64 <255000000>; - opp-microvolt = <1150000>; + opp-microvolt = <1100000>; }; opp-364300000 { opp-hz = /bits/ 64 <364300000>; - opp-microvolt = <1150000>; + opp-microvolt = <1100000>; }; opp-425000000 { opp-hz = /bits/ 64 <425000000>; - opp-microvolt = <1150000>; + opp-microvolt = <1100000>; }; opp-510000000 { opp-hz = /bits/ 64 <510000000>; - opp-microvolt = <1150000>; + opp-microvolt = <1100000>; }; opp-637500000 { opp-hz = /bits/ 64 <637500000>; - opp-microvolt = <1150000>; + opp-microvolt = <1100000>; turbo-mode; }; }; @@ -229,7 +229,6 @@ clocks = <&clkc CLKID_CLK81>, <&clkc CLKID_MALI>; clock-names = "bus", "core"; operating-points-v2 = <&gpu_opp_table>; - switch-delay = <0xffff>; }; }; }; /* end of / */ diff --git a/arch/arm/mach-davinci/board-da830-evm.c b/arch/arm/mach-davinci/board-da830-evm.c index 51a892702e27..a273ab25c668 100644 --- a/arch/arm/mach-davinci/board-da830-evm.c +++ b/arch/arm/mach-davinci/board-da830-evm.c @@ -61,6 +61,9 @@ static struct regulator_consumer_supply da830_evm_usb_supplies[] = { static struct regulator_init_data da830_evm_usb_vbus_data = { .consumer_supplies = da830_evm_usb_supplies, .num_consumer_supplies = ARRAY_SIZE(da830_evm_usb_supplies), + .constraints = { + .valid_ops_mask = REGULATOR_CHANGE_STATUS, + }, }; static struct fixed_voltage_config da830_evm_usb_vbus = { @@ -88,7 +91,7 @@ static struct gpiod_lookup_table da830_evm_usb_oc_gpio_lookup = { static struct gpiod_lookup_table da830_evm_usb_vbus_gpio_lookup = { .dev_id = "reg-fixed-voltage.0", .table = { - GPIO_LOOKUP("davinci_gpio", ON_BD_USB_DRV, "vbus", 0), + GPIO_LOOKUP("davinci_gpio", ON_BD_USB_DRV, NULL, 0), { } }, }; diff --git a/arch/arm/mach-davinci/board-omapl138-hawk.c b/arch/arm/mach-davinci/board-omapl138-hawk.c index db177a6a7e48..5390a8630cf0 100644 --- a/arch/arm/mach-davinci/board-omapl138-hawk.c +++ b/arch/arm/mach-davinci/board-omapl138-hawk.c @@ -306,6 +306,9 @@ static struct regulator_consumer_supply hawk_usb_supplies[] = { static struct regulator_init_data hawk_usb_vbus_data = { .consumer_supplies = hawk_usb_supplies, .num_consumer_supplies = ARRAY_SIZE(hawk_usb_supplies), + .constraints = { + .valid_ops_mask = REGULATOR_CHANGE_STATUS, + }, }; static struct fixed_voltage_config hawk_usb_vbus = { diff --git a/arch/arm/mach-omap2/prm3xxx.c b/arch/arm/mach-omap2/prm3xxx.c index fd4a3bf27993..1b442b128569 100644 --- a/arch/arm/mach-omap2/prm3xxx.c +++ b/arch/arm/mach-omap2/prm3xxx.c @@ -430,7 +430,7 @@ static void omap3_prm_reconfigure_io_chain(void) * registers, and omap3xxx_prm_reconfigure_io_chain() must be called. * No return value. */ -static void __init omap3xxx_prm_enable_io_wakeup(void) +static void omap3xxx_prm_enable_io_wakeup(void) { if (prm_features & PRM_HAS_IO_WAKEUP) omap2_prm_set_mod_reg_bits(OMAP3430_EN_IO_MASK, WKUP_MOD, diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi b/arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi index b04581249f0b..bf7f845447ed 100644 --- a/arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi +++ b/arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi @@ -28,7 +28,7 @@ enable-method = "psci"; clocks = <&clockgen 1 0>; next-level-cache = <&l2>; - cpu-idle-states = <&CPU_PH20>; + cpu-idle-states = <&CPU_PW20>; }; cpu1: cpu@1 { @@ -38,7 +38,7 @@ enable-method = "psci"; clocks = <&clockgen 1 0>; next-level-cache = <&l2>; - cpu-idle-states = <&CPU_PH20>; + cpu-idle-states = <&CPU_PW20>; }; l2: l2-cache { @@ -53,13 +53,13 @@ */ entry-method = "arm,psci"; - CPU_PH20: cpu-ph20 { - compatible = "arm,idle-state"; - idle-state-name = "PH20"; - arm,psci-suspend-param = <0x00010000>; - entry-latency-us = <1000>; - exit-latency-us = <1000>; - min-residency-us = <3000>; + CPU_PW20: cpu-pw20 { + compatible = "arm,idle-state"; + idle-state-name = "PW20"; + arm,psci-suspend-param = <0x0>; + entry-latency-us = <2000>; + exit-latency-us = <2000>; + min-residency-us = <6000>; }; }; diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig index 4d583514258c..6bca5b082ea4 100644 --- a/arch/arm64/configs/defconfig +++ b/arch/arm64/configs/defconfig @@ -613,6 +613,7 @@ CONFIG_RTC_DRV_TEGRA=y CONFIG_RTC_DRV_IMX_SC=m CONFIG_RTC_DRV_XGENE=y CONFIG_DMADEVICES=y +CONFIG_FSL_EDMA=y CONFIG_DMA_BCM2835=m CONFIG_K3_DMA=y CONFIG_MV_XOR=y diff --git a/arch/arm64/kernel/image.h b/arch/arm64/kernel/image.h index 04ca08086d35..2b85c0d6fa3d 100644 --- a/arch/arm64/kernel/image.h +++ b/arch/arm64/kernel/image.h @@ -67,7 +67,11 @@ #ifdef CONFIG_EFI -__efistub_stext_offset = stext - _text; +/* + * Use ABSOLUTE() to avoid ld.lld treating this as a relative symbol: + * https://github.com/ClangBuiltLinux/linux/issues/561 + */ +__efistub_stext_offset = ABSOLUTE(stext - _text); /* * The EFI stub has its own symbol namespace prefixed by __efistub_, to diff --git a/arch/arm64/kernel/module.c b/arch/arm64/kernel/module.c index e23a68a5808f..71530e080ecc 100644 --- a/arch/arm64/kernel/module.c +++ b/arch/arm64/kernel/module.c @@ -21,6 +21,7 @@ void *module_alloc(unsigned long size) { + u64 module_alloc_end = module_alloc_base + MODULES_VSIZE; gfp_t gfp_mask = GFP_KERNEL; void *p; @@ -28,9 +29,12 @@ void *module_alloc(unsigned long size) if (IS_ENABLED(CONFIG_ARM64_MODULE_PLTS)) gfp_mask |= __GFP_NOWARN; + if (IS_ENABLED(CONFIG_KASAN)) + /* don't exceed the static module region - see below */ + module_alloc_end = MODULES_END; + p = __vmalloc_node_range(size, MODULE_ALIGN, module_alloc_base, - module_alloc_base + MODULES_VSIZE, - gfp_mask, PAGE_KERNEL_EXEC, 0, + module_alloc_end, gfp_mask, PAGE_KERNEL_EXEC, 0, NUMA_NO_NODE, __builtin_return_address(0)); if (!p && IS_ENABLED(CONFIG_ARM64_MODULE_PLTS) && diff --git a/arch/arm64/kvm/guest.c b/arch/arm64/kvm/guest.c index c2afa7982047..dfd626447482 100644 --- a/arch/arm64/kvm/guest.c +++ b/arch/arm64/kvm/guest.c @@ -208,7 +208,7 @@ out: #define vq_word(vq) (((vq) - SVE_VQ_MIN) / 64) #define vq_mask(vq) ((u64)1 << ((vq) - SVE_VQ_MIN) % 64) -#define vq_present(vqs, vq) ((vqs)[vq_word(vq)] & vq_mask(vq)) +#define vq_present(vqs, vq) (!!((vqs)[vq_word(vq)] & vq_mask(vq))) static int get_sve_vls(struct kvm_vcpu *vcpu, const struct kvm_one_reg *reg) { diff --git a/arch/csky/kernel/signal.c b/arch/csky/kernel/signal.c index 04a43cfd4e09..d47a3381aad8 100644 --- a/arch/csky/kernel/signal.c +++ b/arch/csky/kernel/signal.c @@ -39,6 +39,11 @@ static int save_fpu_state(struct sigcontext __user *sc) #endif struct rt_sigframe { + /* + * pad[3] is compatible with the same struct defined in + * gcc/libgcc/config/csky/linux-unwind.h + */ + int pad[3]; struct siginfo info; struct ucontext uc; }; diff --git a/arch/mips/Makefile b/arch/mips/Makefile index 8f4486c4415b..eceff9b75b22 100644 --- a/arch/mips/Makefile +++ b/arch/mips/Makefile @@ -17,6 +17,7 @@ archscripts: scripts_basic $(Q)$(MAKE) $(build)=arch/mips/boot/tools relocs KBUILD_DEFCONFIG := 32r2el_defconfig +KBUILD_DTBS := dtbs # # Select the object file format to substitute into the linker script. @@ -384,7 +385,7 @@ quiet_cmd_64 = OBJCOPY $@ vmlinux.64: vmlinux $(call cmd,64) -all: $(all-y) +all: $(all-y) $(KBUILD_DTBS) # boot $(boot-y): $(vmlinux-32) FORCE diff --git a/arch/mips/boot/compressed/Makefile b/arch/mips/boot/compressed/Makefile index 3c453a1f1ff1..172801ed35b8 100644 --- a/arch/mips/boot/compressed/Makefile +++ b/arch/mips/boot/compressed/Makefile @@ -78,6 +78,8 @@ OBJCOPYFLAGS_piggy.o := --add-section=.image=$(obj)/vmlinux.bin.z \ $(obj)/piggy.o: $(obj)/dummy.o $(obj)/vmlinux.bin.z FORCE $(call if_changed,objcopy) +HOSTCFLAGS_calc_vmlinuz_load_addr.o += $(LINUXINCLUDE) + # Calculate the load address of the compressed kernel image hostprogs-y := calc_vmlinuz_load_addr diff --git a/arch/mips/boot/compressed/calc_vmlinuz_load_addr.c b/arch/mips/boot/compressed/calc_vmlinuz_load_addr.c index 240f1d12df75..080b926d2623 100644 --- a/arch/mips/boot/compressed/calc_vmlinuz_load_addr.c +++ b/arch/mips/boot/compressed/calc_vmlinuz_load_addr.c @@ -9,7 +9,7 @@ #include #include #include -#include "../../../../include/linux/sizes.h" +#include int main(int argc, char *argv[]) { diff --git a/arch/mips/include/asm/mach-ath79/ar933x_uart.h b/arch/mips/include/asm/mach-ath79/ar933x_uart.h index b8f8af7dc47c..cacf3545e018 100644 --- a/arch/mips/include/asm/mach-ath79/ar933x_uart.h +++ b/arch/mips/include/asm/mach-ath79/ar933x_uart.h @@ -24,8 +24,8 @@ #define AR933X_UART_CS_PARITY_S 0 #define AR933X_UART_CS_PARITY_M 0x3 #define AR933X_UART_CS_PARITY_NONE 0 -#define AR933X_UART_CS_PARITY_ODD 1 -#define AR933X_UART_CS_PARITY_EVEN 2 +#define AR933X_UART_CS_PARITY_ODD 2 +#define AR933X_UART_CS_PARITY_EVEN 3 #define AR933X_UART_CS_IF_MODE_S 2 #define AR933X_UART_CS_IF_MODE_M 0x3 #define AR933X_UART_CS_IF_MODE_NONE 0 diff --git a/arch/mips/include/asm/mips-gic.h b/arch/mips/include/asm/mips-gic.h index 75a1cdee1331..084cac1c5ea2 100644 --- a/arch/mips/include/asm/mips-gic.h +++ b/arch/mips/include/asm/mips-gic.h @@ -310,6 +310,36 @@ static inline bool mips_gic_present(void) return IS_ENABLED(CONFIG_MIPS_GIC) && mips_gic_base; } +/** + * mips_gic_vx_map_reg() - Return GIC_Vx__MAP register offset + * @intr: A GIC local interrupt + * + * Determine the index of the GIC_VL__MAP or GIC_VO__MAP register + * within the block of GIC map registers. This is almost the same as the order + * of interrupts in the pending & mask registers, as used by enum + * mips_gic_local_interrupt, but moves the FDC interrupt & thus offsets the + * interrupts after it... + * + * Return: The map register index corresponding to @intr. + * + * The return value is suitable for use with the (read|write)_gic_v[lo]_map + * accessor functions. + */ +static inline unsigned int +mips_gic_vx_map_reg(enum mips_gic_local_interrupt intr) +{ + /* WD, Compare & Timer are 1:1 */ + if (intr <= GIC_LOCAL_INT_TIMER) + return intr; + + /* FDC moves to after Timer... */ + if (intr == GIC_LOCAL_INT_FDC) + return GIC_LOCAL_INT_TIMER + 1; + + /* As a result everything else is offset by 1 */ + return intr + 1; +} + /** * gic_get_c0_compare_int() - Return cp0 count/compare interrupt virq * diff --git a/arch/mips/mm/mmap.c b/arch/mips/mm/mmap.c index 50ee7213b432..d79f2b432318 100644 --- a/arch/mips/mm/mmap.c +++ b/arch/mips/mm/mmap.c @@ -203,7 +203,7 @@ unsigned long arch_randomize_brk(struct mm_struct *mm) bool __virt_addr_valid(const volatile void *kaddr) { - unsigned long vaddr = (unsigned long)vaddr; + unsigned long vaddr = (unsigned long)kaddr; if ((vaddr < PAGE_OFFSET) || (vaddr >= MAP_BASE)) return false; diff --git a/arch/mips/mm/tlbex.c b/arch/mips/mm/tlbex.c index 65b6e85447b1..144ceb0fba88 100644 --- a/arch/mips/mm/tlbex.c +++ b/arch/mips/mm/tlbex.c @@ -391,6 +391,7 @@ static struct work_registers build_get_work_registers(u32 **p) static void build_restore_work_registers(u32 **p) { if (scratch_reg >= 0) { + uasm_i_ehb(p); UASM_i_MFC0(p, 1, c0_kscratch(), scratch_reg); return; } @@ -668,10 +669,12 @@ static void build_restore_pagemask(u32 **p, struct uasm_reloc **r, uasm_i_mtc0(p, 0, C0_PAGEMASK); uasm_il_b(p, r, lid); } - if (scratch_reg >= 0) + if (scratch_reg >= 0) { + uasm_i_ehb(p); UASM_i_MFC0(p, 1, c0_kscratch(), scratch_reg); - else + } else { UASM_i_LW(p, 1, scratchpad_offset(0), 0); + } } else { /* Reset default page size */ if (PM_DEFAULT_MASK >> 16) { @@ -938,10 +941,12 @@ build_get_pgd_vmalloc64(u32 **p, struct uasm_label **l, struct uasm_reloc **r, uasm_i_jr(p, ptr); if (mode == refill_scratch) { - if (scratch_reg >= 0) + if (scratch_reg >= 0) { + uasm_i_ehb(p); UASM_i_MFC0(p, 1, c0_kscratch(), scratch_reg); - else + } else { UASM_i_LW(p, 1, scratchpad_offset(0), 0); + } } else { uasm_i_nop(p); } @@ -1258,6 +1263,7 @@ build_fast_tlb_refill_handler (u32 **p, struct uasm_label **l, UASM_i_MTC0(p, odd, C0_ENTRYLO1); /* load it */ if (c0_scratch_reg >= 0) { + uasm_i_ehb(p); UASM_i_MFC0(p, scratch, c0_kscratch(), c0_scratch_reg); build_tlb_write_entry(p, l, r, tlb_random); uasm_l_leave(l, *p); @@ -1603,15 +1609,17 @@ static void build_setup_pgd(void) uasm_i_dinsm(&p, a0, 0, 29, 64 - 29); uasm_l_tlbl_goaround1(&l, p); UASM_i_SLL(&p, a0, a0, 11); - uasm_i_jr(&p, 31); UASM_i_MTC0(&p, a0, C0_CONTEXT); + uasm_i_jr(&p, 31); + uasm_i_ehb(&p); } else { /* PGD in c0_KScratch */ - uasm_i_jr(&p, 31); if (cpu_has_ldpte) UASM_i_MTC0(&p, a0, C0_PWBASE); else UASM_i_MTC0(&p, a0, c0_kscratch(), pgd_reg); + uasm_i_jr(&p, 31); + uasm_i_ehb(&p); } #else #ifdef CONFIG_SMP @@ -1625,13 +1633,16 @@ static void build_setup_pgd(void) UASM_i_LA_mostly(&p, a2, pgdc); UASM_i_SW(&p, a0, uasm_rel_lo(pgdc), a2); #endif /* SMP */ - uasm_i_jr(&p, 31); /* if pgd_reg is allocated, save PGD also to scratch register */ - if (pgd_reg != -1) + if (pgd_reg != -1) { UASM_i_MTC0(&p, a0, c0_kscratch(), pgd_reg); - else + uasm_i_jr(&p, 31); + uasm_i_ehb(&p); + } else { + uasm_i_jr(&p, 31); uasm_i_nop(&p); + } #endif if (p >= (u32 *)tlbmiss_handler_setup_pgd_end) panic("tlbmiss_handler_setup_pgd space exceeded"); diff --git a/arch/parisc/kernel/module.c b/arch/parisc/kernel/module.c index f241ded9239b..1f0f29a289d3 100644 --- a/arch/parisc/kernel/module.c +++ b/arch/parisc/kernel/module.c @@ -786,6 +786,10 @@ int apply_relocate_add(Elf_Shdr *sechdrs, /* 32-bit PC relative address */ *loc = val - dot - 8 + addend; break; + case R_PARISC_PCREL64: + /* 64-bit PC relative address */ + *loc64 = val - dot - 8 + addend; + break; case R_PARISC_DIR64: /* 64-bit effective address */ *loc64 = val + addend; diff --git a/arch/powerpc/kernel/exceptions-64s.S b/arch/powerpc/kernel/exceptions-64s.S index 6b86055e5251..73ba246ca11d 100644 --- a/arch/powerpc/kernel/exceptions-64s.S +++ b/arch/powerpc/kernel/exceptions-64s.S @@ -315,7 +315,7 @@ TRAMP_REAL_BEGIN(machine_check_common_early) mfspr r11,SPRN_DSISR /* Save DSISR */ std r11,_DSISR(r1) std r9,_CCR(r1) /* Save CR in stackframe */ - kuap_save_amr_and_lock r9, r10, cr1 + /* We don't touch AMR here, we never go to virtual mode */ /* Save r9 through r13 from EXMC save area to stack frame. */ EXCEPTION_PROLOG_COMMON_2(PACA_EXMC) mfmsr r11 /* get MSR value */ diff --git a/arch/powerpc/mm/book3s64/mmu_context.c b/arch/powerpc/mm/book3s64/mmu_context.c index bb70391401f7..794404d50a85 100644 --- a/arch/powerpc/mm/book3s64/mmu_context.c +++ b/arch/powerpc/mm/book3s64/mmu_context.c @@ -50,20 +50,52 @@ EXPORT_SYMBOL_GPL(hash__alloc_context_id); void slb_setup_new_exec(void); +static int realloc_context_ids(mm_context_t *ctx) +{ + int i, id; + + /* + * id 0 (aka. ctx->id) is special, we always allocate a new one, even if + * there wasn't one allocated previously (which happens in the exec + * case where ctx is newly allocated). + * + * We have to be a bit careful here. We must keep the existing ids in + * the array, so that we can test if they're non-zero to decide if we + * need to allocate a new one. However in case of error we must free the + * ids we've allocated but *not* any of the existing ones (or risk a + * UAF). That's why we decrement i at the start of the error handling + * loop, to skip the id that we just tested but couldn't reallocate. + */ + for (i = 0; i < ARRAY_SIZE(ctx->extended_id); i++) { + if (i == 0 || ctx->extended_id[i]) { + id = hash__alloc_context_id(); + if (id < 0) + goto error; + + ctx->extended_id[i] = id; + } + } + + /* The caller expects us to return id */ + return ctx->id; + +error: + for (i--; i >= 0; i--) { + if (ctx->extended_id[i]) + ida_free(&mmu_context_ida, ctx->extended_id[i]); + } + + return id; +} + static int hash__init_new_context(struct mm_struct *mm) { int index; - index = hash__alloc_context_id(); - if (index < 0) - return index; - mm->context.hash_context = kmalloc(sizeof(struct hash_mm_context), GFP_KERNEL); - if (!mm->context.hash_context) { - ida_free(&mmu_context_ida, index); + if (!mm->context.hash_context) return -ENOMEM; - } /* * The old code would re-promote on fork, we don't do that when using @@ -91,13 +123,20 @@ static int hash__init_new_context(struct mm_struct *mm) mm->context.hash_context->spt = kmalloc(sizeof(struct subpage_prot_table), GFP_KERNEL); if (!mm->context.hash_context->spt) { - ida_free(&mmu_context_ida, index); kfree(mm->context.hash_context); return -ENOMEM; } } #endif + } + index = realloc_context_ids(&mm->context); + if (index < 0) { +#ifdef CONFIG_PPC_SUBPAGE_PROT + kfree(mm->context.hash_context->spt); +#endif + kfree(mm->context.hash_context); + return index; } pkey_mm_init(mm); diff --git a/arch/riscv/boot/dts/sifive/fu540-c000.dtsi b/arch/riscv/boot/dts/sifive/fu540-c000.dtsi index 3c06ee4b2b29..40983491b95f 100644 --- a/arch/riscv/boot/dts/sifive/fu540-c000.dtsi +++ b/arch/riscv/boot/dts/sifive/fu540-c000.dtsi @@ -163,6 +163,7 @@ interrupt-parent = <&plic0>; interrupts = <4>; clocks = <&prci PRCI_CLK_TLCLK>; + status = "disabled"; }; uart1: serial@10011000 { compatible = "sifive,fu540-c000-uart", "sifive,uart0"; @@ -170,6 +171,7 @@ interrupt-parent = <&plic0>; interrupts = <5>; clocks = <&prci PRCI_CLK_TLCLK>; + status = "disabled"; }; i2c0: i2c@10030000 { compatible = "sifive,fu540-c000-i2c", "sifive,i2c0"; @@ -181,6 +183,7 @@ reg-io-width = <1>; #address-cells = <1>; #size-cells = <0>; + status = "disabled"; }; qspi0: spi@10040000 { compatible = "sifive,fu540-c000-spi", "sifive,spi0"; @@ -191,6 +194,7 @@ clocks = <&prci PRCI_CLK_TLCLK>; #address-cells = <1>; #size-cells = <0>; + status = "disabled"; }; qspi1: spi@10041000 { compatible = "sifive,fu540-c000-spi", "sifive,spi0"; @@ -201,6 +205,7 @@ clocks = <&prci PRCI_CLK_TLCLK>; #address-cells = <1>; #size-cells = <0>; + status = "disabled"; }; qspi2: spi@10050000 { compatible = "sifive,fu540-c000-spi", "sifive,spi0"; @@ -210,6 +215,7 @@ clocks = <&prci PRCI_CLK_TLCLK>; #address-cells = <1>; #size-cells = <0>; + status = "disabled"; }; }; }; diff --git a/arch/riscv/boot/dts/sifive/hifive-unleashed-a00.dts b/arch/riscv/boot/dts/sifive/hifive-unleashed-a00.dts index 4da88707e28f..0b55c53c08c7 100644 --- a/arch/riscv/boot/dts/sifive/hifive-unleashed-a00.dts +++ b/arch/riscv/boot/dts/sifive/hifive-unleashed-a00.dts @@ -42,7 +42,20 @@ }; }; +&uart0 { + status = "okay"; +}; + +&uart1 { + status = "okay"; +}; + +&i2c0 { + status = "okay"; +}; + &qspi0 { + status = "okay"; flash@0 { compatible = "issi,is25wp256", "jedec,spi-nor"; reg = <0>; diff --git a/arch/riscv/configs/defconfig b/arch/riscv/configs/defconfig index 4f02967e55de..04944fb4fa7a 100644 --- a/arch/riscv/configs/defconfig +++ b/arch/riscv/configs/defconfig @@ -69,6 +69,7 @@ CONFIG_VIRTIO_MMIO=y CONFIG_CLK_SIFIVE=y CONFIG_CLK_SIFIVE_FU540_PRCI=y CONFIG_SIFIVE_PLIC=y +CONFIG_SPI_SIFIVE=y CONFIG_EXT4_FS=y CONFIG_EXT4_FS_POSIX_ACL=y CONFIG_AUTOFS4_FS=y @@ -84,4 +85,8 @@ CONFIG_ROOT_NFS=y CONFIG_CRYPTO_USER_API_HASH=y CONFIG_CRYPTO_DEV_VIRTIO=y CONFIG_PRINTK_TIME=y +CONFIG_SPI=y +CONFIG_MMC_SPI=y +CONFIG_MMC=y +CONFIG_DEVTMPFS_MOUNT=y # CONFIG_RCU_TRACE is not set diff --git a/arch/riscv/mm/fault.c b/arch/riscv/mm/fault.c index 3e2708c626a8..f960c3f4ce47 100644 --- a/arch/riscv/mm/fault.c +++ b/arch/riscv/mm/fault.c @@ -272,9 +272,6 @@ vmalloc_fault: * entries, but in RISC-V, SFENCE.VMA specifies an * ordering constraint, not a cache flush; it is * necessary even after writing invalid entries. - * Relying on flush_tlb_fix_spurious_fault would - * suffice, but the extra traps reduce - * performance. So, eagerly SFENCE.VMA. */ local_flush_tlb_page(addr); diff --git a/arch/x86/events/core.c b/arch/x86/events/core.c index f315425d8468..3cd94a21bd53 100644 --- a/arch/x86/events/core.c +++ b/arch/x86/events/core.c @@ -561,14 +561,14 @@ int x86_pmu_hw_config(struct perf_event *event) } /* sample_regs_user never support XMM registers */ - if (unlikely(event->attr.sample_regs_user & PEBS_XMM_REGS)) + if (unlikely(event->attr.sample_regs_user & PERF_REG_EXTENDED_MASK)) return -EINVAL; /* * Besides the general purpose registers, XMM registers may * be collected in PEBS on some platforms, e.g. Icelake */ - if (unlikely(event->attr.sample_regs_intr & PEBS_XMM_REGS)) { - if (x86_pmu.pebs_no_xmm_regs) + if (unlikely(event->attr.sample_regs_intr & PERF_REG_EXTENDED_MASK)) { + if (!(event->pmu->capabilities & PERF_PMU_CAP_EXTENDED_REGS)) return -EINVAL; if (!event->attr.precise_ip) @@ -2402,13 +2402,13 @@ perf_callchain_kernel(struct perf_callchain_entry_ctx *entry, struct pt_regs *re return; } - if (perf_hw_regs(regs)) { - if (perf_callchain_store(entry, regs->ip)) - return; + if (perf_callchain_store(entry, regs->ip)) + return; + + if (perf_hw_regs(regs)) unwind_start(&state, current, regs, NULL); - } else { + else unwind_start(&state, current, NULL, (void *)regs->sp); - } for (; !unwind_done(&state); unwind_next_frame(&state)) { addr = unwind_get_return_address(&state); diff --git a/arch/x86/events/intel/ds.c b/arch/x86/events/intel/ds.c index 7acc526b4ad2..505c73dc6a73 100644 --- a/arch/x86/events/intel/ds.c +++ b/arch/x86/events/intel/ds.c @@ -987,7 +987,7 @@ static u64 pebs_update_adaptive_cfg(struct perf_event *event) pebs_data_cfg |= PEBS_DATACFG_GP; if ((sample_type & PERF_SAMPLE_REGS_INTR) && - (attr->sample_regs_intr & PEBS_XMM_REGS)) + (attr->sample_regs_intr & PERF_REG_EXTENDED_MASK)) pebs_data_cfg |= PEBS_DATACFG_XMMS; if (sample_type & PERF_SAMPLE_BRANCH_STACK) { @@ -1964,10 +1964,9 @@ void __init intel_ds_init(void) x86_pmu.bts = boot_cpu_has(X86_FEATURE_BTS); x86_pmu.pebs = boot_cpu_has(X86_FEATURE_PEBS); x86_pmu.pebs_buffer_size = PEBS_BUFFER_SIZE; - if (x86_pmu.version <= 4) { + if (x86_pmu.version <= 4) x86_pmu.pebs_no_isolation = 1; - x86_pmu.pebs_no_xmm_regs = 1; - } + if (x86_pmu.pebs) { char pebs_type = x86_pmu.intel_cap.pebs_trap ? '+' : '-'; char *pebs_qual = ""; @@ -2020,9 +2019,9 @@ void __init intel_ds_init(void) PERF_SAMPLE_TIME; x86_pmu.flags |= PMU_FL_PEBS_ALL; pebs_qual = "-baseline"; + x86_get_pmu()->capabilities |= PERF_PMU_CAP_EXTENDED_REGS; } else { /* Only basic record supported */ - x86_pmu.pebs_no_xmm_regs = 1; x86_pmu.large_pebs_flags &= ~(PERF_SAMPLE_ADDR | PERF_SAMPLE_TIME | diff --git a/arch/x86/events/perf_event.h b/arch/x86/events/perf_event.h index a6ac2f4f76fc..4e346856ee19 100644 --- a/arch/x86/events/perf_event.h +++ b/arch/x86/events/perf_event.h @@ -121,24 +121,6 @@ struct amd_nb { (1ULL << PERF_REG_X86_R14) | \ (1ULL << PERF_REG_X86_R15)) -#define PEBS_XMM_REGS \ - ((1ULL << PERF_REG_X86_XMM0) | \ - (1ULL << PERF_REG_X86_XMM1) | \ - (1ULL << PERF_REG_X86_XMM2) | \ - (1ULL << PERF_REG_X86_XMM3) | \ - (1ULL << PERF_REG_X86_XMM4) | \ - (1ULL << PERF_REG_X86_XMM5) | \ - (1ULL << PERF_REG_X86_XMM6) | \ - (1ULL << PERF_REG_X86_XMM7) | \ - (1ULL << PERF_REG_X86_XMM8) | \ - (1ULL << PERF_REG_X86_XMM9) | \ - (1ULL << PERF_REG_X86_XMM10) | \ - (1ULL << PERF_REG_X86_XMM11) | \ - (1ULL << PERF_REG_X86_XMM12) | \ - (1ULL << PERF_REG_X86_XMM13) | \ - (1ULL << PERF_REG_X86_XMM14) | \ - (1ULL << PERF_REG_X86_XMM15)) - /* * Per register state. */ @@ -668,8 +650,7 @@ struct x86_pmu { pebs_broken :1, pebs_prec_dist :1, pebs_no_tlb :1, - pebs_no_isolation :1, - pebs_no_xmm_regs :1; + pebs_no_isolation :1; int pebs_record_size; int pebs_buffer_size; int max_pebs_events; diff --git a/arch/x86/include/uapi/asm/perf_regs.h b/arch/x86/include/uapi/asm/perf_regs.h index ac67bbea10ca..7c9d2bb3833b 100644 --- a/arch/x86/include/uapi/asm/perf_regs.h +++ b/arch/x86/include/uapi/asm/perf_regs.h @@ -52,4 +52,7 @@ enum perf_event_x86_regs { /* These include both GPRs and XMMX registers */ PERF_REG_X86_XMM_MAX = PERF_REG_X86_XMM15 + 2, }; + +#define PERF_REG_EXTENDED_MASK (~((1ULL << PERF_REG_X86_XMM0) - 1)) + #endif /* _ASM_X86_PERF_REGS_H */ diff --git a/arch/x86/kernel/apic/apic.c b/arch/x86/kernel/apic/apic.c index 177aa8ef2afa..85be316665b4 100644 --- a/arch/x86/kernel/apic/apic.c +++ b/arch/x86/kernel/apic/apic.c @@ -1464,7 +1464,8 @@ static void apic_pending_intr_clear(void) if (queued) { if (boot_cpu_has(X86_FEATURE_TSC) && cpu_khz) { ntsc = rdtsc(); - max_loops = (cpu_khz << 10) - (ntsc - tsc); + max_loops = (long long)cpu_khz << 10; + max_loops -= ntsc - tsc; } else { max_loops--; } diff --git a/arch/x86/kernel/cpu/bugs.c b/arch/x86/kernel/cpu/bugs.c index 03b4cc0ec3a7..66ca906aa790 100644 --- a/arch/x86/kernel/cpu/bugs.c +++ b/arch/x86/kernel/cpu/bugs.c @@ -835,6 +835,16 @@ static enum ssb_mitigation __init __ssb_select_mitigation(void) break; } + /* + * If SSBD is controlled by the SPEC_CTRL MSR, then set the proper + * bit in the mask to allow guests to use the mitigation even in the + * case where the host does not enable it. + */ + if (static_cpu_has(X86_FEATURE_SPEC_CTRL_SSBD) || + static_cpu_has(X86_FEATURE_AMD_SSBD)) { + x86_spec_ctrl_mask |= SPEC_CTRL_SSBD; + } + /* * We have three CPU feature flags that are in play here: * - X86_BUG_SPEC_STORE_BYPASS - CPU is susceptible. @@ -852,7 +862,6 @@ static enum ssb_mitigation __init __ssb_select_mitigation(void) x86_amd_ssb_disable(); } else { x86_spec_ctrl_base |= SPEC_CTRL_SSBD; - x86_spec_ctrl_mask |= SPEC_CTRL_SSBD; wrmsrl(MSR_IA32_SPEC_CTRL, x86_spec_ctrl_base); } } diff --git a/arch/x86/kernel/cpu/microcode/core.c b/arch/x86/kernel/cpu/microcode/core.c index a813987b5552..cb0fdcaf1415 100644 --- a/arch/x86/kernel/cpu/microcode/core.c +++ b/arch/x86/kernel/cpu/microcode/core.c @@ -789,13 +789,16 @@ static struct syscore_ops mc_syscore_ops = { .resume = mc_bp_resume, }; -static int mc_cpu_online(unsigned int cpu) +static int mc_cpu_starting(unsigned int cpu) { - struct device *dev; - - dev = get_cpu_device(cpu); microcode_update_cpu(cpu); pr_debug("CPU%d added\n", cpu); + return 0; +} + +static int mc_cpu_online(unsigned int cpu) +{ + struct device *dev = get_cpu_device(cpu); if (sysfs_create_group(&dev->kobj, &mc_attr_group)) pr_err("Failed to create group for CPU%d\n", cpu); @@ -872,7 +875,9 @@ int __init microcode_init(void) goto out_ucode_group; register_syscore_ops(&mc_syscore_ops); - cpuhp_setup_state_nocalls(CPUHP_AP_MICROCODE_LOADER, "x86/microcode:online", + cpuhp_setup_state_nocalls(CPUHP_AP_MICROCODE_LOADER, "x86/microcode:starting", + mc_cpu_starting, NULL); + cpuhp_setup_state_nocalls(CPUHP_AP_ONLINE_DYN, "x86/microcode:online", mc_cpu_online, mc_cpu_down_prep); pr_info("Microcode Update Driver: v%s.", DRIVER_VERSION); diff --git a/arch/x86/kernel/cpu/resctrl/rdtgroup.c b/arch/x86/kernel/cpu/resctrl/rdtgroup.c index 2131b8bbaad7..2f4824793798 100644 --- a/arch/x86/kernel/cpu/resctrl/rdtgroup.c +++ b/arch/x86/kernel/cpu/resctrl/rdtgroup.c @@ -796,8 +796,12 @@ static int rdt_bit_usage_show(struct kernfs_open_file *of, struct seq_file *seq, void *v) { struct rdt_resource *r = of->kn->parent->priv; - u32 sw_shareable = 0, hw_shareable = 0; - u32 exclusive = 0, pseudo_locked = 0; + /* + * Use unsigned long even though only 32 bits are used to ensure + * test_bit() is used safely. + */ + unsigned long sw_shareable = 0, hw_shareable = 0; + unsigned long exclusive = 0, pseudo_locked = 0; struct rdt_domain *dom; int i, hwb, swb, excl, psl; enum rdtgrp_mode mode; @@ -842,10 +846,10 @@ static int rdt_bit_usage_show(struct kernfs_open_file *of, } for (i = r->cache.cbm_len - 1; i >= 0; i--) { pseudo_locked = dom->plr ? dom->plr->cbm : 0; - hwb = test_bit(i, (unsigned long *)&hw_shareable); - swb = test_bit(i, (unsigned long *)&sw_shareable); - excl = test_bit(i, (unsigned long *)&exclusive); - psl = test_bit(i, (unsigned long *)&pseudo_locked); + hwb = test_bit(i, &hw_shareable); + swb = test_bit(i, &sw_shareable); + excl = test_bit(i, &exclusive); + psl = test_bit(i, &pseudo_locked); if (hwb && swb) seq_putc(seq, 'X'); else if (hwb && !swb) @@ -2486,26 +2490,19 @@ out_destroy: */ static void cbm_ensure_valid(u32 *_val, struct rdt_resource *r) { - /* - * Convert the u32 _val to an unsigned long required by all the bit - * operations within this function. No more than 32 bits of this - * converted value can be accessed because all bit operations are - * additionally provided with cbm_len that is initialized during - * hardware enumeration using five bits from the EAX register and - * thus never can exceed 32 bits. - */ - unsigned long *val = (unsigned long *)_val; + unsigned long val = *_val; unsigned int cbm_len = r->cache.cbm_len; unsigned long first_bit, zero_bit; - if (*val == 0) + if (val == 0) return; - first_bit = find_first_bit(val, cbm_len); - zero_bit = find_next_zero_bit(val, cbm_len, first_bit); + first_bit = find_first_bit(&val, cbm_len); + zero_bit = find_next_zero_bit(&val, cbm_len, first_bit); /* Clear any remaining bits to ensure contiguous region */ - bitmap_clear(val, zero_bit, cbm_len - zero_bit); + bitmap_clear(&val, zero_bit, cbm_len - zero_bit); + *_val = (u32)val; } /* diff --git a/arch/x86/kernel/ftrace.c b/arch/x86/kernel/ftrace.c index 0927bb158ffc..76228525acd0 100644 --- a/arch/x86/kernel/ftrace.c +++ b/arch/x86/kernel/ftrace.c @@ -22,6 +22,7 @@ #include #include #include +#include #include @@ -34,16 +35,25 @@ #ifdef CONFIG_DYNAMIC_FTRACE int ftrace_arch_code_modify_prepare(void) + __acquires(&text_mutex) { + /* + * Need to grab text_mutex to prevent a race from module loading + * and live kernel patching from changing the text permissions while + * ftrace has it set to "read/write". + */ + mutex_lock(&text_mutex); set_kernel_text_rw(); set_all_modules_text_rw(); return 0; } int ftrace_arch_code_modify_post_process(void) + __releases(&text_mutex) { set_all_modules_text_ro(); set_kernel_text_ro(); + mutex_unlock(&text_mutex); return 0; } diff --git a/arch/x86/kernel/head64.c b/arch/x86/kernel/head64.c index 16b1cbd3a61e..29ffa495bd1c 100644 --- a/arch/x86/kernel/head64.c +++ b/arch/x86/kernel/head64.c @@ -184,24 +184,25 @@ unsigned long __head __startup_64(unsigned long physaddr, pgtable_flags = _KERNPG_TABLE_NOENC + sme_get_me_mask(); if (la57) { - p4d = fixup_pointer(early_dynamic_pgts[next_early_pgt++], physaddr); + p4d = fixup_pointer(early_dynamic_pgts[(*next_pgt_ptr)++], + physaddr); i = (physaddr >> PGDIR_SHIFT) % PTRS_PER_PGD; pgd[i + 0] = (pgdval_t)p4d + pgtable_flags; pgd[i + 1] = (pgdval_t)p4d + pgtable_flags; - i = (physaddr >> P4D_SHIFT) % PTRS_PER_P4D; - p4d[i + 0] = (pgdval_t)pud + pgtable_flags; - p4d[i + 1] = (pgdval_t)pud + pgtable_flags; + i = physaddr >> P4D_SHIFT; + p4d[(i + 0) % PTRS_PER_P4D] = (pgdval_t)pud + pgtable_flags; + p4d[(i + 1) % PTRS_PER_P4D] = (pgdval_t)pud + pgtable_flags; } else { i = (physaddr >> PGDIR_SHIFT) % PTRS_PER_PGD; pgd[i + 0] = (pgdval_t)pud + pgtable_flags; pgd[i + 1] = (pgdval_t)pud + pgtable_flags; } - i = (physaddr >> PUD_SHIFT) % PTRS_PER_PUD; - pud[i + 0] = (pudval_t)pmd + pgtable_flags; - pud[i + 1] = (pudval_t)pmd + pgtable_flags; + i = physaddr >> PUD_SHIFT; + pud[(i + 0) % PTRS_PER_PUD] = (pudval_t)pmd + pgtable_flags; + pud[(i + 1) % PTRS_PER_PUD] = (pudval_t)pmd + pgtable_flags; pmd_entry = __PAGE_KERNEL_LARGE_EXEC & ~_PAGE_GLOBAL; /* Filter out unsupported __PAGE_KERNEL_* bits: */ @@ -211,8 +212,9 @@ unsigned long __head __startup_64(unsigned long physaddr, pmd_entry += physaddr; for (i = 0; i < DIV_ROUND_UP(_end - _text, PMD_SIZE); i++) { - int idx = i + (physaddr >> PMD_SHIFT) % PTRS_PER_PMD; - pmd[idx] = pmd_entry + i * PMD_SIZE; + int idx = i + (physaddr >> PMD_SHIFT); + + pmd[idx % PTRS_PER_PMD] = pmd_entry + i * PMD_SIZE; } /* diff --git a/arch/x86/kernel/perf_regs.c b/arch/x86/kernel/perf_regs.c index 07c30ee17425..bb7e1132290b 100644 --- a/arch/x86/kernel/perf_regs.c +++ b/arch/x86/kernel/perf_regs.c @@ -74,6 +74,9 @@ u64 perf_reg_value(struct pt_regs *regs, int idx) return regs_get_register(regs, pt_regs_offset[idx]); } +#define PERF_REG_X86_RESERVED (((1ULL << PERF_REG_X86_XMM0) - 1) & \ + ~((1ULL << PERF_REG_X86_MAX) - 1)) + #ifdef CONFIG_X86_32 #define REG_NOSUPPORT ((1ULL << PERF_REG_X86_R8) | \ (1ULL << PERF_REG_X86_R9) | \ @@ -86,7 +89,7 @@ u64 perf_reg_value(struct pt_regs *regs, int idx) int perf_reg_validate(u64 mask) { - if (!mask || (mask & REG_NOSUPPORT)) + if (!mask || (mask & (REG_NOSUPPORT | PERF_REG_X86_RESERVED))) return -EINVAL; return 0; @@ -112,7 +115,7 @@ void perf_get_regs_user(struct perf_regs *regs_user, int perf_reg_validate(u64 mask) { - if (!mask || (mask & REG_NOSUPPORT)) + if (!mask || (mask & (REG_NOSUPPORT | PERF_REG_X86_RESERVED))) return -EINVAL; return 0; diff --git a/arch/x86/kernel/unwind_orc.c b/arch/x86/kernel/unwind_orc.c index 33b66b5c5aec..72b997eaa1fc 100644 --- a/arch/x86/kernel/unwind_orc.c +++ b/arch/x86/kernel/unwind_orc.c @@ -82,9 +82,9 @@ static struct orc_entry *orc_find(unsigned long ip); * But they are copies of the ftrace entries that are static and * defined in ftrace_*.S, which do have orc entries. * - * If the undwinder comes across a ftrace trampoline, then find the + * If the unwinder comes across a ftrace trampoline, then find the * ftrace function that was used to create it, and use that ftrace - * function's orc entrie, as the placement of the return code in + * function's orc entry, as the placement of the return code in * the stack will be identical. */ static struct orc_entry *orc_ftrace_find(unsigned long ip) @@ -128,6 +128,16 @@ static struct orc_entry null_orc_entry = { .type = ORC_TYPE_CALL }; +/* Fake frame pointer entry -- used as a fallback for generated code */ +static struct orc_entry orc_fp_entry = { + .type = ORC_TYPE_CALL, + .sp_reg = ORC_REG_BP, + .sp_offset = 16, + .bp_reg = ORC_REG_PREV_SP, + .bp_offset = -16, + .end = 0, +}; + static struct orc_entry *orc_find(unsigned long ip) { static struct orc_entry *orc; @@ -392,8 +402,16 @@ bool unwind_next_frame(struct unwind_state *state) * calls and calls to noreturn functions. */ orc = orc_find(state->signal ? state->ip : state->ip - 1); - if (!orc) - goto err; + if (!orc) { + /* + * As a fallback, try to assume this code uses a frame pointer. + * This is useful for generated code, like BPF, which ORC + * doesn't know about. This is just a guess, so the rest of + * the unwind is no longer considered reliable. + */ + orc = &orc_fp_entry; + state->error = true; + } /* End-of-stack check for kernel threads: */ if (orc->sp_reg == ORC_REG_UNDEFINED) { diff --git a/arch/x86/kvm/lapic.c b/arch/x86/kvm/lapic.c index a21c440ff356..4dabc318adb8 100644 --- a/arch/x86/kvm/lapic.c +++ b/arch/x86/kvm/lapic.c @@ -2339,7 +2339,7 @@ int kvm_apic_has_interrupt(struct kvm_vcpu *vcpu) struct kvm_lapic *apic = vcpu->arch.apic; u32 ppr; - if (!apic_enabled(apic)) + if (!kvm_apic_hw_enabled(apic)) return -1; __apic_update_ppr(apic, &ppr); diff --git a/arch/x86/kvm/vmx/nested.c b/arch/x86/kvm/vmx/nested.c index 5f9c1a200201..46af3a5e9209 100644 --- a/arch/x86/kvm/vmx/nested.c +++ b/arch/x86/kvm/vmx/nested.c @@ -5240,9 +5240,6 @@ static int vmx_get_nested_state(struct kvm_vcpu *vcpu, vmx = to_vmx(vcpu); vmcs12 = get_vmcs12(vcpu); - if (nested_vmx_allowed(vcpu) && vmx->nested.enlightened_vmcs_enabled) - kvm_state.flags |= KVM_STATE_NESTED_EVMCS; - if (nested_vmx_allowed(vcpu) && (vmx->nested.vmxon || vmx->nested.smm.vmxon)) { kvm_state.hdr.vmx.vmxon_pa = vmx->nested.vmxon_ptr; @@ -5251,6 +5248,9 @@ static int vmx_get_nested_state(struct kvm_vcpu *vcpu, if (vmx_has_valid_vmcs12(vcpu)) { kvm_state.size += sizeof(user_vmx_nested_state->vmcs12); + if (vmx->nested.hv_evmcs) + kvm_state.flags |= KVM_STATE_NESTED_EVMCS; + if (is_guest_mode(vcpu) && nested_cpu_has_shadow_vmcs(vmcs12) && vmcs12->vmcs_link_pointer != -1ull) @@ -5350,6 +5350,15 @@ static int vmx_set_nested_state(struct kvm_vcpu *vcpu, if (kvm_state->hdr.vmx.vmcs12_pa != -1ull) return -EINVAL; + /* + * KVM_STATE_NESTED_EVMCS used to signal that KVM should + * enable eVMCS capability on vCPU. However, since then + * code was changed such that flag signals vmcs12 should + * be copied into eVMCS in guest memory. + * + * To preserve backwards compatability, allow user + * to set this flag even when there is no VMXON region. + */ if (kvm_state->flags & ~KVM_STATE_NESTED_EVMCS) return -EINVAL; } else { @@ -5358,7 +5367,7 @@ static int vmx_set_nested_state(struct kvm_vcpu *vcpu, if (!page_address_valid(vcpu, kvm_state->hdr.vmx.vmxon_pa)) return -EINVAL; - } + } if ((kvm_state->hdr.vmx.smm.flags & KVM_STATE_NESTED_SMM_GUEST_MODE) && (kvm_state->flags & KVM_STATE_NESTED_GUEST_MODE)) @@ -5373,20 +5382,21 @@ static int vmx_set_nested_state(struct kvm_vcpu *vcpu, * nor can VMLAUNCH/VMRESUME be pending. Outside SMM, SMM flags * must be zero. */ - if (is_smm(vcpu) ? kvm_state->flags : kvm_state->hdr.vmx.smm.flags) + if (is_smm(vcpu) ? + (kvm_state->flags & + (KVM_STATE_NESTED_GUEST_MODE | KVM_STATE_NESTED_RUN_PENDING)) + : kvm_state->hdr.vmx.smm.flags) return -EINVAL; if ((kvm_state->hdr.vmx.smm.flags & KVM_STATE_NESTED_SMM_GUEST_MODE) && !(kvm_state->hdr.vmx.smm.flags & KVM_STATE_NESTED_SMM_VMXON)) return -EINVAL; - vmx_leave_nested(vcpu); - if (kvm_state->flags & KVM_STATE_NESTED_EVMCS) { - if (!nested_vmx_allowed(vcpu)) + if ((kvm_state->flags & KVM_STATE_NESTED_EVMCS) && + (!nested_vmx_allowed(vcpu) || !vmx->nested.enlightened_vmcs_enabled)) return -EINVAL; - nested_enable_evmcs(vcpu, NULL); - } + vmx_leave_nested(vcpu); if (kvm_state->hdr.vmx.vmxon_pa == -1ull) return 0; diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c index 9857992d4e58..fafd81d2c9ea 100644 --- a/arch/x86/kvm/x86.c +++ b/arch/x86/kvm/x86.c @@ -1554,7 +1554,7 @@ static int set_tsc_khz(struct kvm_vcpu *vcpu, u32 user_tsc_khz, bool scale) vcpu->arch.tsc_always_catchup = 1; return 0; } else { - WARN(1, "user requested TSC rate below hardware speed\n"); + pr_warn_ratelimited("user requested TSC rate below hardware speed\n"); return -1; } } @@ -1564,8 +1564,8 @@ static int set_tsc_khz(struct kvm_vcpu *vcpu, u32 user_tsc_khz, bool scale) user_tsc_khz, tsc_khz); if (ratio == 0 || ratio >= kvm_max_tsc_scaling_ratio) { - WARN_ONCE(1, "Invalid TSC scaling ratio - virtual-tsc-khz=%u\n", - user_tsc_khz); + pr_warn_ratelimited("Invalid TSC scaling ratio - virtual-tsc-khz=%u\n", + user_tsc_khz); return -1; } diff --git a/arch/x86/mm/init_64.c b/arch/x86/mm/init_64.c index 693aaf28d5fe..0f01c7b1d217 100644 --- a/arch/x86/mm/init_64.c +++ b/arch/x86/mm/init_64.c @@ -671,23 +671,25 @@ static unsigned long __meminit phys_p4d_init(p4d_t *p4d_page, unsigned long paddr, unsigned long paddr_end, unsigned long page_size_mask, bool init) { - unsigned long paddr_next, paddr_last = paddr_end; - unsigned long vaddr = (unsigned long)__va(paddr); - int i = p4d_index(vaddr); + unsigned long vaddr, vaddr_end, vaddr_next, paddr_next, paddr_last; + + paddr_last = paddr_end; + vaddr = (unsigned long)__va(paddr); + vaddr_end = (unsigned long)__va(paddr_end); if (!pgtable_l5_enabled()) return phys_pud_init((pud_t *) p4d_page, paddr, paddr_end, page_size_mask, init); - for (; i < PTRS_PER_P4D; i++, paddr = paddr_next) { - p4d_t *p4d; + for (; vaddr < vaddr_end; vaddr = vaddr_next) { + p4d_t *p4d = p4d_page + p4d_index(vaddr); pud_t *pud; - vaddr = (unsigned long)__va(paddr); - p4d = p4d_page + p4d_index(vaddr); - paddr_next = (paddr & P4D_MASK) + P4D_SIZE; + vaddr_next = (vaddr & P4D_MASK) + P4D_SIZE; + paddr = __pa(vaddr); if (paddr >= paddr_end) { + paddr_next = __pa(vaddr_next); if (!after_bootmem && !e820__mapped_any(paddr & P4D_MASK, paddr_next, E820_TYPE_RAM) && @@ -699,13 +701,13 @@ phys_p4d_init(p4d_t *p4d_page, unsigned long paddr, unsigned long paddr_end, if (!p4d_none(*p4d)) { pud = pud_offset(p4d, 0); - paddr_last = phys_pud_init(pud, paddr, paddr_end, - page_size_mask, init); + paddr_last = phys_pud_init(pud, paddr, __pa(vaddr_end), + page_size_mask, init); continue; } pud = alloc_low_page(); - paddr_last = phys_pud_init(pud, paddr, paddr_end, + paddr_last = phys_pud_init(pud, paddr, __pa(vaddr_end), page_size_mask, init); spin_lock(&init_mm.page_table_lock); diff --git a/arch/x86/platform/efi/quirks.c b/arch/x86/platform/efi/quirks.c index 632b83885867..3b9fd679cea9 100644 --- a/arch/x86/platform/efi/quirks.c +++ b/arch/x86/platform/efi/quirks.c @@ -728,7 +728,7 @@ void efi_recover_from_page_fault(unsigned long phys_addr) * Address range 0x0000 - 0x0fff is always mapped in the efi_pgd, so * page faulting on these addresses isn't expected. */ - if (phys_addr >= 0x0000 && phys_addr <= 0x0fff) + if (phys_addr <= 0x0fff) return; /* diff --git a/block/bfq-iosched.c b/block/bfq-iosched.c index f8d430f88d25..f9269ae6da9c 100644 --- a/block/bfq-iosched.c +++ b/block/bfq-iosched.c @@ -240,7 +240,7 @@ static struct kmem_cache *bfq_pool; * containing only random (seeky) I/O are prevented from being tagged * as soft real-time. */ -#define BFQQ_TOTALLY_SEEKY(bfqq) (bfqq->seek_history & -1) +#define BFQQ_TOTALLY_SEEKY(bfqq) (bfqq->seek_history == -1) /* Min number of samples required to perform peak-rate update */ #define BFQ_RATE_MIN_SAMPLES 32 diff --git a/block/blk-mq-debugfs.c b/block/blk-mq-debugfs.c index 2489ddbb21db..3afe327f816f 100644 --- a/block/blk-mq-debugfs.c +++ b/block/blk-mq-debugfs.c @@ -934,6 +934,13 @@ void blk_mq_debugfs_register_sched(struct request_queue *q) { struct elevator_type *e = q->elevator->type; + /* + * If the parent directory has not been created yet, return, we will be + * called again later on and the directory/files will be created then. + */ + if (!q->debugfs_dir) + return; + if (!e->queue_debugfs_attrs) return; diff --git a/build.config.cuttlefish.aarch64 b/build.config.cuttlefish.aarch64 index bec1288d65e1..40c8d7a5219c 100644 --- a/build.config.cuttlefish.aarch64 +++ b/build.config.cuttlefish.aarch64 @@ -8,6 +8,7 @@ EXTRA_CMDS='' KERNEL_DIR=common POST_DEFCONFIG_CMDS="check_defconfig" CLANG_PREBUILT_BIN=prebuilts-master/clang/host/linux-x86/clang-r353983c/bin +BUILDTOOLS_PREBUILT_BIN=prebuilts/build-tools/path/linux-x86 LINUX_GCC_CROSS_COMPILE_PREBUILTS_BIN=prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/bin FILES=" arch/arm64/boot/Image.gz diff --git a/build.config.cuttlefish.x86_64 b/build.config.cuttlefish.x86_64 index 33063abed0ed..c9496b0d2ce6 100644 --- a/build.config.cuttlefish.x86_64 +++ b/build.config.cuttlefish.x86_64 @@ -8,6 +8,7 @@ EXTRA_CMDS='' KERNEL_DIR=common POST_DEFCONFIG_CMDS="check_defconfig" CLANG_PREBUILT_BIN=prebuilts-master/clang/host/linux-x86/clang-r353983c/bin +BUILDTOOLS_PREBUILT_BIN=prebuilts/build-tools/path/linux-x86 LINUX_GCC_CROSS_COMPILE_PREBUILTS_BIN=prebuilts/gcc/linux-x86/x86/x86_64-linux-android-4.9/bin FILES=" arch/x86/boot/bzImage diff --git a/build.config.gki.aarch64 b/build.config.gki.aarch64 index 408a2d1877e1..fce42ab0daa3 100644 --- a/build.config.gki.aarch64 +++ b/build.config.gki.aarch64 @@ -8,6 +8,7 @@ EXTRA_CMDS='' KERNEL_DIR=common POST_DEFCONFIG_CMDS="check_defconfig" CLANG_PREBUILT_BIN=prebuilts-master/clang/host/linux-x86/clang-r353983c/bin +BUILDTOOLS_PREBUILT_BIN=prebuilts/build-tools/path/linux-x86 LINUX_GCC_CROSS_COMPILE_PREBUILTS_BIN=prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/bin FILES=" arch/arm64/boot/Image.gz diff --git a/build.config.gki.x86_64 b/build.config.gki.x86_64 index 69d339dce4a0..3ce45e962732 100644 --- a/build.config.gki.x86_64 +++ b/build.config.gki.x86_64 @@ -8,6 +8,7 @@ EXTRA_CMDS='' KERNEL_DIR=common POST_DEFCONFIG_CMDS="check_defconfig" CLANG_PREBUILT_BIN=prebuilts-master/clang/host/linux-x86/clang-r353983c/bin +BUILDTOOLS_PREBUILT_BIN=prebuilts/build-tools/path/linux-x86 LINUX_GCC_CROSS_COMPILE_PREBUILTS_BIN=prebuilts/gcc/linux-x86/x86/x86_64-linux-android-4.9/bin FILES=" arch/x86/boot/bzImage diff --git a/crypto/cryptd.c b/crypto/cryptd.c index 1ce1bf6d3bab..5f76c6e222c6 100644 --- a/crypto/cryptd.c +++ b/crypto/cryptd.c @@ -388,6 +388,7 @@ static void cryptd_skcipher_free(struct skcipher_instance *inst) struct skcipherd_instance_ctx *ctx = skcipher_instance_ctx(inst); crypto_drop_skcipher(&ctx->spawn); + kfree(inst); } static int cryptd_create_skcipher(struct crypto_template *tmpl, diff --git a/crypto/crypto_user_base.c b/crypto/crypto_user_base.c index d5d5d155340b..c65e39005ce2 100644 --- a/crypto/crypto_user_base.c +++ b/crypto/crypto_user_base.c @@ -44,6 +44,9 @@ struct crypto_alg *crypto_alg_match(struct crypto_user_alg *p, int exact) list_for_each_entry(q, &crypto_alg_list, cra_list) { int match = 0; + if (crypto_is_larval(q)) + continue; + if ((q->cra_flags ^ p->cru_type) & p->cru_mask) continue; diff --git a/drivers/auxdisplay/cfag12864bfb.c b/drivers/auxdisplay/cfag12864bfb.c index 40c8a552a478..4074886b7bc8 100644 --- a/drivers/auxdisplay/cfag12864bfb.c +++ b/drivers/auxdisplay/cfag12864bfb.c @@ -52,8 +52,9 @@ static const struct fb_var_screeninfo cfag12864bfb_var = { static int cfag12864bfb_mmap(struct fb_info *info, struct vm_area_struct *vma) { - return vm_insert_page(vma, vma->vm_start, - virt_to_page(cfag12864b_buffer)); + struct page *pages = virt_to_page(cfag12864b_buffer); + + return vm_map_pages_zero(vma, &pages, 1); } static struct fb_ops cfag12864bfb_ops = { diff --git a/drivers/auxdisplay/ht16k33.c b/drivers/auxdisplay/ht16k33.c index 21393ec3b9a4..9c0bb771751d 100644 --- a/drivers/auxdisplay/ht16k33.c +++ b/drivers/auxdisplay/ht16k33.c @@ -223,9 +223,9 @@ static const struct backlight_ops ht16k33_bl_ops = { static int ht16k33_mmap(struct fb_info *info, struct vm_area_struct *vma) { struct ht16k33_priv *priv = info->par; + struct page *pages = virt_to_page(priv->fbdev.buffer); - return vm_insert_page(vma, vma->vm_start, - virt_to_page(priv->fbdev.buffer)); + return vm_map_pages_zero(vma, &pages, 1); } static struct fb_ops ht16k33_fb_ops = { diff --git a/drivers/clk/clk.c b/drivers/clk/clk.c index aa51756fd4d6..87b410d6e51d 100644 --- a/drivers/clk/clk.c +++ b/drivers/clk/clk.c @@ -368,7 +368,7 @@ static struct clk_core *clk_core_get(struct clk_core *core, u8 p_index) const char *dev_id = dev ? dev_name(dev) : NULL; struct device_node *np = core->of_node; - if (np && index >= 0) + if (np && (name || index >= 0)) hw = of_clk_get_hw(np, index, name); /* diff --git a/drivers/clk/meson/g12a.c b/drivers/clk/meson/g12a.c index 739f64fdf1e3..206fafd299ea 100644 --- a/drivers/clk/meson/g12a.c +++ b/drivers/clk/meson/g12a.c @@ -2734,8 +2734,8 @@ static struct clk_hw_onecell_data g12a_hw_onecell_data = { [CLKID_MALI_1_DIV] = &g12a_mali_1_div.hw, [CLKID_MALI_1] = &g12a_mali_1.hw, [CLKID_MALI] = &g12a_mali.hw, - [CLKID_MPLL_5OM_DIV] = &g12a_mpll_50m_div.hw, - [CLKID_MPLL_5OM] = &g12a_mpll_50m.hw, + [CLKID_MPLL_50M_DIV] = &g12a_mpll_50m_div.hw, + [CLKID_MPLL_50M] = &g12a_mpll_50m.hw, [CLKID_SYS_PLL_DIV16_EN] = &g12a_sys_pll_div16_en.hw, [CLKID_SYS_PLL_DIV16] = &g12a_sys_pll_div16.hw, [CLKID_CPU_CLK_DYN0_SEL] = &g12a_cpu_clk_premux0.hw, diff --git a/drivers/clk/meson/g12a.h b/drivers/clk/meson/g12a.h index 39c41af70804..bcc05cd9882f 100644 --- a/drivers/clk/meson/g12a.h +++ b/drivers/clk/meson/g12a.h @@ -166,7 +166,7 @@ #define CLKID_HDMI_DIV 167 #define CLKID_MALI_0_DIV 170 #define CLKID_MALI_1_DIV 173 -#define CLKID_MPLL_5OM_DIV 176 +#define CLKID_MPLL_50M_DIV 176 #define CLKID_SYS_PLL_DIV16_EN 178 #define CLKID_SYS_PLL_DIV16 179 #define CLKID_CPU_CLK_DYN0_SEL 180 diff --git a/drivers/clk/meson/meson8b.c b/drivers/clk/meson/meson8b.c index 37cf0f01bb5d..62cd3a7f1f65 100644 --- a/drivers/clk/meson/meson8b.c +++ b/drivers/clk/meson/meson8b.c @@ -1761,7 +1761,7 @@ static struct clk_regmap meson8m2_gp_pll = { }, }; -static const char * const mmeson8b_vpu_0_1_parent_names[] = { +static const char * const meson8b_vpu_0_1_parent_names[] = { "fclk_div4", "fclk_div3", "fclk_div5", "fclk_div7" }; @@ -1778,8 +1778,8 @@ static struct clk_regmap meson8b_vpu_0_sel = { .hw.init = &(struct clk_init_data){ .name = "vpu_0_sel", .ops = &clk_regmap_mux_ops, - .parent_names = mmeson8b_vpu_0_1_parent_names, - .num_parents = ARRAY_SIZE(mmeson8b_vpu_0_1_parent_names), + .parent_names = meson8b_vpu_0_1_parent_names, + .num_parents = ARRAY_SIZE(meson8b_vpu_0_1_parent_names), .flags = CLK_SET_RATE_PARENT, }, }; @@ -1837,8 +1837,8 @@ static struct clk_regmap meson8b_vpu_1_sel = { .hw.init = &(struct clk_init_data){ .name = "vpu_1_sel", .ops = &clk_regmap_mux_ops, - .parent_names = mmeson8b_vpu_0_1_parent_names, - .num_parents = ARRAY_SIZE(mmeson8b_vpu_0_1_parent_names), + .parent_names = meson8b_vpu_0_1_parent_names, + .num_parents = ARRAY_SIZE(meson8b_vpu_0_1_parent_names), .flags = CLK_SET_RATE_PARENT, }, }; diff --git a/drivers/clk/socfpga/clk-s10.c b/drivers/clk/socfpga/clk-s10.c index 8281dfbf38c2..5bed36e12951 100644 --- a/drivers/clk/socfpga/clk-s10.c +++ b/drivers/clk/socfpga/clk-s10.c @@ -103,9 +103,9 @@ static const struct stratix10_perip_cnt_clock s10_main_perip_cnt_clks[] = { { STRATIX10_NOC_CLK, "noc_clk", NULL, noc_mux, ARRAY_SIZE(noc_mux), 0, 0, 0, 0x3C, 1}, { STRATIX10_EMAC_A_FREE_CLK, "emaca_free_clk", NULL, emaca_free_mux, ARRAY_SIZE(emaca_free_mux), - 0, 0, 4, 0xB0, 0}, + 0, 0, 2, 0xB0, 0}, { STRATIX10_EMAC_B_FREE_CLK, "emacb_free_clk", NULL, emacb_free_mux, ARRAY_SIZE(emacb_free_mux), - 0, 0, 4, 0xB0, 1}, + 0, 0, 2, 0xB0, 1}, { STRATIX10_EMAC_PTP_FREE_CLK, "emac_ptp_free_clk", NULL, emac_ptp_free_mux, ARRAY_SIZE(emac_ptp_free_mux), 0, 0, 4, 0xB0, 2}, { STRATIX10_GPIO_DB_FREE_CLK, "gpio_db_free_clk", NULL, gpio_db_free_mux, diff --git a/drivers/clk/tegra/clk-tegra210.c b/drivers/clk/tegra/clk-tegra210.c index e1ba62d2b1a0..ac1d27a8c650 100644 --- a/drivers/clk/tegra/clk-tegra210.c +++ b/drivers/clk/tegra/clk-tegra210.c @@ -3366,6 +3366,8 @@ static struct tegra_clk_init_table init_table[] __initdata = { { TEGRA210_CLK_I2S3_SYNC, TEGRA210_CLK_CLK_MAX, 24576000, 0 }, { TEGRA210_CLK_I2S4_SYNC, TEGRA210_CLK_CLK_MAX, 24576000, 0 }, { TEGRA210_CLK_VIMCLK_SYNC, TEGRA210_CLK_CLK_MAX, 24576000, 0 }, + { TEGRA210_CLK_HDA, TEGRA210_CLK_PLL_P, 51000000, 0 }, + { TEGRA210_CLK_HDA2CODEC_2X, TEGRA210_CLK_PLL_P, 48000000, 0 }, /* This MUST be the last entry. */ { TEGRA210_CLK_CLK_MAX, TEGRA210_CLK_CLK_MAX, 0, 0 }, }; diff --git a/drivers/clk/ti/clkctrl.c b/drivers/clk/ti/clkctrl.c index 8e834317c97d..975995eea15c 100644 --- a/drivers/clk/ti/clkctrl.c +++ b/drivers/clk/ti/clkctrl.c @@ -229,6 +229,7 @@ static struct clk_hw *_ti_omap4_clkctrl_xlate(struct of_phandle_args *clkspec, { struct omap_clkctrl_provider *provider = data; struct omap_clkctrl_clk *entry; + bool found = false; if (clkspec->args_count != 2) return ERR_PTR(-EINVAL); @@ -238,11 +239,13 @@ static struct clk_hw *_ti_omap4_clkctrl_xlate(struct of_phandle_args *clkspec, list_for_each_entry(entry, &provider->clocks, node) { if (entry->reg_offset == clkspec->args[0] && - entry->bit_offset == clkspec->args[1]) + entry->bit_offset == clkspec->args[1]) { + found = true; break; + } } - if (!entry) + if (!found) return ERR_PTR(-EINVAL); return entry->clk; diff --git a/drivers/dma/dma-jz4780.c b/drivers/dma/dma-jz4780.c index 263bee76ef0d..6b8c4c458e8a 100644 --- a/drivers/dma/dma-jz4780.c +++ b/drivers/dma/dma-jz4780.c @@ -718,12 +718,13 @@ static irqreturn_t jz4780_dma_irq_handler(int irq, void *data) { struct jz4780_dma_dev *jzdma = data; unsigned int nb_channels = jzdma->soc_data->nb_channels; - uint32_t pending, dmac; + unsigned long pending; + uint32_t dmac; int i; pending = jz4780_dma_ctrl_readl(jzdma, JZ_DMA_REG_DIRQP); - for_each_set_bit(i, (unsigned long *)&pending, nb_channels) { + for_each_set_bit(i, &pending, nb_channels) { if (jz4780_dma_chan_irq(jzdma, &jzdma->chan[i])) pending &= ~BIT(i); } diff --git a/drivers/dma/imx-sdma.c b/drivers/dma/imx-sdma.c index 99d9f431ae2c..4ec84a633bd3 100644 --- a/drivers/dma/imx-sdma.c +++ b/drivers/dma/imx-sdma.c @@ -703,7 +703,7 @@ static int sdma_load_script(struct sdma_engine *sdma, void *buf, int size, spin_lock_irqsave(&sdma->channel_0_lock, flags); bd0->mode.command = C0_SETPM; - bd0->mode.status = BD_DONE | BD_INTR | BD_WRAP | BD_EXTD; + bd0->mode.status = BD_DONE | BD_WRAP | BD_EXTD; bd0->mode.count = size / 2; bd0->buffer_addr = buf_phys; bd0->ext_buffer_addr = address; @@ -1025,7 +1025,7 @@ static int sdma_load_context(struct sdma_channel *sdmac) context->gReg[7] = sdmac->watermark_level; bd0->mode.command = C0_SETDM; - bd0->mode.status = BD_DONE | BD_INTR | BD_WRAP | BD_EXTD; + bd0->mode.status = BD_DONE | BD_WRAP | BD_EXTD; bd0->mode.count = sizeof(*context) / 4; bd0->buffer_addr = sdma->context_phys; bd0->ext_buffer_addr = 2048 + (sizeof(*context) / 4) * channel; @@ -2096,27 +2096,6 @@ static int sdma_probe(struct platform_device *pdev) if (pdata && pdata->script_addrs) sdma_add_scripts(sdma, pdata->script_addrs); - if (pdata) { - ret = sdma_get_firmware(sdma, pdata->fw_name); - if (ret) - dev_warn(&pdev->dev, "failed to get firmware from platform data\n"); - } else { - /* - * Because that device tree does not encode ROM script address, - * the RAM script in firmware is mandatory for device tree - * probe, otherwise it fails. - */ - ret = of_property_read_string(np, "fsl,sdma-ram-script-name", - &fw_name); - if (ret) - dev_warn(&pdev->dev, "failed to get firmware name\n"); - else { - ret = sdma_get_firmware(sdma, fw_name); - if (ret) - dev_warn(&pdev->dev, "failed to get firmware from device tree\n"); - } - } - sdma->dma_device.dev = &pdev->dev; sdma->dma_device.device_alloc_chan_resources = sdma_alloc_chan_resources; @@ -2161,6 +2140,33 @@ static int sdma_probe(struct platform_device *pdev) of_node_put(spba_bus); } + /* + * Kick off firmware loading as the very last step: + * attempt to load firmware only if we're not on the error path, because + * the firmware callback requires a fully functional and allocated sdma + * instance. + */ + if (pdata) { + ret = sdma_get_firmware(sdma, pdata->fw_name); + if (ret) + dev_warn(&pdev->dev, "failed to get firmware from platform data\n"); + } else { + /* + * Because that device tree does not encode ROM script address, + * the RAM script in firmware is mandatory for device tree + * probe, otherwise it fails. + */ + ret = of_property_read_string(np, "fsl,sdma-ram-script-name", + &fw_name); + if (ret) { + dev_warn(&pdev->dev, "failed to get firmware name\n"); + } else { + ret = sdma_get_firmware(sdma, fw_name); + if (ret) + dev_warn(&pdev->dev, "failed to get firmware from device tree\n"); + } + } + return 0; err_register: diff --git a/drivers/dma/qcom/bam_dma.c b/drivers/dma/qcom/bam_dma.c index 4b43844f6af5..8e90a405939d 100644 --- a/drivers/dma/qcom/bam_dma.c +++ b/drivers/dma/qcom/bam_dma.c @@ -799,6 +799,9 @@ static u32 process_channel_irqs(struct bam_device *bdev) /* Number of bytes available to read */ avail = CIRC_CNT(offset, bchan->head, MAX_DESCRIPTORS + 1); + if (offset < bchan->head) + avail--; + list_for_each_entry_safe(async_desc, tmp, &bchan->desc_list, desc_node) { /* Not enough data to read */ diff --git a/drivers/firmware/efi/efi-bgrt.c b/drivers/firmware/efi/efi-bgrt.c index a2384184a7de..b07c17643210 100644 --- a/drivers/firmware/efi/efi-bgrt.c +++ b/drivers/firmware/efi/efi-bgrt.c @@ -47,11 +47,6 @@ void __init efi_bgrt_init(struct acpi_table_header *table) bgrt->version); goto out; } - if (bgrt->status & 0xfe) { - pr_notice("Ignoring BGRT: reserved status bits are non-zero %u\n", - bgrt->status); - goto out; - } if (bgrt->image_type != 0) { pr_notice("Ignoring BGRT: invalid image type %u (expected 0)\n", bgrt->image_type); diff --git a/drivers/firmware/efi/efi.c b/drivers/firmware/efi/efi.c index 16b2137d117c..4b7cf7bc0ded 100644 --- a/drivers/firmware/efi/efi.c +++ b/drivers/firmware/efi/efi.c @@ -1009,14 +1009,16 @@ int __ref efi_mem_reserve_persistent(phys_addr_t addr, u64 size) /* first try to find a slot in an existing linked list entry */ for (prsv = efi_memreserve_root->next; prsv; prsv = rsv->next) { - rsv = __va(prsv); + rsv = memremap(prsv, sizeof(*rsv), MEMREMAP_WB); index = atomic_fetch_add_unless(&rsv->count, 1, rsv->size); if (index < rsv->size) { rsv->entry[index].base = addr; rsv->entry[index].size = size; + memunmap(rsv); return 0; } + memunmap(rsv); } /* no slot found - allocate a new linked list entry */ @@ -1024,7 +1026,13 @@ int __ref efi_mem_reserve_persistent(phys_addr_t addr, u64 size) if (!rsv) return -ENOMEM; - rsv->size = EFI_MEMRESERVE_COUNT(PAGE_SIZE); + /* + * The memremap() call above assumes that a linux_efi_memreserve entry + * never crosses a page boundary, so let's ensure that this remains true + * even when kexec'ing a 4k pages kernel from a >4k pages kernel, by + * using SZ_4K explicitly in the size calculation below. + */ + rsv->size = EFI_MEMRESERVE_COUNT(SZ_4K); atomic_set(&rsv->count, 1); rsv->entry[0].base = addr; rsv->entry[0].size = size; diff --git a/drivers/firmware/efi/efibc.c b/drivers/firmware/efi/efibc.c index 61e099826cbb..35dccc88ac0a 100644 --- a/drivers/firmware/efi/efibc.c +++ b/drivers/firmware/efi/efibc.c @@ -43,11 +43,13 @@ static int efibc_set_variable(const char *name, const char *value) efibc_str_to_str16(value, (efi_char16_t *)entry->var.Data); memcpy(&entry->var.VendorGuid, &guid, sizeof(guid)); - ret = efivar_entry_set(entry, - EFI_VARIABLE_NON_VOLATILE - | EFI_VARIABLE_BOOTSERVICE_ACCESS - | EFI_VARIABLE_RUNTIME_ACCESS, - size, entry->var.Data, NULL); + ret = efivar_entry_set_safe(entry->var.VariableName, + entry->var.VendorGuid, + EFI_VARIABLE_NON_VOLATILE + | EFI_VARIABLE_BOOTSERVICE_ACCESS + | EFI_VARIABLE_RUNTIME_ACCESS, + false, size, entry->var.Data); + if (ret) pr_err("failed to set %s EFI variable: 0x%x\n", name, ret); diff --git a/drivers/gpio/gpiolib-of.c b/drivers/gpio/gpiolib-of.c index aec7bd86ae7e..9c9b965d7d6d 100644 --- a/drivers/gpio/gpiolib-of.c +++ b/drivers/gpio/gpiolib-of.c @@ -118,8 +118,15 @@ static void of_gpio_flags_quirks(struct device_node *np, * Legacy handling of SPI active high chip select. If we have a * property named "cs-gpios" we need to inspect the child node * to determine if the flags should have inverted semantics. + * + * This does not apply to an SPI device named "spi-gpio", because + * these have traditionally obtained their own GPIOs by parsing + * the device tree directly and did not respect any "spi-cs-high" + * property on the SPI bus children. */ - if (IS_ENABLED(CONFIG_SPI_MASTER) && !strcmp(propname, "cs-gpios") && + if (IS_ENABLED(CONFIG_SPI_MASTER) && + !strcmp(propname, "cs-gpios") && + !of_device_is_compatible(np, "spi-gpio") && of_property_read_bool(np, "cs-gpios")) { struct device_node *child; u32 cs; diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c b/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c index b610e3b30d95..2f18c64d531f 100644 --- a/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c +++ b/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c @@ -1959,25 +1959,6 @@ static void gfx_v9_0_constants_init(struct amdgpu_device *adev) mutex_unlock(&adev->srbm_mutex); gfx_v9_0_init_compute_vmid(adev); - - mutex_lock(&adev->grbm_idx_mutex); - /* - * making sure that the following register writes will be broadcasted - * to all the shaders - */ - gfx_v9_0_select_se_sh(adev, 0xffffffff, 0xffffffff, 0xffffffff); - - WREG32_SOC15(GC, 0, mmPA_SC_FIFO_SIZE, - (adev->gfx.config.sc_prim_fifo_size_frontend << - PA_SC_FIFO_SIZE__SC_FRONTEND_PRIM_FIFO_SIZE__SHIFT) | - (adev->gfx.config.sc_prim_fifo_size_backend << - PA_SC_FIFO_SIZE__SC_BACKEND_PRIM_FIFO_SIZE__SHIFT) | - (adev->gfx.config.sc_hiz_tile_fifo_size << - PA_SC_FIFO_SIZE__SC_HIZ_TILE_FIFO_SIZE__SHIFT) | - (adev->gfx.config.sc_earlyz_tile_fifo_size << - PA_SC_FIFO_SIZE__SC_EARLYZ_TILE_FIFO_SIZE__SHIFT)); - mutex_unlock(&adev->grbm_idx_mutex); - } static void gfx_v9_0_wait_for_rlc_serdes(struct amdgpu_device *adev) diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/hwmgr.c b/drivers/gpu/drm/amd/powerplay/hwmgr/hwmgr.c index f1d326caf69e..a7e8340baf90 100644 --- a/drivers/gpu/drm/amd/powerplay/hwmgr/hwmgr.c +++ b/drivers/gpu/drm/amd/powerplay/hwmgr/hwmgr.c @@ -326,7 +326,7 @@ int hwmgr_resume(struct pp_hwmgr *hwmgr) if (ret) return ret; - ret = psm_adjust_power_state_dynamic(hwmgr, true, NULL); + ret = psm_adjust_power_state_dynamic(hwmgr, false, NULL); return ret; } diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/process_pptables_v1_0.c b/drivers/gpu/drm/amd/powerplay/hwmgr/process_pptables_v1_0.c index ae64ff7153d6..1cd5a8b5cdc1 100644 --- a/drivers/gpu/drm/amd/powerplay/hwmgr/process_pptables_v1_0.c +++ b/drivers/gpu/drm/amd/powerplay/hwmgr/process_pptables_v1_0.c @@ -916,8 +916,10 @@ static int init_thermal_controller( PHM_PlatformCaps_ThermalController ); - if (0 == powerplay_table->usFanTableOffset) + if (0 == powerplay_table->usFanTableOffset) { + hwmgr->thermal_controller.use_hw_fan_control = 1; return 0; + } fan_table = (const PPTable_Generic_SubTable_Header *) (((unsigned long)powerplay_table) + diff --git a/drivers/gpu/drm/amd/powerplay/inc/hwmgr.h b/drivers/gpu/drm/amd/powerplay/inc/hwmgr.h index c92999aac07c..eccb26fddbd0 100644 --- a/drivers/gpu/drm/amd/powerplay/inc/hwmgr.h +++ b/drivers/gpu/drm/amd/powerplay/inc/hwmgr.h @@ -694,6 +694,7 @@ struct pp_thermal_controller_info { uint8_t ucType; uint8_t ucI2cLine; uint8_t ucI2cAddress; + uint8_t use_hw_fan_control; struct pp_fan_info fanInfo; struct pp_advance_fan_control_parameters advanceFanControlParameters; }; diff --git a/drivers/gpu/drm/amd/powerplay/smumgr/polaris10_smumgr.c b/drivers/gpu/drm/amd/powerplay/smumgr/polaris10_smumgr.c index 2d4cfe14f72e..29e641c6a5db 100644 --- a/drivers/gpu/drm/amd/powerplay/smumgr/polaris10_smumgr.c +++ b/drivers/gpu/drm/amd/powerplay/smumgr/polaris10_smumgr.c @@ -2092,6 +2092,10 @@ static int polaris10_thermal_setup_fan_table(struct pp_hwmgr *hwmgr) return 0; } + /* use hardware fan control */ + if (hwmgr->thermal_controller.use_hw_fan_control) + return 0; + tmp64 = hwmgr->thermal_controller.advanceFanControlParameters. usPWMMin * duty100; do_div(tmp64, 10000); diff --git a/drivers/gpu/drm/etnaviv/etnaviv_gpu.c b/drivers/gpu/drm/etnaviv/etnaviv_gpu.c index 72d01e873160..5418a1a87b2c 100644 --- a/drivers/gpu/drm/etnaviv/etnaviv_gpu.c +++ b/drivers/gpu/drm/etnaviv/etnaviv_gpu.c @@ -760,7 +760,7 @@ int etnaviv_gpu_init(struct etnaviv_gpu *gpu) if (IS_ERR(gpu->cmdbuf_suballoc)) { dev_err(gpu->dev, "Failed to create cmdbuf suballocator\n"); ret = PTR_ERR(gpu->cmdbuf_suballoc); - goto fail; + goto destroy_iommu; } /* Create buffer: */ @@ -768,7 +768,7 @@ int etnaviv_gpu_init(struct etnaviv_gpu *gpu) PAGE_SIZE); if (ret) { dev_err(gpu->dev, "could not create command buffer\n"); - goto destroy_iommu; + goto destroy_suballoc; } if (gpu->mmu->version == ETNAVIV_IOMMU_V1 && @@ -800,6 +800,9 @@ int etnaviv_gpu_init(struct etnaviv_gpu *gpu) free_buffer: etnaviv_cmdbuf_free(&gpu->buffer); gpu->buffer.suballoc = NULL; +destroy_suballoc: + etnaviv_cmdbuf_suballoc_destroy(gpu->cmdbuf_suballoc); + gpu->cmdbuf_suballoc = NULL; destroy_iommu: etnaviv_iommu_destroy(gpu->mmu); gpu->mmu = NULL; diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c index 029fd8ec1857..f0d45ccc1aac 100644 --- a/drivers/gpu/drm/i915/intel_ringbuffer.c +++ b/drivers/gpu/drm/i915/intel_ringbuffer.c @@ -1888,12 +1888,12 @@ static int ring_request_alloc(struct i915_request *request) */ request->reserved_space += LEGACY_REQUEST_SIZE; - ret = switch_context(request); + /* Unconditionally invalidate GPU caches and TLBs. */ + ret = request->engine->emit_flush(request, EMIT_INVALIDATE); if (ret) return ret; - /* Unconditionally invalidate GPU caches and TLBs. */ - ret = request->engine->emit_flush(request, EMIT_INVALIDATE); + ret = switch_context(request); if (ret) return ret; diff --git a/drivers/gpu/drm/imx/ipuv3-crtc.c b/drivers/gpu/drm/imx/ipuv3-crtc.c index 9cc1d678674f..c436a28d50e4 100644 --- a/drivers/gpu/drm/imx/ipuv3-crtc.c +++ b/drivers/gpu/drm/imx/ipuv3-crtc.c @@ -91,14 +91,14 @@ static void ipu_crtc_atomic_disable(struct drm_crtc *crtc, ipu_dc_disable(ipu); ipu_prg_disable(ipu); + drm_crtc_vblank_off(crtc); + spin_lock_irq(&crtc->dev->event_lock); - if (crtc->state->event) { + if (crtc->state->event && !crtc->state->active) { drm_crtc_send_vblank_event(crtc, crtc->state->event); crtc->state->event = NULL; } spin_unlock_irq(&crtc->dev->event_lock); - - drm_crtc_vblank_off(crtc); } static void imx_drm_crtc_reset(struct drm_crtc *crtc) diff --git a/drivers/gpu/drm/panfrost/panfrost_drv.c b/drivers/gpu/drm/panfrost/panfrost_drv.c index d11e2281dde6..7e43b25785f7 100644 --- a/drivers/gpu/drm/panfrost/panfrost_drv.c +++ b/drivers/gpu/drm/panfrost/panfrost_drv.c @@ -63,7 +63,7 @@ static int panfrost_ioctl_create_bo(struct drm_device *dev, void *data, return 0; err_free: - drm_gem_object_put_unlocked(&shmem->base); + drm_gem_handle_delete(file, args->handle); return ret; } diff --git a/drivers/gpu/drm/virtio/virtgpu_vq.c b/drivers/gpu/drm/virtio/virtgpu_vq.c index e62fe24b1a2e..5bb0f0a084e9 100644 --- a/drivers/gpu/drm/virtio/virtgpu_vq.c +++ b/drivers/gpu/drm/virtio/virtgpu_vq.c @@ -619,11 +619,11 @@ static void virtio_gpu_cmd_get_edid_cb(struct virtio_gpu_device *vgdev, output = vgdev->outputs + scanout; new_edid = drm_do_get_edid(&output->conn, virtio_get_edid_block, resp); + drm_connector_update_edid_property(&output->conn, new_edid); spin_lock(&vgdev->display_info_lock); old_edid = output->edid; output->edid = new_edid; - drm_connector_update_edid_property(&output->conn, output->edid); spin_unlock(&vgdev->display_info_lock); kfree(old_edid); diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h index eac0c54c5970..b032d3899fa3 100644 --- a/drivers/hid/hid-ids.h +++ b/drivers/hid/hid-ids.h @@ -80,6 +80,7 @@ #define HID_DEVICE_ID_ALPS_U1_DUAL_3BTN_PTP 0x1220 #define HID_DEVICE_ID_ALPS_U1 0x1215 #define HID_DEVICE_ID_ALPS_T4_BTNLESS 0x120C +#define HID_DEVICE_ID_ALPS_1222 0x1222 #define USB_VENDOR_ID_AMI 0x046b @@ -269,6 +270,7 @@ #define USB_DEVICE_ID_CHICONY_MULTI_TOUCH 0xb19d #define USB_DEVICE_ID_CHICONY_WIRELESS 0x0618 #define USB_DEVICE_ID_CHICONY_PIXART_USB_OPTICAL_MOUSE 0x1053 +#define USB_DEVICE_ID_CHICONY_PIXART_USB_OPTICAL_MOUSE2 0x0939 #define USB_DEVICE_ID_CHICONY_WIRELESS2 0x1123 #define USB_DEVICE_ID_ASUS_AK1D 0x1125 #define USB_DEVICE_ID_CHICONY_TOSHIBA_WT10A 0x1408 @@ -569,6 +571,7 @@ #define USB_VENDOR_ID_HUION 0x256c #define USB_DEVICE_ID_HUION_TABLET 0x006e +#define USB_DEVICE_ID_HUION_HS64 0x006d #define USB_VENDOR_ID_IBM 0x04b3 #define USB_DEVICE_ID_IBM_SCROLLPOINT_III 0x3100 diff --git a/drivers/hid/hid-logitech-dj.c b/drivers/hid/hid-logitech-dj.c index e564bff86515..bfcf2ee58d14 100644 --- a/drivers/hid/hid-logitech-dj.c +++ b/drivers/hid/hid-logitech-dj.c @@ -30,6 +30,7 @@ #define REPORT_ID_HIDPP_SHORT 0x10 #define REPORT_ID_HIDPP_LONG 0x11 +#define REPORT_ID_HIDPP_VERY_LONG 0x12 #define HIDPP_REPORT_SHORT_LENGTH 7 #define HIDPP_REPORT_LONG_LENGTH 20 @@ -1242,7 +1243,8 @@ static int logi_dj_ll_raw_request(struct hid_device *hid, int ret; if ((buf[0] == REPORT_ID_HIDPP_SHORT) || - (buf[0] == REPORT_ID_HIDPP_LONG)) { + (buf[0] == REPORT_ID_HIDPP_LONG) || + (buf[0] == REPORT_ID_HIDPP_VERY_LONG)) { if (count < 2) return -EINVAL; diff --git a/drivers/hid/hid-multitouch.c b/drivers/hid/hid-multitouch.c index 5df5dd56ecc8..b603c14d043b 100644 --- a/drivers/hid/hid-multitouch.c +++ b/drivers/hid/hid-multitouch.c @@ -1776,6 +1776,10 @@ static const struct hid_device_id mt_devices[] = { HID_DEVICE(BUS_I2C, HID_GROUP_MULTITOUCH_WIN_8, USB_VENDOR_ID_ALPS_JP, HID_DEVICE_ID_ALPS_U1_DUAL_3BTN_PTP) }, + { .driver_data = MT_CLS_WIN_8_DUAL, + HID_DEVICE(BUS_I2C, HID_GROUP_MULTITOUCH_WIN_8, + USB_VENDOR_ID_ALPS_JP, + HID_DEVICE_ID_ALPS_1222) }, /* Lenovo X1 TAB Gen 2 */ { .driver_data = MT_CLS_WIN_8_DUAL, diff --git a/drivers/hid/hid-quirks.c b/drivers/hid/hid-quirks.c index e5ca6fe2ca57..671a285724f9 100644 --- a/drivers/hid/hid-quirks.c +++ b/drivers/hid/hid-quirks.c @@ -42,6 +42,7 @@ static const struct hid_device_id hid_quirks[] = { { HID_USB_DEVICE(USB_VENDOR_ID_ATEN, USB_DEVICE_ID_ATEN_UC100KM), HID_QUIRK_NOGET }, { HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_MULTI_TOUCH), HID_QUIRK_MULTI_INPUT }, { HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_PIXART_USB_OPTICAL_MOUSE), HID_QUIRK_ALWAYS_POLL }, + { HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_PIXART_USB_OPTICAL_MOUSE2), HID_QUIRK_ALWAYS_POLL }, { HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_WIRELESS), HID_QUIRK_MULTI_INPUT }, { HID_USB_DEVICE(USB_VENDOR_ID_CHIC, USB_DEVICE_ID_CHIC_GAMEPAD), HID_QUIRK_BADPAD }, { HID_USB_DEVICE(USB_VENDOR_ID_CH, USB_DEVICE_ID_CH_3AXIS_5BUTTON_STICK), HID_QUIRK_NOGET }, diff --git a/drivers/hid/hid-uclogic-core.c b/drivers/hid/hid-uclogic-core.c index 8fe02d81265d..914fb527ae7a 100644 --- a/drivers/hid/hid-uclogic-core.c +++ b/drivers/hid/hid-uclogic-core.c @@ -369,6 +369,8 @@ static const struct hid_device_id uclogic_devices[] = { USB_DEVICE_ID_UCLOGIC_TABLET_TWHA60) }, { HID_USB_DEVICE(USB_VENDOR_ID_HUION, USB_DEVICE_ID_HUION_TABLET) }, + { HID_USB_DEVICE(USB_VENDOR_ID_HUION, + USB_DEVICE_ID_HUION_HS64) }, { HID_USB_DEVICE(USB_VENDOR_ID_UCLOGIC, USB_DEVICE_ID_HUION_TABLET) }, { HID_USB_DEVICE(USB_VENDOR_ID_UCLOGIC, diff --git a/drivers/hid/hid-uclogic-params.c b/drivers/hid/hid-uclogic-params.c index 0187c9f8fc22..273d784fff66 100644 --- a/drivers/hid/hid-uclogic-params.c +++ b/drivers/hid/hid-uclogic-params.c @@ -977,6 +977,8 @@ int uclogic_params_init(struct uclogic_params *params, /* FALL THROUGH */ case VID_PID(USB_VENDOR_ID_HUION, USB_DEVICE_ID_HUION_TABLET): + case VID_PID(USB_VENDOR_ID_HUION, + USB_DEVICE_ID_HUION_HS64): case VID_PID(USB_VENDOR_ID_UCLOGIC, USB_DEVICE_ID_HUION_TABLET): case VID_PID(USB_VENDOR_ID_UCLOGIC, diff --git a/drivers/hid/intel-ish-hid/ishtp-fw-loader.c b/drivers/hid/intel-ish-hid/ishtp-fw-loader.c index 22ba21457035..aa2dbed30fc3 100644 --- a/drivers/hid/intel-ish-hid/ishtp-fw-loader.c +++ b/drivers/hid/intel-ish-hid/ishtp-fw-loader.c @@ -816,9 +816,9 @@ static int load_fw_from_host(struct ishtp_cl_data *client_data) goto end_err_fw_release; release_firmware(fw); - kfree(filename); dev_info(cl_data_to_dev(client_data), "ISH firmware %s loaded\n", filename); + kfree(filename); return 0; end_err_fw_release: diff --git a/drivers/hid/intel-ish-hid/ishtp-hid-client.c b/drivers/hid/intel-ish-hid/ishtp-hid-client.c index c0487b34d2cf..6ba944b40fdb 100644 --- a/drivers/hid/intel-ish-hid/ishtp-hid-client.c +++ b/drivers/hid/intel-ish-hid/ishtp-hid-client.c @@ -891,7 +891,7 @@ static int hid_ishtp_cl_reset(struct ishtp_cl_device *cl_device) */ static int hid_ishtp_cl_suspend(struct device *device) { - struct ishtp_cl_device *cl_device = dev_get_drvdata(device); + struct ishtp_cl_device *cl_device = ishtp_dev_to_cl_device(device); struct ishtp_cl *hid_ishtp_cl = ishtp_get_drvdata(cl_device); struct ishtp_cl_data *client_data = ishtp_get_client_data(hid_ishtp_cl); @@ -912,7 +912,7 @@ static int hid_ishtp_cl_suspend(struct device *device) */ static int hid_ishtp_cl_resume(struct device *device) { - struct ishtp_cl_device *cl_device = dev_get_drvdata(device); + struct ishtp_cl_device *cl_device = ishtp_dev_to_cl_device(device); struct ishtp_cl *hid_ishtp_cl = ishtp_get_drvdata(cl_device); struct ishtp_cl_data *client_data = ishtp_get_client_data(hid_ishtp_cl); diff --git a/drivers/hid/intel-ish-hid/ishtp/bus.c b/drivers/hid/intel-ish-hid/ishtp/bus.c index 794e700d65f7..c47c3328a0f4 100644 --- a/drivers/hid/intel-ish-hid/ishtp/bus.c +++ b/drivers/hid/intel-ish-hid/ishtp/bus.c @@ -471,7 +471,6 @@ static struct ishtp_cl_device *ishtp_bus_add_device(struct ishtp_device *dev, } ishtp_device_ready = true; - dev_set_drvdata(&device->dev, device); return device; } @@ -639,6 +638,20 @@ void *ishtp_get_drvdata(struct ishtp_cl_device *cl_device) } EXPORT_SYMBOL(ishtp_get_drvdata); +/** + * ishtp_dev_to_cl_device() - get ishtp_cl_device instance from device instance + * @device: device instance + * + * Get ish_cl_device instance which embeds device instance in it. + * + * Return: pointer to ishtp_cl_device instance + */ +struct ishtp_cl_device *ishtp_dev_to_cl_device(struct device *device) +{ + return to_ishtp_cl_device(device); +} +EXPORT_SYMBOL(ishtp_dev_to_cl_device); + /** * ishtp_bus_new_client() - Create a new client * @dev: ISHTP device instance diff --git a/drivers/irqchip/irq-csky-mpintc.c b/drivers/irqchip/irq-csky-mpintc.c index c67c961ab6cc..a4c1aacba1ff 100644 --- a/drivers/irqchip/irq-csky-mpintc.c +++ b/drivers/irqchip/irq-csky-mpintc.c @@ -89,8 +89,19 @@ static int csky_irq_set_affinity(struct irq_data *d, if (cpu >= nr_cpu_ids) return -EINVAL; - /* Enable interrupt destination */ - cpu |= BIT(31); + /* + * The csky,mpintc could support auto irq deliver, but it only + * could deliver external irq to one cpu or all cpus. So it + * doesn't support deliver external irq to a group of cpus + * with cpu_mask. + * SO we only use auto deliver mode when affinity mask_val is + * equal to cpu_present_mask. + * + */ + if (cpumask_equal(mask_val, cpu_present_mask)) + cpu = 0; + else + cpu |= BIT(31); writel_relaxed(cpu, INTCG_base + INTCG_CIDSTR + offset); diff --git a/drivers/irqchip/irq-gic-v3-its.c b/drivers/irqchip/irq-gic-v3-its.c index d29b44b677e4..35500801dc2b 100644 --- a/drivers/irqchip/irq-gic-v3-its.c +++ b/drivers/irqchip/irq-gic-v3-its.c @@ -733,32 +733,43 @@ static void its_flush_cmd(struct its_node *its, struct its_cmd_block *cmd) } static int its_wait_for_range_completion(struct its_node *its, - struct its_cmd_block *from, + u64 prev_idx, struct its_cmd_block *to) { - u64 rd_idx, from_idx, to_idx; + u64 rd_idx, to_idx, linear_idx; u32 count = 1000000; /* 1s! */ - from_idx = its_cmd_ptr_to_offset(its, from); + /* Linearize to_idx if the command set has wrapped around */ to_idx = its_cmd_ptr_to_offset(its, to); + if (to_idx < prev_idx) + to_idx += ITS_CMD_QUEUE_SZ; + + linear_idx = prev_idx; while (1) { + s64 delta; + rd_idx = readl_relaxed(its->base + GITS_CREADR); - /* Direct case */ - if (from_idx < to_idx && rd_idx >= to_idx) - break; + /* + * Compute the read pointer progress, taking the + * potential wrap-around into account. + */ + delta = rd_idx - prev_idx; + if (rd_idx < prev_idx) + delta += ITS_CMD_QUEUE_SZ; - /* Wrapped case */ - if (from_idx >= to_idx && rd_idx >= to_idx && rd_idx < from_idx) + linear_idx += delta; + if (linear_idx >= to_idx) break; count--; if (!count) { - pr_err_ratelimited("ITS queue timeout (%llu %llu %llu)\n", - from_idx, to_idx, rd_idx); + pr_err_ratelimited("ITS queue timeout (%llu %llu)\n", + to_idx, linear_idx); return -1; } + prev_idx = rd_idx; cpu_relax(); udelay(1); } @@ -775,6 +786,7 @@ void name(struct its_node *its, \ struct its_cmd_block *cmd, *sync_cmd, *next_cmd; \ synctype *sync_obj; \ unsigned long flags; \ + u64 rd_idx; \ \ raw_spin_lock_irqsave(&its->lock, flags); \ \ @@ -796,10 +808,11 @@ void name(struct its_node *its, \ } \ \ post: \ + rd_idx = readl_relaxed(its->base + GITS_CREADR); \ next_cmd = its_post_commands(its); \ raw_spin_unlock_irqrestore(&its->lock, flags); \ \ - if (its_wait_for_range_completion(its, cmd, next_cmd)) \ + if (its_wait_for_range_completion(its, rd_idx, next_cmd)) \ pr_err_ratelimited("ITS cmd %ps failed\n", builder); \ } diff --git a/drivers/irqchip/irq-mips-gic.c b/drivers/irqchip/irq-mips-gic.c index d32268cc1174..f3985469c221 100644 --- a/drivers/irqchip/irq-mips-gic.c +++ b/drivers/irqchip/irq-mips-gic.c @@ -388,7 +388,7 @@ static void gic_all_vpes_irq_cpu_online(struct irq_data *d) intr = GIC_HWIRQ_TO_LOCAL(d->hwirq); cd = irq_data_get_irq_chip_data(d); - write_gic_vl_map(intr, cd->map); + write_gic_vl_map(mips_gic_vx_map_reg(intr), cd->map); if (cd->mask) write_gic_vl_smask(BIT(intr)); } @@ -517,7 +517,7 @@ static int gic_irq_domain_map(struct irq_domain *d, unsigned int virq, spin_lock_irqsave(&gic_lock, flags); for_each_online_cpu(cpu) { write_gic_vl_other(mips_cm_vp_id(cpu)); - write_gic_vo_map(intr, map); + write_gic_vo_map(mips_gic_vx_map_reg(intr), map); } spin_unlock_irqrestore(&gic_lock, flags); diff --git a/drivers/irqchip/irq-ti-sci-inta.c b/drivers/irqchip/irq-ti-sci-inta.c index 011b60a49e3f..ef4d625d2d80 100644 --- a/drivers/irqchip/irq-ti-sci-inta.c +++ b/drivers/irqchip/irq-ti-sci-inta.c @@ -159,9 +159,9 @@ static struct ti_sci_inta_vint_desc *ti_sci_inta_alloc_parent_irq(struct irq_dom parent_fwspec.param[1] = vint_desc->vint_id; parent_virq = irq_create_fwspec_mapping(&parent_fwspec); - if (parent_virq <= 0) { + if (parent_virq == 0) { kfree(vint_desc); - return ERR_PTR(parent_virq); + return ERR_PTR(-EINVAL); } vint_desc->parent_virq = parent_virq; diff --git a/drivers/md/dm-init.c b/drivers/md/dm-init.c index 352e803f566e..728733a514c7 100644 --- a/drivers/md/dm-init.c +++ b/drivers/md/dm-init.c @@ -140,8 +140,8 @@ static char __init *dm_parse_table_entry(struct dm_device *dev, char *str) return ERR_PTR(-EINVAL); } /* target_args */ - dev->target_args_array[n] = kstrndup(field[3], GFP_KERNEL, - DM_MAX_STR_SIZE); + dev->target_args_array[n] = kstrndup(field[3], DM_MAX_STR_SIZE, + GFP_KERNEL); if (!dev->target_args_array[n]) return ERR_PTR(-ENOMEM); @@ -272,10 +272,10 @@ static int __init dm_init_init(void) return 0; if (strlen(create) >= DM_MAX_STR_SIZE) { - DMERR("Argument is too big. Limit is %d\n", DM_MAX_STR_SIZE); + DMERR("Argument is too big. Limit is %d", DM_MAX_STR_SIZE); return -EINVAL; } - str = kstrndup(create, GFP_KERNEL, DM_MAX_STR_SIZE); + str = kstrndup(create, DM_MAX_STR_SIZE, GFP_KERNEL); if (!str) return -ENOMEM; @@ -283,7 +283,7 @@ static int __init dm_init_init(void) if (r) goto out; - DMINFO("waiting for all devices to be available before creating mapped devices\n"); + DMINFO("waiting for all devices to be available before creating mapped devices"); wait_for_device_probe(); list_for_each_entry(dev, &devices, list) { diff --git a/drivers/md/dm-log-writes.c b/drivers/md/dm-log-writes.c index 9ea2b0291f20..e549392e0ea5 100644 --- a/drivers/md/dm-log-writes.c +++ b/drivers/md/dm-log-writes.c @@ -60,6 +60,7 @@ #define WRITE_LOG_VERSION 1ULL #define WRITE_LOG_MAGIC 0x6a736677736872ULL +#define WRITE_LOG_SUPER_SECTOR 0 /* * The disk format for this is braindead simple. @@ -115,6 +116,7 @@ struct log_writes_c { struct list_head logging_blocks; wait_queue_head_t wait; struct task_struct *log_kthread; + struct completion super_done; }; struct pending_block { @@ -180,6 +182,14 @@ static void log_end_io(struct bio *bio) bio_put(bio); } +static void log_end_super(struct bio *bio) +{ + struct log_writes_c *lc = bio->bi_private; + + complete(&lc->super_done); + log_end_io(bio); +} + /* * Meant to be called if there is an error, it will free all the pages * associated with the block. @@ -215,7 +225,8 @@ static int write_metadata(struct log_writes_c *lc, void *entry, bio->bi_iter.bi_size = 0; bio->bi_iter.bi_sector = sector; bio_set_dev(bio, lc->logdev->bdev); - bio->bi_end_io = log_end_io; + bio->bi_end_io = (sector == WRITE_LOG_SUPER_SECTOR) ? + log_end_super : log_end_io; bio->bi_private = lc; bio_set_op_attrs(bio, REQ_OP_WRITE, 0); @@ -418,11 +429,18 @@ static int log_super(struct log_writes_c *lc) super.nr_entries = cpu_to_le64(lc->logged_entries); super.sectorsize = cpu_to_le32(lc->sectorsize); - if (write_metadata(lc, &super, sizeof(super), NULL, 0, 0)) { + if (write_metadata(lc, &super, sizeof(super), NULL, 0, + WRITE_LOG_SUPER_SECTOR)) { DMERR("Couldn't write super"); return -1; } + /* + * Super sector should be writen in-order, otherwise the + * nr_entries could be rewritten incorrectly by an old bio. + */ + wait_for_completion_io(&lc->super_done); + return 0; } @@ -531,6 +549,7 @@ static int log_writes_ctr(struct dm_target *ti, unsigned int argc, char **argv) INIT_LIST_HEAD(&lc->unflushed_blocks); INIT_LIST_HEAD(&lc->logging_blocks); init_waitqueue_head(&lc->wait); + init_completion(&lc->super_done); atomic_set(&lc->io_blocks, 0); atomic_set(&lc->pending_blocks, 0); diff --git a/drivers/md/dm-table.c b/drivers/md/dm-table.c index 350cf0451456..ec8b27e20de3 100644 --- a/drivers/md/dm-table.c +++ b/drivers/md/dm-table.c @@ -561,7 +561,7 @@ static char **realloc_argv(unsigned *size, char **old_argv) gfp = GFP_NOIO; } argv = kmalloc_array(new_size, sizeof(*argv), gfp); - if (argv) { + if (argv && old_argv) { memcpy(argv, old_argv, *size * sizeof(*argv)); *size = new_size; } diff --git a/drivers/md/dm-verity-target.c b/drivers/md/dm-verity-target.c index 25daac32eb7e..6b98b9d90ad0 100644 --- a/drivers/md/dm-verity-target.c +++ b/drivers/md/dm-verity-target.c @@ -235,8 +235,8 @@ static int verity_handle_err(struct dm_verity *v, enum verity_block_type type, BUG(); } - DMERR("%s: %s block %llu is corrupted", v->data_dev->name, type_str, - block); + DMERR_LIMIT("%s: %s block %llu is corrupted", v->data_dev->name, + type_str, block); if (v->corrupted_errs == DM_VERITY_MAX_CORRUPTED_ERRS) DMERR("%s: reached maximum errors", v->data_dev->name); diff --git a/drivers/mfd/stmfx.c b/drivers/mfd/stmfx.c index fe8efba2d45f..857991cb3cbb 100644 --- a/drivers/mfd/stmfx.c +++ b/drivers/mfd/stmfx.c @@ -204,12 +204,11 @@ static struct irq_chip stmfx_irq_chip = { static irqreturn_t stmfx_irq_handler(int irq, void *data) { struct stmfx *stmfx = data; - unsigned long n, pending; - u32 ack; - int ret; + unsigned long bits; + u32 pending, ack; + int n, ret; - ret = regmap_read(stmfx->map, STMFX_REG_IRQ_PENDING, - (u32 *)&pending); + ret = regmap_read(stmfx->map, STMFX_REG_IRQ_PENDING, &pending); if (ret) return IRQ_NONE; @@ -224,7 +223,8 @@ static irqreturn_t stmfx_irq_handler(int irq, void *data) return IRQ_NONE; } - for_each_set_bit(n, &pending, STMFX_REG_IRQ_SRC_MAX) + bits = pending; + for_each_set_bit(n, &bits, STMFX_REG_IRQ_SRC_MAX) handle_nested_irq(irq_find_mapping(stmfx->irq_domain, n)); return IRQ_HANDLED; diff --git a/drivers/mtd/nand/raw/ingenic/Kconfig b/drivers/mtd/nand/raw/ingenic/Kconfig index 19a96ce515c1..66b7cffdb0c2 100644 --- a/drivers/mtd/nand/raw/ingenic/Kconfig +++ b/drivers/mtd/nand/raw/ingenic/Kconfig @@ -16,7 +16,7 @@ config MTD_NAND_JZ4780 if MTD_NAND_JZ4780 config MTD_NAND_INGENIC_ECC - tristate + bool config MTD_NAND_JZ4740_ECC tristate "Hardware BCH support for JZ4740 SoC" diff --git a/drivers/mtd/nand/raw/ingenic/Makefile b/drivers/mtd/nand/raw/ingenic/Makefile index 1ac4f455baea..b63d36889263 100644 --- a/drivers/mtd/nand/raw/ingenic/Makefile +++ b/drivers/mtd/nand/raw/ingenic/Makefile @@ -2,7 +2,9 @@ obj-$(CONFIG_MTD_NAND_JZ4740) += jz4740_nand.o obj-$(CONFIG_MTD_NAND_JZ4780) += ingenic_nand.o -obj-$(CONFIG_MTD_NAND_INGENIC_ECC) += ingenic_ecc.o +ingenic_nand-y += ingenic_nand_drv.o +ingenic_nand-$(CONFIG_MTD_NAND_INGENIC_ECC) += ingenic_ecc.o + obj-$(CONFIG_MTD_NAND_JZ4740_ECC) += jz4740_ecc.o obj-$(CONFIG_MTD_NAND_JZ4725B_BCH) += jz4725b_bch.o obj-$(CONFIG_MTD_NAND_JZ4780_BCH) += jz4780_bch.o diff --git a/drivers/mtd/nand/raw/ingenic/ingenic_ecc.c b/drivers/mtd/nand/raw/ingenic/ingenic_ecc.c index d3e085c5685a..c954189606f6 100644 --- a/drivers/mtd/nand/raw/ingenic/ingenic_ecc.c +++ b/drivers/mtd/nand/raw/ingenic/ingenic_ecc.c @@ -30,7 +30,6 @@ int ingenic_ecc_calculate(struct ingenic_ecc *ecc, { return ecc->ops->calculate(ecc, params, buf, ecc_code); } -EXPORT_SYMBOL(ingenic_ecc_calculate); /** * ingenic_ecc_correct() - detect and correct bit errors @@ -51,7 +50,6 @@ int ingenic_ecc_correct(struct ingenic_ecc *ecc, { return ecc->ops->correct(ecc, params, buf, ecc_code); } -EXPORT_SYMBOL(ingenic_ecc_correct); /** * ingenic_ecc_get() - get the ECC controller device @@ -111,7 +109,6 @@ struct ingenic_ecc *of_ingenic_ecc_get(struct device_node *of_node) } return ecc; } -EXPORT_SYMBOL(of_ingenic_ecc_get); /** * ingenic_ecc_release() - release the ECC controller device @@ -122,7 +119,6 @@ void ingenic_ecc_release(struct ingenic_ecc *ecc) clk_disable_unprepare(ecc->clk); put_device(ecc->dev); } -EXPORT_SYMBOL(ingenic_ecc_release); int ingenic_ecc_probe(struct platform_device *pdev) { @@ -159,8 +155,3 @@ int ingenic_ecc_probe(struct platform_device *pdev) return 0; } EXPORT_SYMBOL(ingenic_ecc_probe); - -MODULE_AUTHOR("Alex Smith "); -MODULE_AUTHOR("Harvey Hunt "); -MODULE_DESCRIPTION("Ingenic ECC common driver"); -MODULE_LICENSE("GPL v2"); diff --git a/drivers/mtd/nand/raw/ingenic/ingenic_nand.c b/drivers/mtd/nand/raw/ingenic/ingenic_nand_drv.c similarity index 100% rename from drivers/mtd/nand/raw/ingenic/ingenic_nand.c rename to drivers/mtd/nand/raw/ingenic/ingenic_nand_drv.c diff --git a/drivers/mtd/nand/raw/nand_base.c b/drivers/mtd/nand/raw/nand_base.c index b5b68aa16eb3..6eb131292eb2 100644 --- a/drivers/mtd/nand/raw/nand_base.c +++ b/drivers/mtd/nand/raw/nand_base.c @@ -4662,7 +4662,6 @@ static int nand_detect(struct nand_chip *chip, struct nand_flash_dev *type) memorg = nanddev_get_memorg(&chip->base); memorg->planes_per_lun = 1; memorg->luns_per_target = 1; - memorg->ntargets = 1; /* * Reset the chip, required by some chips (e.g. Micron MT29FxGxxxxx) @@ -5027,6 +5026,8 @@ static int nand_scan_ident(struct nand_chip *chip, unsigned int maxchips, if (ret) return ret; + memorg->ntargets = maxchips; + /* Read the flash type */ ret = nand_detect(chip, table); if (ret) { diff --git a/drivers/mtd/nand/raw/sunxi_nand.c b/drivers/mtd/nand/raw/sunxi_nand.c index b021a5720b42..89773293c64d 100644 --- a/drivers/mtd/nand/raw/sunxi_nand.c +++ b/drivers/mtd/nand/raw/sunxi_nand.c @@ -51,6 +51,7 @@ #define NFC_REG_USER_DATA(x) (0x0050 + ((x) * 4)) #define NFC_REG_SPARE_AREA 0x00A0 #define NFC_REG_PAT_ID 0x00A4 +#define NFC_REG_MDMA_CNT 0x00C4 #define NFC_RAM0_BASE 0x0400 #define NFC_RAM1_BASE 0x0800 @@ -69,6 +70,7 @@ #define NFC_PAGE_SHIFT(x) (((x) < 10 ? 0 : (x) - 10) << 8) #define NFC_SAM BIT(12) #define NFC_RAM_METHOD BIT(14) +#define NFC_DMA_TYPE_NORMAL BIT(15) #define NFC_DEBUG_CTL BIT(31) /* define bit use in NFC_ST */ @@ -205,14 +207,13 @@ static inline struct sunxi_nand_chip *to_sunxi_nand(struct nand_chip *nand) * NAND Controller capabilities structure: stores NAND controller capabilities * for distinction between compatible strings. * - * @sram_through_ahb: On A23, we choose to access the internal RAM through AHB - * instead of MBUS (less configuration). A10, A10s, A13 and - * A20 use the MBUS but no extra configuration is needed. + * @extra_mbus_conf: Contrary to A10, A10s and A13, accessing internal RAM + * through MBUS on A23/A33 needs extra configuration. * @reg_io_data: I/O data register * @dma_maxburst: DMA maxburst */ struct sunxi_nfc_caps { - bool sram_through_ahb; + bool extra_mbus_conf; unsigned int reg_io_data; unsigned int dma_maxburst; }; @@ -368,28 +369,12 @@ static int sunxi_nfc_dma_op_prepare(struct sunxi_nfc *nfc, const void *buf, goto err_unmap_buf; } - /* - * On A23, we suppose the "internal RAM" (p.12 of the NFC user manual) - * refers to the NAND controller's internal SRAM. This memory is mapped - * and so is accessible from the AHB. It seems that it can also be - * accessed by the MBUS. MBUS accesses are mandatory when using the - * internal DMA instead of the external DMA engine. - * - * During DMA I/O operation, either we access this memory from the AHB - * by clearing the NFC_RAM_METHOD bit, or we set the bit and use the - * MBUS. In this case, we should also configure the MBUS DMA length - * NFC_REG_MDMA_CNT(0xC4) to be chunksize * nchunks. NAND I/O over MBUS - * are also limited to 32kiB pages. - */ - if (nfc->caps->sram_through_ahb) - writel(readl(nfc->regs + NFC_REG_CTL) & ~NFC_RAM_METHOD, - nfc->regs + NFC_REG_CTL); - else - writel(readl(nfc->regs + NFC_REG_CTL) | NFC_RAM_METHOD, - nfc->regs + NFC_REG_CTL); - + writel(readl(nfc->regs + NFC_REG_CTL) | NFC_RAM_METHOD, + nfc->regs + NFC_REG_CTL); writel(nchunks, nfc->regs + NFC_REG_SECTOR_NUM); writel(chunksize, nfc->regs + NFC_REG_CNT); + if (nfc->caps->extra_mbus_conf) + writel(chunksize * nchunks, nfc->regs + NFC_REG_MDMA_CNT); dmat = dmaengine_submit(dmad); @@ -2151,6 +2136,11 @@ static int sunxi_nfc_probe(struct platform_device *pdev) dmac_cfg.src_maxburst = nfc->caps->dma_maxburst; dmac_cfg.dst_maxburst = nfc->caps->dma_maxburst; dmaengine_slave_config(nfc->dmac, &dmac_cfg); + + if (nfc->caps->extra_mbus_conf) + writel(readl(nfc->regs + NFC_REG_CTL) | + NFC_DMA_TYPE_NORMAL, nfc->regs + NFC_REG_CTL); + } else { dev_warn(dev, "failed to request rxtx DMA channel\n"); } @@ -2200,7 +2190,7 @@ static const struct sunxi_nfc_caps sunxi_nfc_a10_caps = { }; static const struct sunxi_nfc_caps sunxi_nfc_a23_caps = { - .sram_through_ahb = true, + .extra_mbus_conf = true, .reg_io_data = NFC_REG_A23_IO_DATA, .dma_maxburst = 8, }; diff --git a/drivers/mtd/nand/spi/gigadevice.c b/drivers/mtd/nand/spi/gigadevice.c index e5586390026a..e6c646007cda 100644 --- a/drivers/mtd/nand/spi/gigadevice.c +++ b/drivers/mtd/nand/spi/gigadevice.c @@ -180,7 +180,7 @@ static const struct spinand_info gigadevice_spinand_table[] = { SPINAND_ECCINFO(&gd5fxgq4xa_ooblayout, gd5fxgq4xa_ecc_get_status)), SPINAND_INFO("GD5F4GQ4xA", 0xF4, - NAND_MEMORG(1, 2048, 64, 64, 4096, 40, 1, 1, 1), + NAND_MEMORG(1, 2048, 64, 64, 4096, 80, 1, 1, 1), NAND_ECCREQ(8, 512), SPINAND_INFO_OP_VARIANTS(&read_cache_variants, &write_cache_variants, diff --git a/drivers/mtd/nand/spi/macronix.c b/drivers/mtd/nand/spi/macronix.c index 6502727049a8..21def3f8fb36 100644 --- a/drivers/mtd/nand/spi/macronix.c +++ b/drivers/mtd/nand/spi/macronix.c @@ -100,7 +100,7 @@ static int mx35lf1ge4ab_ecc_get_status(struct spinand_device *spinand, static const struct spinand_info macronix_spinand_table[] = { SPINAND_INFO("MX35LF1GE4AB", 0x12, - NAND_MEMORG(1, 2048, 64, 64, 1024, 40, 1, 1, 1), + NAND_MEMORG(1, 2048, 64, 64, 1024, 20, 1, 1, 1), NAND_ECCREQ(4, 512), SPINAND_INFO_OP_VARIANTS(&read_cache_variants, &write_cache_variants, @@ -109,7 +109,7 @@ static const struct spinand_info macronix_spinand_table[] = { SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, mx35lf1ge4ab_ecc_get_status)), SPINAND_INFO("MX35LF2GE4AB", 0x22, - NAND_MEMORG(1, 2048, 64, 64, 2048, 20, 2, 1, 1), + NAND_MEMORG(1, 2048, 64, 64, 2048, 40, 2, 1, 1), NAND_ECCREQ(4, 512), SPINAND_INFO_OP_VARIANTS(&read_cache_variants, &write_cache_variants, diff --git a/drivers/mtd/spi-nor/spi-nor.c b/drivers/mtd/spi-nor/spi-nor.c index 73172d7f512b..0c2ec1c21434 100644 --- a/drivers/mtd/spi-nor/spi-nor.c +++ b/drivers/mtd/spi-nor/spi-nor.c @@ -1636,6 +1636,95 @@ static int sr2_bit7_quad_enable(struct spi_nor *nor) return 0; } +/** + * spi_nor_clear_sr_bp() - clear the Status Register Block Protection bits. + * @nor: pointer to a 'struct spi_nor' + * + * Read-modify-write function that clears the Block Protection bits from the + * Status Register without affecting other bits. + * + * Return: 0 on success, -errno otherwise. + */ +static int spi_nor_clear_sr_bp(struct spi_nor *nor) +{ + int ret; + u8 mask = SR_BP2 | SR_BP1 | SR_BP0; + + ret = read_sr(nor); + if (ret < 0) { + dev_err(nor->dev, "error while reading status register\n"); + return ret; + } + + write_enable(nor); + + ret = write_sr(nor, ret & ~mask); + if (ret) { + dev_err(nor->dev, "write to status register failed\n"); + return ret; + } + + ret = spi_nor_wait_till_ready(nor); + if (ret) + dev_err(nor->dev, "timeout while writing status register\n"); + return ret; +} + +/** + * spi_nor_spansion_clear_sr_bp() - clear the Status Register Block Protection + * bits on spansion flashes. + * @nor: pointer to a 'struct spi_nor' + * + * Read-modify-write function that clears the Block Protection bits from the + * Status Register without affecting other bits. The function is tightly + * coupled with the spansion_quad_enable() function. Both assume that the Write + * Register with 16 bits, together with the Read Configuration Register (35h) + * instructions are supported. + * + * Return: 0 on success, -errno otherwise. + */ +static int spi_nor_spansion_clear_sr_bp(struct spi_nor *nor) +{ + int ret; + u8 mask = SR_BP2 | SR_BP1 | SR_BP0; + u8 sr_cr[2] = {0}; + + /* Check current Quad Enable bit value. */ + ret = read_cr(nor); + if (ret < 0) { + dev_err(nor->dev, + "error while reading configuration register\n"); + return ret; + } + + /* + * When the configuration register Quad Enable bit is one, only the + * Write Status (01h) command with two data bytes may be used. + */ + if (ret & CR_QUAD_EN_SPAN) { + sr_cr[1] = ret; + + ret = read_sr(nor); + if (ret < 0) { + dev_err(nor->dev, + "error while reading status register\n"); + return ret; + } + sr_cr[0] = ret & ~mask; + + ret = write_sr_cr(nor, sr_cr); + if (ret) + dev_err(nor->dev, "16-bit write register failed\n"); + return ret; + } + + /* + * If the Quad Enable bit is zero, use the Write Status (01h) command + * with one data byte. + */ + return spi_nor_clear_sr_bp(nor); +} + /* Used when the "_ext_id" is two bytes at most */ #define INFO(_jedec_id, _ext_id, _sector_size, _n_sectors, _flags) \ .id = { \ @@ -3660,6 +3749,8 @@ static int spi_nor_init_params(struct spi_nor *nor, default: /* Kept only for backward compatibility purpose. */ params->quad_enable = spansion_quad_enable; + if (nor->clear_sr_bp) + nor->clear_sr_bp = spi_nor_spansion_clear_sr_bp; break; } @@ -3912,17 +4003,13 @@ static int spi_nor_init(struct spi_nor *nor) { int err; - /* - * Atmel, SST, Intel/Numonyx, and others serial NOR tend to power up - * with the software protection bits set - */ - if (JEDEC_MFR(nor->info) == SNOR_MFR_ATMEL || - JEDEC_MFR(nor->info) == SNOR_MFR_INTEL || - JEDEC_MFR(nor->info) == SNOR_MFR_SST || - nor->info->flags & SPI_NOR_HAS_LOCK) { - write_enable(nor); - write_sr(nor, 0); - spi_nor_wait_till_ready(nor); + if (nor->clear_sr_bp) { + err = nor->clear_sr_bp(nor); + if (err) { + dev_err(nor->dev, + "fail to clear block protection bits\n"); + return err; + } } if (nor->quad_enable) { @@ -4047,6 +4134,16 @@ int spi_nor_scan(struct spi_nor *nor, const char *name, if (info->flags & SPI_S3AN) nor->flags |= SNOR_F_READY_XSR_RDY; + /* + * Atmel, SST, Intel/Numonyx, and others serial NOR tend to power up + * with the software protection bits set. + */ + if (JEDEC_MFR(nor->info) == SNOR_MFR_ATMEL || + JEDEC_MFR(nor->info) == SNOR_MFR_INTEL || + JEDEC_MFR(nor->info) == SNOR_MFR_SST || + nor->info->flags & SPI_NOR_HAS_LOCK) + nor->clear_sr_bp = spi_nor_clear_sr_bp; + /* Parse the Serial Flash Discoverable Parameters table. */ ret = spi_nor_init_params(nor, ¶ms); if (ret) diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c index 407f4095a37a..799fc38c5c34 100644 --- a/drivers/net/bonding/bond_main.c +++ b/drivers/net/bonding/bond_main.c @@ -4320,12 +4320,12 @@ void bond_setup(struct net_device *bond_dev) bond_dev->features |= NETIF_F_NETNS_LOCAL; bond_dev->hw_features = BOND_VLAN_FEATURES | - NETIF_F_HW_VLAN_CTAG_TX | NETIF_F_HW_VLAN_CTAG_RX | NETIF_F_HW_VLAN_CTAG_FILTER; bond_dev->hw_features |= NETIF_F_GSO_ENCAP_ALL | NETIF_F_GSO_UDP_L4; bond_dev->features |= bond_dev->hw_features; + bond_dev->features |= NETIF_F_HW_VLAN_CTAG_TX | NETIF_F_HW_VLAN_STAG_TX; } /* Destroy a bonding device. diff --git a/drivers/net/dsa/microchip/ksz_common.c b/drivers/net/dsa/microchip/ksz_common.c index f46086fa9064..db91b213eae1 100644 --- a/drivers/net/dsa/microchip/ksz_common.c +++ b/drivers/net/dsa/microchip/ksz_common.c @@ -436,9 +436,9 @@ int ksz_switch_register(struct ksz_device *dev, return PTR_ERR(dev->reset_gpio); if (dev->reset_gpio) { - gpiod_set_value(dev->reset_gpio, 1); + gpiod_set_value_cansleep(dev->reset_gpio, 1); mdelay(10); - gpiod_set_value(dev->reset_gpio, 0); + gpiod_set_value_cansleep(dev->reset_gpio, 0); } mutex_init(&dev->dev_mutex); @@ -487,7 +487,7 @@ void ksz_switch_remove(struct ksz_device *dev) dsa_unregister_switch(dev->ds); if (dev->reset_gpio) - gpiod_set_value(dev->reset_gpio, 1); + gpiod_set_value_cansleep(dev->reset_gpio, 1); } EXPORT_SYMBOL(ksz_switch_remove); diff --git a/drivers/net/ethernet/aquantia/atlantic/aq_filters.c b/drivers/net/ethernet/aquantia/atlantic/aq_filters.c index 18bc035da850..1fff462a4175 100644 --- a/drivers/net/ethernet/aquantia/atlantic/aq_filters.c +++ b/drivers/net/ethernet/aquantia/atlantic/aq_filters.c @@ -843,9 +843,14 @@ int aq_filters_vlans_update(struct aq_nic_s *aq_nic) return err; if (aq_nic->ndev->features & NETIF_F_HW_VLAN_CTAG_FILTER) { - if (hweight < AQ_VLAN_MAX_FILTERS) - err = aq_hw_ops->hw_filter_vlan_ctrl(aq_hw, true); + if (hweight < AQ_VLAN_MAX_FILTERS && hweight > 0) { + err = aq_hw_ops->hw_filter_vlan_ctrl(aq_hw, + !(aq_nic->packet_filter & IFF_PROMISC)); + aq_nic->aq_nic_cfg.is_vlan_force_promisc = false; + } else { /* otherwise left in promiscue mode */ + aq_nic->aq_nic_cfg.is_vlan_force_promisc = true; + } } return err; @@ -866,6 +871,7 @@ int aq_filters_vlan_offload_off(struct aq_nic_s *aq_nic) if (unlikely(!aq_hw_ops->hw_filter_vlan_ctrl)) return -EOPNOTSUPP; + aq_nic->aq_nic_cfg.is_vlan_force_promisc = true; err = aq_hw_ops->hw_filter_vlan_ctrl(aq_hw, false); if (err) return err; diff --git a/drivers/net/ethernet/aquantia/atlantic/aq_nic.c b/drivers/net/ethernet/aquantia/atlantic/aq_nic.c index 0da5e161ec5d..41172fbebddd 100644 --- a/drivers/net/ethernet/aquantia/atlantic/aq_nic.c +++ b/drivers/net/ethernet/aquantia/atlantic/aq_nic.c @@ -126,6 +126,7 @@ void aq_nic_cfg_start(struct aq_nic_s *self) cfg->link_speed_msk &= cfg->aq_hw_caps->link_speed_msk; cfg->features = cfg->aq_hw_caps->hw_features; + cfg->is_vlan_force_promisc = true; } static int aq_nic_update_link_status(struct aq_nic_s *self) diff --git a/drivers/net/ethernet/aquantia/atlantic/aq_nic.h b/drivers/net/ethernet/aquantia/atlantic/aq_nic.h index eb2e3c7c36f9..0f22f5d5691b 100644 --- a/drivers/net/ethernet/aquantia/atlantic/aq_nic.h +++ b/drivers/net/ethernet/aquantia/atlantic/aq_nic.h @@ -35,6 +35,7 @@ struct aq_nic_cfg_s { u32 flow_control; u32 link_speed_msk; u32 wol; + bool is_vlan_force_promisc; u16 is_mc_list_enabled; u16 mc_list_count; bool is_autoneg; diff --git a/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.c b/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.c index 1c7593d54035..13ac2661a473 100644 --- a/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.c +++ b/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.c @@ -778,8 +778,15 @@ static int hw_atl_b0_hw_packet_filter_set(struct aq_hw_s *self, unsigned int packet_filter) { unsigned int i = 0U; + struct aq_nic_cfg_s *cfg = self->aq_nic_cfg; + + hw_atl_rpfl2promiscuous_mode_en_set(self, + IS_FILTER_ENABLED(IFF_PROMISC)); + + hw_atl_rpf_vlan_prom_mode_en_set(self, + IS_FILTER_ENABLED(IFF_PROMISC) || + cfg->is_vlan_force_promisc); - hw_atl_rpfl2promiscuous_mode_en_set(self, IS_FILTER_ENABLED(IFF_PROMISC)); hw_atl_rpfl2multicast_flr_en_set(self, IS_FILTER_ENABLED(IFF_ALLMULTI), 0); @@ -788,13 +795,13 @@ static int hw_atl_b0_hw_packet_filter_set(struct aq_hw_s *self, hw_atl_rpfl2broadcast_en_set(self, IS_FILTER_ENABLED(IFF_BROADCAST)); - self->aq_nic_cfg->is_mc_list_enabled = IS_FILTER_ENABLED(IFF_MULTICAST); + cfg->is_mc_list_enabled = IS_FILTER_ENABLED(IFF_MULTICAST); for (i = HW_ATL_B0_MAC_MIN; i < HW_ATL_B0_MAC_MAX; ++i) hw_atl_rpfl2_uc_flr_en_set(self, - (self->aq_nic_cfg->is_mc_list_enabled && - (i <= self->aq_nic_cfg->mc_list_count)) ? - 1U : 0U, i); + (cfg->is_mc_list_enabled && + (i <= cfg->mc_list_count)) ? + 1U : 0U, i); return aq_hw_err_from_flags(self); } @@ -1086,7 +1093,7 @@ static int hw_atl_b0_hw_vlan_set(struct aq_hw_s *self, static int hw_atl_b0_hw_vlan_ctrl(struct aq_hw_s *self, bool enable) { /* set promisc in case of disabing the vland filter */ - hw_atl_rpf_vlan_prom_mode_en_set(self, !!!enable); + hw_atl_rpf_vlan_prom_mode_en_set(self, !enable); return aq_hw_err_from_flags(self); } diff --git a/drivers/net/ethernet/cadence/macb_main.c b/drivers/net/ethernet/cadence/macb_main.c index 2375a13bb446..262a28ff81fc 100644 --- a/drivers/net/ethernet/cadence/macb_main.c +++ b/drivers/net/ethernet/cadence/macb_main.c @@ -4180,7 +4180,7 @@ static int macb_probe(struct platform_device *pdev) if (PTR_ERR(mac) == -EPROBE_DEFER) { err = -EPROBE_DEFER; goto err_out_free_netdev; - } else if (!IS_ERR(mac)) { + } else if (!IS_ERR_OR_NULL(mac)) { ether_addr_copy(bp->dev->dev_addr, mac); } else { macb_get_hwaddr(bp); diff --git a/drivers/net/ethernet/emulex/benet/be_ethtool.c b/drivers/net/ethernet/emulex/benet/be_ethtool.c index 8a6785173228..492f8769ac12 100644 --- a/drivers/net/ethernet/emulex/benet/be_ethtool.c +++ b/drivers/net/ethernet/emulex/benet/be_ethtool.c @@ -891,7 +891,7 @@ static void be_self_test(struct net_device *netdev, struct ethtool_test *test, u64 *data) { struct be_adapter *adapter = netdev_priv(netdev); - int status; + int status, cnt; u8 link_status = 0; if (adapter->function_caps & BE_FUNCTION_CAPS_SUPER_NIC) { @@ -902,6 +902,9 @@ static void be_self_test(struct net_device *netdev, struct ethtool_test *test, memset(data, 0, sizeof(u64) * ETHTOOL_TESTS_NUM); + /* check link status before offline tests */ + link_status = netif_carrier_ok(netdev); + if (test->flags & ETH_TEST_FL_OFFLINE) { if (be_loopback_test(adapter, BE_MAC_LOOPBACK, &data[0]) != 0) test->flags |= ETH_TEST_FL_FAILED; @@ -922,13 +925,26 @@ static void be_self_test(struct net_device *netdev, struct ethtool_test *test, test->flags |= ETH_TEST_FL_FAILED; } - status = be_cmd_link_status_query(adapter, NULL, &link_status, 0); - if (status) { - test->flags |= ETH_TEST_FL_FAILED; - data[4] = -1; - } else if (!link_status) { + /* link status was down prior to test */ + if (!link_status) { test->flags |= ETH_TEST_FL_FAILED; data[4] = 1; + return; + } + + for (cnt = 10; cnt; cnt--) { + status = be_cmd_link_status_query(adapter, NULL, &link_status, + 0); + if (status) { + test->flags |= ETH_TEST_FL_FAILED; + data[4] = -1; + break; + } + + if (link_status) + break; + + msleep_interruptible(500); } } diff --git a/drivers/net/ethernet/sis/sis900.c b/drivers/net/ethernet/sis/sis900.c index 67f9bb6e941b..9b036c857b1d 100644 --- a/drivers/net/ethernet/sis/sis900.c +++ b/drivers/net/ethernet/sis/sis900.c @@ -1057,7 +1057,7 @@ sis900_open(struct net_device *net_dev) sis900_set_mode(sis_priv, HW_SPEED_10_MBPS, FDX_CAPABLE_HALF_SELECTED); /* Enable all known interrupts by setting the interrupt mask. */ - sw32(imr, RxSOVR | RxORN | RxERR | RxOK | TxURN | TxERR | TxIDLE); + sw32(imr, RxSOVR | RxORN | RxERR | RxOK | TxURN | TxERR | TxIDLE | TxDESC); sw32(cr, RxENA | sr32(cr)); sw32(ier, IE); @@ -1578,7 +1578,7 @@ static void sis900_tx_timeout(struct net_device *net_dev) sw32(txdp, sis_priv->tx_ring_dma); /* Enable all known interrupts by setting the interrupt mask. */ - sw32(imr, RxSOVR | RxORN | RxERR | RxOK | TxURN | TxERR | TxIDLE); + sw32(imr, RxSOVR | RxORN | RxERR | RxOK | TxURN | TxERR | TxIDLE | TxDESC); } /** @@ -1618,7 +1618,7 @@ sis900_start_xmit(struct sk_buff *skb, struct net_device *net_dev) spin_unlock_irqrestore(&sis_priv->lock, flags); return NETDEV_TX_OK; } - sis_priv->tx_ring[entry].cmdsts = (OWN | skb->len); + sis_priv->tx_ring[entry].cmdsts = (OWN | INTR | skb->len); sw32(cr, TxENA | sr32(cr)); sis_priv->cur_tx ++; @@ -1674,7 +1674,7 @@ static irqreturn_t sis900_interrupt(int irq, void *dev_instance) do { status = sr32(isr); - if ((status & (HIBERR|TxURN|TxERR|TxIDLE|RxORN|RxERR|RxOK)) == 0) + if ((status & (HIBERR|TxURN|TxERR|TxIDLE|TxDESC|RxORN|RxERR|RxOK)) == 0) /* nothing intresting happened */ break; handled = 1; @@ -1684,7 +1684,7 @@ static irqreturn_t sis900_interrupt(int irq, void *dev_instance) /* Rx interrupt */ sis900_rx(net_dev); - if (status & (TxURN | TxERR | TxIDLE)) + if (status & (TxURN | TxERR | TxIDLE | TxDESC)) /* Tx interrupt */ sis900_finish_xmit(net_dev); @@ -1896,8 +1896,8 @@ static void sis900_finish_xmit (struct net_device *net_dev) if (tx_status & OWN) { /* The packet is not transmitted yet (owned by hardware) ! - * Note: the interrupt is generated only when Tx Machine - * is idle, so this is an almost impossible case */ + * Note: this is an almost impossible condition + * in case of TxDESC ('descriptor interrupt') */ break; } @@ -2473,7 +2473,7 @@ static int sis900_resume(struct pci_dev *pci_dev) sis900_set_mode(sis_priv, HW_SPEED_10_MBPS, FDX_CAPABLE_HALF_SELECTED); /* Enable all known interrupts by setting the interrupt mask. */ - sw32(imr, RxSOVR | RxORN | RxERR | RxOK | TxURN | TxERR | TxIDLE); + sw32(imr, RxSOVR | RxORN | RxERR | RxOK | TxURN | TxERR | TxIDLE | TxDESC); sw32(cr, RxENA | sr32(cr)); sw32(ier, IE); diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_hwtstamp.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_hwtstamp.c index 2dcdf761d525..020159622559 100644 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_hwtstamp.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_hwtstamp.c @@ -112,7 +112,7 @@ static int adjust_systime(void __iomem *ioaddr, u32 sec, u32 nsec, * programmed with (2^32 – ) */ if (gmac4) - sec = (100000000ULL - sec); + sec = -sec; value = readl(ioaddr + PTP_TCR); if (value & PTP_TCR_TSCTRLSSR) diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c index 06dd51f47cfd..06358fe5b245 100644 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c @@ -2947,12 +2947,15 @@ static netdev_tx_t stmmac_tso_xmit(struct sk_buff *skb, struct net_device *dev) /* Manage tx mitigation */ tx_q->tx_count_frames += nfrags + 1; - if (priv->tx_coal_frames <= tx_q->tx_count_frames) { + if (likely(priv->tx_coal_frames > tx_q->tx_count_frames) && + !(priv->synopsys_id >= DWMAC_CORE_4_00 && + (skb_shinfo(skb)->tx_flags & SKBTX_HW_TSTAMP) && + priv->hwts_tx_en)) { + stmmac_tx_timer_arm(priv, queue); + } else { + tx_q->tx_count_frames = 0; stmmac_set_tx_ic(priv, desc); priv->xstats.tx_set_ic_bit++; - tx_q->tx_count_frames = 0; - } else { - stmmac_tx_timer_arm(priv, queue); } skb_tx_timestamp(skb); @@ -3166,12 +3169,15 @@ static netdev_tx_t stmmac_xmit(struct sk_buff *skb, struct net_device *dev) * element in case of no SG. */ tx_q->tx_count_frames += nfrags + 1; - if (priv->tx_coal_frames <= tx_q->tx_count_frames) { + if (likely(priv->tx_coal_frames > tx_q->tx_count_frames) && + !(priv->synopsys_id >= DWMAC_CORE_4_00 && + (skb_shinfo(skb)->tx_flags & SKBTX_HW_TSTAMP) && + priv->hwts_tx_en)) { + stmmac_tx_timer_arm(priv, queue); + } else { + tx_q->tx_count_frames = 0; stmmac_set_tx_ic(priv, desc); priv->xstats.tx_set_ic_bit++; - tx_q->tx_count_frames = 0; - } else { - stmmac_tx_timer_arm(priv, queue); } skb_tx_timestamp(skb); diff --git a/drivers/net/ppp/ppp_mppe.c b/drivers/net/ppp/ppp_mppe.c index ff61dd8748de..66c8e65f6872 100644 --- a/drivers/net/ppp/ppp_mppe.c +++ b/drivers/net/ppp/ppp_mppe.c @@ -63,6 +63,7 @@ MODULE_AUTHOR("Frank Cusack "); MODULE_DESCRIPTION("Point-to-Point Protocol Microsoft Point-to-Point Encryption support"); MODULE_LICENSE("Dual BSD/GPL"); MODULE_ALIAS("ppp-compress-" __stringify(CI_MPPE)); +MODULE_SOFTDEP("pre: arc4"); MODULE_VERSION("1.0.2"); static unsigned int diff --git a/drivers/net/team/team.c b/drivers/net/team/team.c index b48006e7fa2f..36916bf51ee6 100644 --- a/drivers/net/team/team.c +++ b/drivers/net/team/team.c @@ -2128,12 +2128,12 @@ static void team_setup(struct net_device *dev) dev->features |= NETIF_F_NETNS_LOCAL; dev->hw_features = TEAM_VLAN_FEATURES | - NETIF_F_HW_VLAN_CTAG_TX | NETIF_F_HW_VLAN_CTAG_RX | NETIF_F_HW_VLAN_CTAG_FILTER; dev->hw_features |= NETIF_F_GSO_ENCAP_ALL | NETIF_F_GSO_UDP_L4; dev->features |= dev->hw_features; + dev->features |= NETIF_F_HW_VLAN_CTAG_TX | NETIF_F_HW_VLAN_STAG_TX; } static int team_newlink(struct net *src_net, struct net_device *dev, diff --git a/drivers/net/usb/qmi_wwan.c b/drivers/net/usb/qmi_wwan.c index d080f8048e52..8b4ad10cf940 100644 --- a/drivers/net/usb/qmi_wwan.c +++ b/drivers/net/usb/qmi_wwan.c @@ -1482,7 +1482,7 @@ static int qmi_wwan_probe(struct usb_interface *intf, * different. Ignore the current interface if the number of endpoints * equals the number for the diag interface (two). */ - info = (void *)&id->driver_info; + info = (void *)id->driver_info; if (info->data & QMI_WWAN_QUIRK_QUECTEL_DYNCFG) { if (desc->bNumEndpoints == 2) diff --git a/drivers/net/vrf.c b/drivers/net/vrf.c index 11b9525dff27..311b0cc6eb98 100644 --- a/drivers/net/vrf.c +++ b/drivers/net/vrf.c @@ -350,8 +350,8 @@ static int vrf_finish_output6(struct net *net, struct sock *sk, { struct dst_entry *dst = skb_dst(skb); struct net_device *dev = dst->dev; + const struct in6_addr *nexthop; struct neighbour *neigh; - struct in6_addr *nexthop; int ret; nf_reset(skb); diff --git a/drivers/pci/pci-driver.c b/drivers/pci/pci-driver.c index 98af9ecd4a90..ca3793002e2f 100644 --- a/drivers/pci/pci-driver.c +++ b/drivers/pci/pci-driver.c @@ -859,7 +859,7 @@ static int pci_pm_suspend_noirq(struct device *dev) pci_dev->bus->self->skip_bus_pm = true; } - if (pci_dev->skip_bus_pm && !pm_suspend_via_firmware()) { + if (pci_dev->skip_bus_pm && pm_suspend_no_platform()) { dev_dbg(dev, "PCI PM: Skipped\n"); goto Fixup; } @@ -914,10 +914,10 @@ static int pci_pm_resume_noirq(struct device *dev) /* * In the suspend-to-idle case, devices left in D0 during suspend will * stay in D0, so it is not necessary to restore or update their - * configuration here and attempting to put them into D0 again may - * confuse some firmware, so avoid doing that. + * configuration here and attempting to put them into D0 again is + * pointless, so avoid doing that. */ - if (!pci_dev->skip_bus_pm || pm_suspend_via_firmware()) + if (!(pci_dev->skip_bus_pm && pm_suspend_no_platform())) pci_pm_default_resume_early(pci_dev); pci_fixup_device(pci_fixup_resume_early, pci_dev); diff --git a/drivers/pinctrl/mediatek/mtk-eint.c b/drivers/pinctrl/mediatek/mtk-eint.c index f464f8cd274b..7e526bcf5e0b 100644 --- a/drivers/pinctrl/mediatek/mtk-eint.c +++ b/drivers/pinctrl/mediatek/mtk-eint.c @@ -113,6 +113,8 @@ static void mtk_eint_mask(struct irq_data *d) void __iomem *reg = mtk_eint_get_offset(eint, d->hwirq, eint->regs->mask_set); + eint->cur_mask[d->hwirq >> 5] &= ~mask; + writel(mask, reg); } @@ -123,6 +125,8 @@ static void mtk_eint_unmask(struct irq_data *d) void __iomem *reg = mtk_eint_get_offset(eint, d->hwirq, eint->regs->mask_clr); + eint->cur_mask[d->hwirq >> 5] |= mask; + writel(mask, reg); if (eint->dual_edge[d->hwirq]) @@ -217,19 +221,6 @@ static void mtk_eint_chip_write_mask(const struct mtk_eint *eint, } } -static void mtk_eint_chip_read_mask(const struct mtk_eint *eint, - void __iomem *base, u32 *buf) -{ - int port; - void __iomem *reg; - - for (port = 0; port < eint->hw->ports; port++) { - reg = base + eint->regs->mask + (port << 2); - buf[port] = ~readl_relaxed(reg); - /* Mask is 0 when irq is enabled, and 1 when disabled. */ - } -} - static int mtk_eint_irq_request_resources(struct irq_data *d) { struct mtk_eint *eint = irq_data_get_irq_chip_data(d); @@ -318,7 +309,7 @@ static void mtk_eint_irq_handler(struct irq_desc *desc) struct irq_chip *chip = irq_desc_get_chip(desc); struct mtk_eint *eint = irq_desc_get_handler_data(desc); unsigned int status, eint_num; - int offset, index, virq; + int offset, mask_offset, index, virq; void __iomem *reg = mtk_eint_get_offset(eint, 0, eint->regs->stat); int dual_edge, start_level, curr_level; @@ -328,10 +319,24 @@ static void mtk_eint_irq_handler(struct irq_desc *desc) status = readl(reg); while (status) { offset = __ffs(status); + mask_offset = eint_num >> 5; index = eint_num + offset; virq = irq_find_mapping(eint->domain, index); status &= ~BIT(offset); + /* + * If we get an interrupt on pin that was only required + * for wake (but no real interrupt requested), mask the + * interrupt (as would mtk_eint_resume do anyway later + * in the resume sequence). + */ + if (eint->wake_mask[mask_offset] & BIT(offset) && + !(eint->cur_mask[mask_offset] & BIT(offset))) { + writel_relaxed(BIT(offset), reg - + eint->regs->stat + + eint->regs->mask_set); + } + dual_edge = eint->dual_edge[index]; if (dual_edge) { /* @@ -370,7 +375,6 @@ static void mtk_eint_irq_handler(struct irq_desc *desc) int mtk_eint_do_suspend(struct mtk_eint *eint) { - mtk_eint_chip_read_mask(eint, eint->base, eint->cur_mask); mtk_eint_chip_write_mask(eint, eint->base, eint->wake_mask); return 0; diff --git a/drivers/pinctrl/pinctrl-mcp23s08.c b/drivers/pinctrl/pinctrl-mcp23s08.c index 568ca96cdb6d..3a235487e38d 100644 --- a/drivers/pinctrl/pinctrl-mcp23s08.c +++ b/drivers/pinctrl/pinctrl-mcp23s08.c @@ -771,6 +771,10 @@ static int mcp23s08_probe_one(struct mcp23s08 *mcp, struct device *dev, if (ret < 0) goto fail; + ret = devm_gpiochip_add_data(dev, &mcp->chip, mcp); + if (ret < 0) + goto fail; + mcp->irq_controller = device_property_read_bool(dev, "interrupt-controller"); if (mcp->irq && mcp->irq_controller) { @@ -812,10 +816,6 @@ static int mcp23s08_probe_one(struct mcp23s08 *mcp, struct device *dev, goto fail; } - ret = devm_gpiochip_add_data(dev, &mcp->chip, mcp); - if (ret < 0) - goto fail; - if (one_regmap_config) { mcp->pinctrl_desc.name = devm_kasprintf(dev, GFP_KERNEL, "mcp23xxx-pinctrl.%d", raw_chip_address); diff --git a/drivers/pinctrl/pinctrl-ocelot.c b/drivers/pinctrl/pinctrl-ocelot.c index 3b4ca52d2456..fb76fb2e9ea5 100644 --- a/drivers/pinctrl/pinctrl-ocelot.c +++ b/drivers/pinctrl/pinctrl-ocelot.c @@ -396,7 +396,7 @@ static int ocelot_pin_function_idx(struct ocelot_pinctrl *info, return -1; } -#define REG(r, info, p) ((r) * (info)->stride + (4 * ((p) / 32))) +#define REG_ALT(msb, info, p) (OCELOT_GPIO_ALT0 * (info)->stride + 4 * ((msb) + ((info)->stride * ((p) / 32)))) static int ocelot_pinmux_set_mux(struct pinctrl_dev *pctldev, unsigned int selector, unsigned int group) @@ -412,19 +412,21 @@ static int ocelot_pinmux_set_mux(struct pinctrl_dev *pctldev, /* * f is encoded on two bits. - * bit 0 of f goes in BIT(pin) of ALT0, bit 1 of f goes in BIT(pin) of - * ALT1 + * bit 0 of f goes in BIT(pin) of ALT[0], bit 1 of f goes in BIT(pin) of + * ALT[1] * This is racy because both registers can't be updated at the same time * but it doesn't matter much for now. */ - regmap_update_bits(info->map, REG(OCELOT_GPIO_ALT0, info, pin->pin), + regmap_update_bits(info->map, REG_ALT(0, info, pin->pin), BIT(p), f << p); - regmap_update_bits(info->map, REG(OCELOT_GPIO_ALT1, info, pin->pin), + regmap_update_bits(info->map, REG_ALT(1, info, pin->pin), BIT(p), f << (p - 1)); return 0; } +#define REG(r, info, p) ((r) * (info)->stride + (4 * ((p) / 32))) + static int ocelot_gpio_set_direction(struct pinctrl_dev *pctldev, struct pinctrl_gpio_range *range, unsigned int pin, bool input) @@ -432,7 +434,7 @@ static int ocelot_gpio_set_direction(struct pinctrl_dev *pctldev, struct ocelot_pinctrl *info = pinctrl_dev_get_drvdata(pctldev); unsigned int p = pin % 32; - regmap_update_bits(info->map, REG(OCELOT_GPIO_OE, info, p), BIT(p), + regmap_update_bits(info->map, REG(OCELOT_GPIO_OE, info, pin), BIT(p), input ? 0 : BIT(p)); return 0; @@ -445,9 +447,9 @@ static int ocelot_gpio_request_enable(struct pinctrl_dev *pctldev, struct ocelot_pinctrl *info = pinctrl_dev_get_drvdata(pctldev); unsigned int p = offset % 32; - regmap_update_bits(info->map, REG(OCELOT_GPIO_ALT0, info, offset), + regmap_update_bits(info->map, REG_ALT(0, info, offset), BIT(p), 0); - regmap_update_bits(info->map, REG(OCELOT_GPIO_ALT1, info, offset), + regmap_update_bits(info->map, REG_ALT(1, info, offset), BIT(p), 0); return 0; diff --git a/drivers/scsi/vmw_pvscsi.c b/drivers/scsi/vmw_pvscsi.c index ecee4b3ff073..377b07b2feeb 100644 --- a/drivers/scsi/vmw_pvscsi.c +++ b/drivers/scsi/vmw_pvscsi.c @@ -763,6 +763,7 @@ static int pvscsi_queue_lck(struct scsi_cmnd *cmd, void (*done)(struct scsi_cmnd struct pvscsi_adapter *adapter = shost_priv(host); struct pvscsi_ctx *ctx; unsigned long flags; + unsigned char op; spin_lock_irqsave(&adapter->hw_lock, flags); @@ -775,13 +776,14 @@ static int pvscsi_queue_lck(struct scsi_cmnd *cmd, void (*done)(struct scsi_cmnd } cmd->scsi_done = done; + op = cmd->cmnd[0]; dev_dbg(&cmd->device->sdev_gendev, - "queued cmd %p, ctx %p, op=%x\n", cmd, ctx, cmd->cmnd[0]); + "queued cmd %p, ctx %p, op=%x\n", cmd, ctx, op); spin_unlock_irqrestore(&adapter->hw_lock, flags); - pvscsi_kick_io(adapter, cmd->cmnd[0]); + pvscsi_kick_io(adapter, op); return 0; } diff --git a/drivers/soc/Makefile b/drivers/soc/Makefile index 524ecdc2a9bb..2ec355003524 100644 --- a/drivers/soc/Makefile +++ b/drivers/soc/Makefile @@ -22,7 +22,7 @@ obj-$(CONFIG_ARCH_ROCKCHIP) += rockchip/ obj-$(CONFIG_SOC_SAMSUNG) += samsung/ obj-y += sunxi/ obj-$(CONFIG_ARCH_TEGRA) += tegra/ -obj-$(CONFIG_SOC_TI) += ti/ +obj-y += ti/ obj-$(CONFIG_ARCH_U8500) += ux500/ obj-$(CONFIG_PLAT_VERSATILE) += versatile/ obj-y += xilinx/ diff --git a/drivers/soc/ti/Kconfig b/drivers/soc/ti/Kconfig index ea0859f7b185..d7d50d48d05d 100644 --- a/drivers/soc/ti/Kconfig +++ b/drivers/soc/ti/Kconfig @@ -75,10 +75,10 @@ config TI_SCI_PM_DOMAINS called ti_sci_pm_domains. Note this is needed early in boot before rootfs may be available. +endif # SOC_TI + config TI_SCI_INTA_MSI_DOMAIN bool select GENERIC_MSI_IRQ_DOMAIN help Driver to enable Interrupt Aggregator specific MSI Domain. - -endif # SOC_TI diff --git a/drivers/target/iscsi/iscsi_target_auth.c b/drivers/target/iscsi/iscsi_target_auth.c index b6e4862cc242..51ddca2033e0 100644 --- a/drivers/target/iscsi/iscsi_target_auth.c +++ b/drivers/target/iscsi/iscsi_target_auth.c @@ -81,6 +81,12 @@ out: return CHAP_DIGEST_UNKNOWN; } +static void chap_close(struct iscsi_conn *conn) +{ + kfree(conn->auth_protocol); + conn->auth_protocol = NULL; +} + static struct iscsi_chap *chap_server_open( struct iscsi_conn *conn, struct iscsi_node_auth *auth, @@ -118,7 +124,7 @@ static struct iscsi_chap *chap_server_open( case CHAP_DIGEST_UNKNOWN: default: pr_err("Unsupported CHAP_A value\n"); - kfree(conn->auth_protocol); + chap_close(conn); return NULL; } @@ -133,19 +139,13 @@ static struct iscsi_chap *chap_server_open( * Generate Challenge. */ if (chap_gen_challenge(conn, 1, aic_str, aic_len) < 0) { - kfree(conn->auth_protocol); + chap_close(conn); return NULL; } return chap; } -static void chap_close(struct iscsi_conn *conn) -{ - kfree(conn->auth_protocol); - conn->auth_protocol = NULL; -} - static int chap_server_compute_md5( struct iscsi_conn *conn, struct iscsi_node_auth *auth, diff --git a/drivers/target/target_core_iblock.c b/drivers/target/target_core_iblock.c index f4a075303e9a..6949ea8bc387 100644 --- a/drivers/target/target_core_iblock.c +++ b/drivers/target/target_core_iblock.c @@ -502,7 +502,7 @@ iblock_execute_write_same(struct se_cmd *cmd) /* Always in 512 byte units for Linux/Block */ block_lba += sg->length >> SECTOR_SHIFT; - sectors -= 1; + sectors -= sg->length >> SECTOR_SHIFT; } iblock_submit_bios(&list); diff --git a/fs/Kconfig b/fs/Kconfig index f1046cf6ad85..bfb1c6095c7a 100644 --- a/fs/Kconfig +++ b/fs/Kconfig @@ -11,7 +11,6 @@ config DCACHE_WORD_ACCESS config VALIDATE_FS_PARSER bool "Validate filesystem parameter description" - default y help Enable this to perform validation of the parameter description for a filesystem when it is registered. diff --git a/fs/afs/callback.c b/fs/afs/callback.c index d441bef72163..915010464572 100644 --- a/fs/afs/callback.c +++ b/fs/afs/callback.c @@ -275,9 +275,9 @@ static void afs_break_one_callback(struct afs_server *server, struct afs_super_info *as = AFS_FS_S(cbi->sb); struct afs_volume *volume = as->volume; - write_lock(&volume->cb_break_lock); + write_lock(&volume->cb_v_break_lock); volume->cb_v_break++; - write_unlock(&volume->cb_break_lock); + write_unlock(&volume->cb_v_break_lock); } else { data.volume = NULL; data.fid = *fid; diff --git a/fs/afs/inode.c b/fs/afs/inode.c index b42d9d09669c..18a50d4febcf 100644 --- a/fs/afs/inode.c +++ b/fs/afs/inode.c @@ -55,6 +55,16 @@ static noinline void dump_vnode(struct afs_vnode *vnode, struct afs_vnode *paren dump_stack(); } +/* + * Set the file size and block count. Estimate the number of 512 bytes blocks + * used, rounded up to nearest 1K for consistency with other AFS clients. + */ +static void afs_set_i_size(struct afs_vnode *vnode, u64 size) +{ + i_size_write(&vnode->vfs_inode, size); + vnode->vfs_inode.i_blocks = ((size + 1023) >> 10) << 1; +} + /* * Initialise an inode from the vnode status. */ @@ -124,12 +134,7 @@ static int afs_inode_init_from_status(struct afs_vnode *vnode, struct key *key, return afs_protocol_error(NULL, -EBADMSG, afs_eproto_file_type); } - /* - * Estimate 512 bytes blocks used, rounded up to nearest 1K - * for consistency with other AFS clients. - */ - inode->i_blocks = ((i_size_read(inode) + 1023) >> 10) << 1; - i_size_write(&vnode->vfs_inode, status->size); + afs_set_i_size(vnode, status->size); vnode->invalid_before = status->data_version; inode_set_iversion_raw(&vnode->vfs_inode, status->data_version); @@ -207,11 +212,13 @@ static void afs_apply_status(struct afs_fs_cursor *fc, if (expected_version && *expected_version != status->data_version) { - kdebug("vnode modified %llx on {%llx:%llu} [exp %llx] %s", - (unsigned long long) status->data_version, - vnode->fid.vid, vnode->fid.vnode, - (unsigned long long) *expected_version, - fc->type ? fc->type->name : "???"); + if (test_bit(AFS_VNODE_CB_PROMISED, &vnode->flags)) + pr_warn("kAFS: vnode modified {%llx:%llu} %llx->%llx %s\n", + vnode->fid.vid, vnode->fid.vnode, + (unsigned long long)*expected_version, + (unsigned long long)status->data_version, + fc->type ? fc->type->name : "???"); + vnode->invalid_before = status->data_version; if (vnode->status.type == AFS_FTYPE_DIR) { if (test_and_clear_bit(AFS_VNODE_DIR_VALID, &vnode->flags)) @@ -230,7 +237,7 @@ static void afs_apply_status(struct afs_fs_cursor *fc, if (data_changed) { inode_set_iversion_raw(&vnode->vfs_inode, status->data_version); - i_size_write(&vnode->vfs_inode, status->size); + afs_set_i_size(vnode, status->size); } } diff --git a/fs/afs/internal.h b/fs/afs/internal.h index 8a67bf741880..7ee63526c6a2 100644 --- a/fs/afs/internal.h +++ b/fs/afs/internal.h @@ -109,10 +109,8 @@ struct afs_call { struct rxrpc_call *rxcall; /* RxRPC call handle */ struct key *key; /* security for this call */ struct afs_net *net; /* The network namespace */ - union { - struct afs_server *server; - struct afs_vlserver *vlserver; - }; + struct afs_server *server; /* The fileserver record if fs op (pins ref) */ + struct afs_vlserver *vlserver; /* The vlserver record if vl op */ struct afs_cb_interest *cbi; /* Callback interest for server used */ struct afs_vnode *lvnode; /* vnode being locked */ void *request; /* request data (first part) */ @@ -616,7 +614,7 @@ struct afs_volume { unsigned int servers_seq; /* Incremented each time ->servers changes */ unsigned cb_v_break; /* Break-everything counter. */ - rwlock_t cb_break_lock; + rwlock_t cb_v_break_lock; afs_voltype_t type; /* type of volume */ short error; diff --git a/fs/afs/volume.c b/fs/afs/volume.c index 08fdb3951c49..1a414300b654 100644 --- a/fs/afs/volume.c +++ b/fs/afs/volume.c @@ -43,6 +43,7 @@ static struct afs_volume *afs_alloc_volume(struct afs_fs_context *params, atomic_set(&volume->usage, 1); INIT_LIST_HEAD(&volume->proc_link); rwlock_init(&volume->servers_lock); + rwlock_init(&volume->cb_v_break_lock); memcpy(volume->name, vldb->name, vldb->name_len + 1); slist = afs_alloc_server_list(params->cell, params->key, vldb, type_mask); diff --git a/fs/aio.c b/fs/aio.c index 3490d1fa0e16..c1e581dd32f5 100644 --- a/fs/aio.c +++ b/fs/aio.c @@ -2095,6 +2095,7 @@ SYSCALL_DEFINE6(io_pgetevents, struct __aio_sigset ksig = { NULL, }; sigset_t ksigmask, sigsaved; struct timespec64 ts; + bool interrupted; int ret; if (timeout && unlikely(get_timespec64(&ts, timeout))) @@ -2108,8 +2109,10 @@ SYSCALL_DEFINE6(io_pgetevents, return ret; ret = do_io_getevents(ctx_id, min_nr, nr, events, timeout ? &ts : NULL); - restore_user_sigmask(ksig.sigmask, &sigsaved); - if (signal_pending(current) && !ret) + + interrupted = signal_pending(current); + restore_user_sigmask(ksig.sigmask, &sigsaved, interrupted); + if (interrupted && !ret) ret = -ERESTARTNOHAND; return ret; @@ -2128,6 +2131,7 @@ SYSCALL_DEFINE6(io_pgetevents_time32, struct __aio_sigset ksig = { NULL, }; sigset_t ksigmask, sigsaved; struct timespec64 ts; + bool interrupted; int ret; if (timeout && unlikely(get_old_timespec32(&ts, timeout))) @@ -2142,8 +2146,10 @@ SYSCALL_DEFINE6(io_pgetevents_time32, return ret; ret = do_io_getevents(ctx_id, min_nr, nr, events, timeout ? &ts : NULL); - restore_user_sigmask(ksig.sigmask, &sigsaved); - if (signal_pending(current) && !ret) + + interrupted = signal_pending(current); + restore_user_sigmask(ksig.sigmask, &sigsaved, interrupted); + if (interrupted && !ret) ret = -ERESTARTNOHAND; return ret; @@ -2193,6 +2199,7 @@ COMPAT_SYSCALL_DEFINE6(io_pgetevents, struct __compat_aio_sigset ksig = { NULL, }; sigset_t ksigmask, sigsaved; struct timespec64 t; + bool interrupted; int ret; if (timeout && get_old_timespec32(&t, timeout)) @@ -2206,8 +2213,10 @@ COMPAT_SYSCALL_DEFINE6(io_pgetevents, return ret; ret = do_io_getevents(ctx_id, min_nr, nr, events, timeout ? &t : NULL); - restore_user_sigmask(ksig.sigmask, &sigsaved); - if (signal_pending(current) && !ret) + + interrupted = signal_pending(current); + restore_user_sigmask(ksig.sigmask, &sigsaved, interrupted); + if (interrupted && !ret) ret = -ERESTARTNOHAND; return ret; @@ -2226,6 +2235,7 @@ COMPAT_SYSCALL_DEFINE6(io_pgetevents_time64, struct __compat_aio_sigset ksig = { NULL, }; sigset_t ksigmask, sigsaved; struct timespec64 t; + bool interrupted; int ret; if (timeout && get_timespec64(&t, timeout)) @@ -2239,8 +2249,10 @@ COMPAT_SYSCALL_DEFINE6(io_pgetevents_time64, return ret; ret = do_io_getevents(ctx_id, min_nr, nr, events, timeout ? &t : NULL); - restore_user_sigmask(ksig.sigmask, &sigsaved); - if (signal_pending(current) && !ret) + + interrupted = signal_pending(current); + restore_user_sigmask(ksig.sigmask, &sigsaved, interrupted); + if (interrupted && !ret) ret = -ERESTARTNOHAND; return ret; diff --git a/fs/binfmt_flat.c b/fs/binfmt_flat.c index 82a48e830018..e4b59e76afb0 100644 --- a/fs/binfmt_flat.c +++ b/fs/binfmt_flat.c @@ -856,9 +856,14 @@ err: static int load_flat_shared_library(int id, struct lib_info *libs) { + /* + * This is a fake bprm struct; only the members "buf", "file" and + * "filename" are actually used. + */ struct linux_binprm bprm; int res; char buf[16]; + loff_t pos = 0; memset(&bprm, 0, sizeof(bprm)); @@ -872,25 +877,11 @@ static int load_flat_shared_library(int id, struct lib_info *libs) if (IS_ERR(bprm.file)) return res; - bprm.cred = prepare_exec_creds(); - res = -ENOMEM; - if (!bprm.cred) - goto out; + res = kernel_read(bprm.file, bprm.buf, BINPRM_BUF_SIZE, &pos); - /* We don't really care about recalculating credentials at this point - * as we're past the point of no return and are dealing with shared - * libraries. - */ - bprm.called_set_creds = 1; - - res = prepare_binprm(&bprm); - - if (!res) + if (res >= 0) res = load_flat_file(&bprm, libs, id, NULL); - abort_creds(bprm.cred); - -out: allow_write_access(bprm.file); fput(bprm.file); diff --git a/fs/ceph/mds_client.c b/fs/ceph/mds_client.c index 6af2d0d4a87a..c8a9b89b922d 100644 --- a/fs/ceph/mds_client.c +++ b/fs/ceph/mds_client.c @@ -2121,9 +2121,10 @@ retry: if (inode && ceph_snap(inode) == CEPH_SNAPDIR) { dout("build_path path+%d: %p SNAPDIR\n", pos, temp); - } else if (stop_on_nosnap && inode && + } else if (stop_on_nosnap && inode && dentry != temp && ceph_snap(inode) == CEPH_NOSNAP) { spin_unlock(&temp->d_lock); + pos++; /* get rid of any prepended '/' */ break; } else { pos -= temp->d_name.len; diff --git a/fs/cifs/smb2ops.c b/fs/cifs/smb2ops.c index 3fdc6a41b304..9fd56b0acd7e 100644 --- a/fs/cifs/smb2ops.c +++ b/fs/cifs/smb2ops.c @@ -2372,6 +2372,41 @@ smb2_get_dfs_refer(const unsigned int xid, struct cifs_ses *ses, kfree(dfs_rsp); return rc; } + +static int +parse_reparse_symlink(struct reparse_symlink_data_buffer *symlink_buf, + u32 plen, char **target_path, + struct cifs_sb_info *cifs_sb) +{ + unsigned int sub_len; + unsigned int sub_offset; + + /* We only handle Symbolic Link : MS-FSCC 2.1.2.4 */ + if (le32_to_cpu(symlink_buf->ReparseTag) != IO_REPARSE_TAG_SYMLINK) { + cifs_dbg(VFS, "srv returned invalid symlink buffer\n"); + return -EIO; + } + + sub_offset = le16_to_cpu(symlink_buf->SubstituteNameOffset); + sub_len = le16_to_cpu(symlink_buf->SubstituteNameLength); + if (sub_offset + 20 > plen || + sub_offset + sub_len + 20 > plen) { + cifs_dbg(VFS, "srv returned malformed symlink buffer\n"); + return -EIO; + } + + *target_path = cifs_strndup_from_utf16( + symlink_buf->PathBuffer + sub_offset, + sub_len, true, cifs_sb->local_nls); + if (!(*target_path)) + return -ENOMEM; + + convert_delimiter(*target_path, '/'); + cifs_dbg(FYI, "%s: target path: %s\n", __func__, *target_path); + + return 0; +} + #define SMB2_SYMLINK_STRUCT_SIZE \ (sizeof(struct smb2_err_rsp) - 1 + sizeof(struct smb2_symlink_err_rsp)) @@ -2401,11 +2436,13 @@ smb2_query_symlink(const unsigned int xid, struct cifs_tcon *tcon, struct kvec close_iov[1]; struct smb2_create_rsp *create_rsp; struct smb2_ioctl_rsp *ioctl_rsp; - char *ioctl_buf; + struct reparse_data_buffer *reparse_buf; u32 plen; cifs_dbg(FYI, "%s: path: %s\n", __func__, full_path); + *target_path = NULL; + if (smb3_encryption_required(tcon)) flags |= CIFS_TRANSFORM_REQ; @@ -2483,17 +2520,36 @@ smb2_query_symlink(const unsigned int xid, struct cifs_tcon *tcon, if ((rc == 0) && (is_reparse_point)) { /* See MS-FSCC 2.3.23 */ - ioctl_buf = (char *)ioctl_rsp + le32_to_cpu(ioctl_rsp->OutputOffset); + reparse_buf = (struct reparse_data_buffer *) + ((char *)ioctl_rsp + + le32_to_cpu(ioctl_rsp->OutputOffset)); plen = le32_to_cpu(ioctl_rsp->OutputCount); if (plen + le32_to_cpu(ioctl_rsp->OutputOffset) > rsp_iov[1].iov_len) { - cifs_dbg(VFS, "srv returned invalid ioctl length: %d\n", plen); + cifs_dbg(VFS, "srv returned invalid ioctl len: %d\n", + plen); rc = -EIO; goto querty_exit; } - /* Do stuff with ioctl_buf/plen */ + if (plen < 8) { + cifs_dbg(VFS, "reparse buffer is too small. Must be " + "at least 8 bytes but was %d\n", plen); + rc = -EIO; + goto querty_exit; + } + + if (plen < le16_to_cpu(reparse_buf->ReparseDataLength) + 8) { + cifs_dbg(VFS, "srv returned invalid reparse buf " + "length: %d\n", plen); + rc = -EIO; + goto querty_exit; + } + + rc = parse_reparse_symlink( + (struct reparse_symlink_data_buffer *)reparse_buf, + plen, target_path, cifs_sb); goto querty_exit; } diff --git a/fs/cifs/smb2pdu.h b/fs/cifs/smb2pdu.h index c7d5813bebd8..858353d20c39 100644 --- a/fs/cifs/smb2pdu.h +++ b/fs/cifs/smb2pdu.h @@ -914,7 +914,19 @@ struct reparse_mount_point_data_buffer { __u8 PathBuffer[0]; /* Variable Length */ } __packed; -/* See MS-FSCC 2.1.2.4 and cifspdu.h for struct reparse_symlink_data */ +#define SYMLINK_FLAG_RELATIVE 0x00000001 + +struct reparse_symlink_data_buffer { + __le32 ReparseTag; + __le16 ReparseDataLength; + __u16 Reserved; + __le16 SubstituteNameOffset; + __le16 SubstituteNameLength; + __le16 PrintNameOffset; + __le16 PrintNameLength; + __le32 Flags; + __u8 PathBuffer[0]; /* Variable Length */ +} __packed; /* See MS-FSCC 2.1.2.6 and cifspdu.h for struct reparse_posix_data */ diff --git a/fs/dax.c b/fs/dax.c index 2e48c7ebb973..d2c90bf1969a 100644 --- a/fs/dax.c +++ b/fs/dax.c @@ -720,12 +720,11 @@ static void *dax_insert_entry(struct xa_state *xas, xas_reset(xas); xas_lock_irq(xas); - if (dax_entry_size(entry) != dax_entry_size(new_entry)) { + if (dax_is_zero_entry(entry) || dax_is_empty_entry(entry)) { + void *old; + dax_disassociate_entry(entry, mapping, false); dax_associate_entry(new_entry, mapping, vmf->vma, vmf->address); - } - - if (dax_is_zero_entry(entry) || dax_is_empty_entry(entry)) { /* * Only swap our new entry into the page cache if the current * entry is a zero page or an empty entry. If a normal PTE or @@ -734,7 +733,7 @@ static void *dax_insert_entry(struct xa_state *xas, * existing entry is a PMD, we will just leave the PMD in the * tree and dirty it if necessary. */ - void *old = dax_lock_entry(xas, new_entry); + old = dax_lock_entry(xas, new_entry); WARN_ON_ONCE(old != xa_mk_value(xa_to_value(entry) | DAX_LOCKED)); entry = new_entry; diff --git a/fs/eventpoll.c b/fs/eventpoll.c index ff9afd49fd79..788f1d5f4617 100644 --- a/fs/eventpoll.c +++ b/fs/eventpoll.c @@ -2327,7 +2327,7 @@ SYSCALL_DEFINE6(epoll_pwait, int, epfd, struct epoll_event __user *, events, error = do_epoll_wait(epfd, events, maxevents, timeout); - restore_user_sigmask(sigmask, &sigsaved); + restore_user_sigmask(sigmask, &sigsaved, error == -EINTR); return error; } @@ -2352,7 +2352,7 @@ COMPAT_SYSCALL_DEFINE6(epoll_pwait, int, epfd, err = do_epoll_wait(epfd, events, maxevents, timeout); - restore_user_sigmask(sigmask, &sigsaved); + restore_user_sigmask(sigmask, &sigsaved, err == -EINTR); return err; } diff --git a/fs/inode.c b/fs/inode.c index df6542ec3b88..2bf21e2c90fc 100644 --- a/fs/inode.c +++ b/fs/inode.c @@ -362,7 +362,7 @@ EXPORT_SYMBOL(inc_nlink); static void __address_space_init_once(struct address_space *mapping) { - xa_init_flags(&mapping->i_pages, XA_FLAGS_LOCK_IRQ); + xa_init_flags(&mapping->i_pages, XA_FLAGS_LOCK_IRQ | XA_FLAGS_ACCOUNT); init_rwsem(&mapping->i_mmap_rwsem); INIT_LIST_HEAD(&mapping->private_list); spin_lock_init(&mapping->private_lock); diff --git a/fs/io_uring.c b/fs/io_uring.c index 86a2bd721900..4ef62a45045d 100644 --- a/fs/io_uring.c +++ b/fs/io_uring.c @@ -579,6 +579,7 @@ static struct io_kiocb *io_get_req(struct io_ring_ctx *ctx, state->cur_req++; } + req->file = NULL; req->ctx = ctx; req->flags = 0; /* one is dropped after submission, the other at completion */ @@ -1801,10 +1802,8 @@ static int io_req_set_file(struct io_ring_ctx *ctx, const struct sqe_submit *s, req->sequence = ctx->cached_sq_head - 1; } - if (!io_op_needs_file(s->sqe)) { - req->file = NULL; + if (!io_op_needs_file(s->sqe)) return 0; - } if (flags & IOSQE_FIXED_FILE) { if (unlikely(!ctx->user_files || @@ -2201,11 +2200,12 @@ static int io_cqring_wait(struct io_ring_ctx *ctx, int min_events, } ret = wait_event_interruptible(ctx->wait, io_cqring_events(ring) >= min_events); - if (ret == -ERESTARTSYS) - ret = -EINTR; if (sig) - restore_user_sigmask(sig, &sigsaved); + restore_user_sigmask(sig, &sigsaved, ret == -ERESTARTSYS); + + if (ret == -ERESTARTSYS) + ret = -EINTR; return READ_ONCE(ring->r.head) == READ_ONCE(ring->r.tail) ? ret : 0; } diff --git a/fs/namespace.c b/fs/namespace.c index 7660c2749c96..6fbc9126367a 100644 --- a/fs/namespace.c +++ b/fs/namespace.c @@ -2596,11 +2596,12 @@ static int do_move_mount(struct path *old_path, struct path *new_path) if (!check_mnt(p)) goto out; - /* The thing moved should be either ours or completely unattached. */ - if (attached && !check_mnt(old)) + /* The thing moved must be mounted... */ + if (!is_mounted(&old->mnt)) goto out; - if (!attached && !(ns && is_anon_ns(ns))) + /* ... and either ours or the root of anon namespace */ + if (!(attached ? check_mnt(old) : is_anon_ns(ns))) goto out; if (old->mnt.mnt_flags & MNT_LOCKED) diff --git a/fs/nfs/flexfilelayout/flexfilelayoutdev.c b/fs/nfs/flexfilelayout/flexfilelayoutdev.c index a809989807d6..19f856f45689 100644 --- a/fs/nfs/flexfilelayout/flexfilelayoutdev.c +++ b/fs/nfs/flexfilelayout/flexfilelayoutdev.c @@ -18,7 +18,7 @@ #define NFSDBG_FACILITY NFSDBG_PNFS_LD -static unsigned int dataserver_timeo = NFS_DEF_TCP_RETRANS; +static unsigned int dataserver_timeo = NFS_DEF_TCP_TIMEO; static unsigned int dataserver_retrans; static bool ff_layout_has_available_ds(struct pnfs_layout_segment *lseg); diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c index 618e66078ee5..1a0cdeb3b875 100644 --- a/fs/nfsd/nfs4state.c +++ b/fs/nfsd/nfs4state.c @@ -1563,7 +1563,7 @@ static u32 nfsd4_get_drc_mem(struct nfsd4_channel_attrs *ca) * Never use more than a third of the remaining memory, * unless it's the only way to give this client a slot: */ - avail = clamp_t(int, avail, slotsize, total_avail/3); + avail = clamp_t(unsigned long, avail, slotsize, total_avail/3); num = min_t(int, num, avail / slotsize); nfsd_drc_mem_used += num * slotsize; spin_unlock(&nfsd_drc_lock); diff --git a/fs/proc/array.c b/fs/proc/array.c index 2edbb657f859..55180501b915 100644 --- a/fs/proc/array.c +++ b/fs/proc/array.c @@ -462,7 +462,7 @@ static int do_task_stat(struct seq_file *m, struct pid_namespace *ns, * a program is not able to use ptrace(2) in that case. It is * safe because the task has stopped executing permanently. */ - if (permitted && (task->flags & PF_DUMPCORE)) { + if (permitted && (task->flags & (PF_EXITING|PF_DUMPCORE))) { if (try_get_task_stack(task)) { eip = KSTK_EIP(task); esp = KSTK_ESP(task); diff --git a/fs/proc/base.c b/fs/proc/base.c index 028cf66a08f2..e6f5adfa5456 100644 --- a/fs/proc/base.c +++ b/fs/proc/base.c @@ -3081,8 +3081,7 @@ static const struct file_operations proc_tgid_base_operations = { struct pid *tgid_pidfd_to_pid(const struct file *file) { - if (!d_is_dir(file->f_path.dentry) || - (file->f_op != &proc_tgid_base_operations)) + if (file->f_op != &proc_tgid_base_operations) return ERR_PTR(-EBADF); return proc_pid(file_inode(file)); diff --git a/fs/select.c b/fs/select.c index 6cbc9ff56ba0..a4d8f6e8b63c 100644 --- a/fs/select.c +++ b/fs/select.c @@ -758,10 +758,9 @@ static long do_pselect(int n, fd_set __user *inp, fd_set __user *outp, return ret; ret = core_sys_select(n, inp, outp, exp, to); + restore_user_sigmask(sigmask, &sigsaved, ret == -ERESTARTNOHAND); ret = poll_select_copy_remaining(&end_time, tsp, type, ret); - restore_user_sigmask(sigmask, &sigsaved); - return ret; } @@ -1106,8 +1105,7 @@ SYSCALL_DEFINE5(ppoll, struct pollfd __user *, ufds, unsigned int, nfds, ret = do_sys_poll(ufds, nfds, to); - restore_user_sigmask(sigmask, &sigsaved); - + restore_user_sigmask(sigmask, &sigsaved, ret == -EINTR); /* We can restart this syscall, usually */ if (ret == -EINTR) ret = -ERESTARTNOHAND; @@ -1142,8 +1140,7 @@ SYSCALL_DEFINE5(ppoll_time32, struct pollfd __user *, ufds, unsigned int, nfds, ret = do_sys_poll(ufds, nfds, to); - restore_user_sigmask(sigmask, &sigsaved); - + restore_user_sigmask(sigmask, &sigsaved, ret == -EINTR); /* We can restart this syscall, usually */ if (ret == -EINTR) ret = -ERESTARTNOHAND; @@ -1350,10 +1347,9 @@ static long do_compat_pselect(int n, compat_ulong_t __user *inp, return ret; ret = compat_core_sys_select(n, inp, outp, exp, to); + restore_user_sigmask(sigmask, &sigsaved, ret == -ERESTARTNOHAND); ret = poll_select_copy_remaining(&end_time, tsp, type, ret); - restore_user_sigmask(sigmask, &sigsaved); - return ret; } @@ -1425,8 +1421,7 @@ COMPAT_SYSCALL_DEFINE5(ppoll_time32, struct pollfd __user *, ufds, ret = do_sys_poll(ufds, nfds, to); - restore_user_sigmask(sigmask, &sigsaved); - + restore_user_sigmask(sigmask, &sigsaved, ret == -EINTR); /* We can restart this syscall, usually */ if (ret == -EINTR) ret = -ERESTARTNOHAND; @@ -1461,8 +1456,7 @@ COMPAT_SYSCALL_DEFINE5(ppoll_time64, struct pollfd __user *, ufds, ret = do_sys_poll(ufds, nfds, to); - restore_user_sigmask(sigmask, &sigsaved); - + restore_user_sigmask(sigmask, &sigsaved, ret == -EINTR); /* We can restart this syscall, usually */ if (ret == -EINTR) ret = -ERESTARTNOHAND; diff --git a/fs/userfaultfd.c b/fs/userfaultfd.c index aa5347105402..777b2c187d7c 100644 --- a/fs/userfaultfd.c +++ b/fs/userfaultfd.c @@ -40,6 +40,16 @@ enum userfaultfd_state { /* * Start with fault_pending_wqh and fault_wqh so they're more likely * to be in the same cacheline. + * + * Locking order: + * fd_wqh.lock + * fault_pending_wqh.lock + * fault_wqh.lock + * event_wqh.lock + * + * To avoid deadlocks, IRQs must be disabled when taking any of the above locks, + * since fd_wqh.lock is taken by aio_poll() while it's holding a lock that's + * also taken in IRQ context. */ struct userfaultfd_ctx { /* waitqueue head for the pending (i.e. not read) userfaults */ @@ -458,7 +468,7 @@ vm_fault_t handle_userfault(struct vm_fault *vmf, unsigned long reason) blocking_state = return_to_userland ? TASK_INTERRUPTIBLE : TASK_KILLABLE; - spin_lock(&ctx->fault_pending_wqh.lock); + spin_lock_irq(&ctx->fault_pending_wqh.lock); /* * After the __add_wait_queue the uwq is visible to userland * through poll/read(). @@ -470,7 +480,7 @@ vm_fault_t handle_userfault(struct vm_fault *vmf, unsigned long reason) * __add_wait_queue. */ set_current_state(blocking_state); - spin_unlock(&ctx->fault_pending_wqh.lock); + spin_unlock_irq(&ctx->fault_pending_wqh.lock); if (!is_vm_hugetlb_page(vmf->vma)) must_wait = userfaultfd_must_wait(ctx, vmf->address, vmf->flags, @@ -552,13 +562,13 @@ vm_fault_t handle_userfault(struct vm_fault *vmf, unsigned long reason) * kernel stack can be released after the list_del_init. */ if (!list_empty_careful(&uwq.wq.entry)) { - spin_lock(&ctx->fault_pending_wqh.lock); + spin_lock_irq(&ctx->fault_pending_wqh.lock); /* * No need of list_del_init(), the uwq on the stack * will be freed shortly anyway. */ list_del(&uwq.wq.entry); - spin_unlock(&ctx->fault_pending_wqh.lock); + spin_unlock_irq(&ctx->fault_pending_wqh.lock); } /* @@ -583,7 +593,7 @@ static void userfaultfd_event_wait_completion(struct userfaultfd_ctx *ctx, init_waitqueue_entry(&ewq->wq, current); release_new_ctx = NULL; - spin_lock(&ctx->event_wqh.lock); + spin_lock_irq(&ctx->event_wqh.lock); /* * After the __add_wait_queue the uwq is visible to userland * through poll/read(). @@ -613,15 +623,15 @@ static void userfaultfd_event_wait_completion(struct userfaultfd_ctx *ctx, break; } - spin_unlock(&ctx->event_wqh.lock); + spin_unlock_irq(&ctx->event_wqh.lock); wake_up_poll(&ctx->fd_wqh, EPOLLIN); schedule(); - spin_lock(&ctx->event_wqh.lock); + spin_lock_irq(&ctx->event_wqh.lock); } __set_current_state(TASK_RUNNING); - spin_unlock(&ctx->event_wqh.lock); + spin_unlock_irq(&ctx->event_wqh.lock); if (release_new_ctx) { struct vm_area_struct *vma; @@ -919,10 +929,10 @@ wakeup: * the last page faults that may have been already waiting on * the fault_*wqh. */ - spin_lock(&ctx->fault_pending_wqh.lock); + spin_lock_irq(&ctx->fault_pending_wqh.lock); __wake_up_locked_key(&ctx->fault_pending_wqh, TASK_NORMAL, &range); __wake_up(&ctx->fault_wqh, TASK_NORMAL, 1, &range); - spin_unlock(&ctx->fault_pending_wqh.lock); + spin_unlock_irq(&ctx->fault_pending_wqh.lock); /* Flush pending events that may still wait on event_wqh */ wake_up_all(&ctx->event_wqh); @@ -1135,7 +1145,7 @@ static ssize_t userfaultfd_ctx_read(struct userfaultfd_ctx *ctx, int no_wait, if (!ret && msg->event == UFFD_EVENT_FORK) { ret = resolve_userfault_fork(ctx, fork_nctx, msg); - spin_lock(&ctx->event_wqh.lock); + spin_lock_irq(&ctx->event_wqh.lock); if (!list_empty(&fork_event)) { /* * The fork thread didn't abort, so we can @@ -1181,7 +1191,7 @@ static ssize_t userfaultfd_ctx_read(struct userfaultfd_ctx *ctx, int no_wait, if (ret) userfaultfd_ctx_put(fork_nctx); } - spin_unlock(&ctx->event_wqh.lock); + spin_unlock_irq(&ctx->event_wqh.lock); } return ret; @@ -1220,14 +1230,14 @@ static ssize_t userfaultfd_read(struct file *file, char __user *buf, static void __wake_userfault(struct userfaultfd_ctx *ctx, struct userfaultfd_wake_range *range) { - spin_lock(&ctx->fault_pending_wqh.lock); + spin_lock_irq(&ctx->fault_pending_wqh.lock); /* wake all in the range and autoremove */ if (waitqueue_active(&ctx->fault_pending_wqh)) __wake_up_locked_key(&ctx->fault_pending_wqh, TASK_NORMAL, range); if (waitqueue_active(&ctx->fault_wqh)) __wake_up(&ctx->fault_wqh, TASK_NORMAL, 1, range); - spin_unlock(&ctx->fault_pending_wqh.lock); + spin_unlock_irq(&ctx->fault_pending_wqh.lock); } static __always_inline void wake_userfault(struct userfaultfd_ctx *ctx, @@ -1884,7 +1894,7 @@ static void userfaultfd_show_fdinfo(struct seq_file *m, struct file *f) wait_queue_entry_t *wq; unsigned long pending = 0, total = 0; - spin_lock(&ctx->fault_pending_wqh.lock); + spin_lock_irq(&ctx->fault_pending_wqh.lock); list_for_each_entry(wq, &ctx->fault_pending_wqh.head, entry) { pending++; total++; @@ -1892,7 +1902,7 @@ static void userfaultfd_show_fdinfo(struct seq_file *m, struct file *f) list_for_each_entry(wq, &ctx->fault_wqh.head, entry) { total++; } - spin_unlock(&ctx->fault_pending_wqh.lock); + spin_unlock_irq(&ctx->fault_pending_wqh.lock); /* * If more protocols will be added, there will be all shown diff --git a/include/dt-bindings/clock/g12a-clkc.h b/include/dt-bindings/clock/g12a-clkc.h index 82c9e0c020b2..e10470ed7c4f 100644 --- a/include/dt-bindings/clock/g12a-clkc.h +++ b/include/dt-bindings/clock/g12a-clkc.h @@ -130,7 +130,7 @@ #define CLKID_MALI_1_SEL 172 #define CLKID_MALI_1 174 #define CLKID_MALI 175 -#define CLKID_MPLL_5OM 177 +#define CLKID_MPLL_50M 177 #define CLKID_CPU_CLK 187 #define CLKID_PCIE_PLL 201 #define CLKID_VDEC_1 204 diff --git a/include/dt-bindings/clock/sifive-fu540-prci.h b/include/dt-bindings/clock/sifive-fu540-prci.h index 6a0b70a37d78..3b21d0522c91 100644 --- a/include/dt-bindings/clock/sifive-fu540-prci.h +++ b/include/dt-bindings/clock/sifive-fu540-prci.h @@ -1,4 +1,4 @@ -/* SPDX-License-Identifier: GPL-2.0 */ +/* SPDX-License-Identifier: (GPL-2.0 OR MIT) */ /* * Copyright (C) 2018-2019 SiFive, Inc. * Wesley Terpstra diff --git a/include/linux/device.h b/include/linux/device.h index 848fc71c6ba6..4a295e324ac5 100644 --- a/include/linux/device.h +++ b/include/linux/device.h @@ -704,7 +704,8 @@ extern unsigned long devm_get_free_pages(struct device *dev, gfp_t gfp_mask, unsigned int order); extern void devm_free_pages(struct device *dev, unsigned long addr); -void __iomem *devm_ioremap_resource(struct device *dev, struct resource *res); +void __iomem *devm_ioremap_resource(struct device *dev, + const struct resource *res); void __iomem *devm_of_iomap(struct device *dev, struct device_node *node, int index, diff --git a/include/linux/intel-ish-client-if.h b/include/linux/intel-ish-client-if.h index 16255c2ca2f4..0d6b4bc191c5 100644 --- a/include/linux/intel-ish-client-if.h +++ b/include/linux/intel-ish-client-if.h @@ -103,6 +103,7 @@ void ishtp_put_device(struct ishtp_cl_device *cl_dev); void ishtp_get_device(struct ishtp_cl_device *cl_dev); void ishtp_set_drvdata(struct ishtp_cl_device *cl_device, void *data); void *ishtp_get_drvdata(struct ishtp_cl_device *cl_device); +struct ishtp_cl_device *ishtp_dev_to_cl_device(struct device *dev); int ishtp_register_event_cb(struct ishtp_cl_device *device, void (*read_cb)(struct ishtp_cl_device *)); struct ishtp_fw_client *ishtp_fw_cl_get_client(struct ishtp_device *dev, diff --git a/include/linux/kernel.h b/include/linux/kernel.h index 74b1ee9027f5..0c9bc231107f 100644 --- a/include/linux/kernel.h +++ b/include/linux/kernel.h @@ -93,7 +93,8 @@ #define DIV_ROUND_DOWN_ULL(ll, d) \ ({ unsigned long long _tmp = (ll); do_div(_tmp, d); _tmp; }) -#define DIV_ROUND_UP_ULL(ll, d) DIV_ROUND_DOWN_ULL((ll) + (d) - 1, (d)) +#define DIV_ROUND_UP_ULL(ll, d) \ + DIV_ROUND_DOWN_ULL((unsigned long long)(ll) + (d) - 1, (d)) #if BITS_PER_LONG == 32 # define DIV_ROUND_UP_SECTOR_T(ll,d) DIV_ROUND_UP_ULL(ll, d) diff --git a/include/linux/mtd/spi-nor.h b/include/linux/mtd/spi-nor.h index b3d360b0ee3d..9f57cdfcc93d 100644 --- a/include/linux/mtd/spi-nor.h +++ b/include/linux/mtd/spi-nor.h @@ -373,6 +373,8 @@ struct flash_info; * @flash_unlock: [FLASH-SPECIFIC] unlock a region of the SPI NOR * @flash_is_locked: [FLASH-SPECIFIC] check if a region of the SPI NOR is * @quad_enable: [FLASH-SPECIFIC] enables SPI NOR quad mode + * @clear_sr_bp: [FLASH-SPECIFIC] clears the Block Protection Bits from + * the SPI NOR Status Register. * completely locked * @priv: the private data */ @@ -410,6 +412,7 @@ struct spi_nor { int (*flash_unlock)(struct spi_nor *nor, loff_t ofs, uint64_t len); int (*flash_is_locked)(struct spi_nor *nor, loff_t ofs, uint64_t len); int (*quad_enable)(struct spi_nor *nor); + int (*clear_sr_bp)(struct spi_nor *nor); void *priv; }; diff --git a/include/linux/pagemap.h b/include/linux/pagemap.h index 9ec3544baee2..fe0b29bf2df7 100644 --- a/include/linux/pagemap.h +++ b/include/linux/pagemap.h @@ -333,19 +333,6 @@ static inline struct page *grab_cache_page_nowait(struct address_space *mapping, mapping_gfp_mask(mapping)); } -static inline struct page *find_subpage(struct page *page, pgoff_t offset) -{ - unsigned long mask; - - if (PageHuge(page)) - return page; - - VM_BUG_ON_PAGE(PageTail(page), page); - - mask = (1UL << compound_order(page)) - 1; - return page + (offset & mask); -} - struct page *find_get_entry(struct address_space *mapping, pgoff_t offset); struct page *find_lock_entry(struct address_space *mapping, pgoff_t offset); unsigned find_get_entries(struct address_space *mapping, pgoff_t start, diff --git a/include/linux/perf_event.h b/include/linux/perf_event.h index c4c4efb3e301..3255fdb2e400 100644 --- a/include/linux/perf_event.h +++ b/include/linux/perf_event.h @@ -241,6 +241,7 @@ struct perf_event; #define PERF_PMU_CAP_NO_INTERRUPT 0x01 #define PERF_PMU_CAP_NO_NMI 0x02 #define PERF_PMU_CAP_AUX_NO_SG 0x04 +#define PERF_PMU_CAP_EXTENDED_REGS 0x08 #define PERF_PMU_CAP_EXCLUSIVE 0x10 #define PERF_PMU_CAP_ITRACE 0x20 #define PERF_PMU_CAP_HETEROGENEOUS_CPUS 0x40 diff --git a/include/linux/perf_regs.h b/include/linux/perf_regs.h index 476747456bca..2d12e97d5e7b 100644 --- a/include/linux/perf_regs.h +++ b/include/linux/perf_regs.h @@ -11,6 +11,11 @@ struct perf_regs { #ifdef CONFIG_HAVE_PERF_REGS #include + +#ifndef PERF_REG_EXTENDED_MASK +#define PERF_REG_EXTENDED_MASK 0 +#endif + u64 perf_reg_value(struct pt_regs *regs, int idx); int perf_reg_validate(u64 mask); u64 perf_reg_abi(struct task_struct *task); @@ -18,6 +23,9 @@ void perf_get_regs_user(struct perf_regs *regs_user, struct pt_regs *regs, struct pt_regs *regs_user_copy); #else + +#define PERF_REG_EXTENDED_MASK 0 + static inline u64 perf_reg_value(struct pt_regs *regs, int idx) { return 0; diff --git a/include/linux/pfn_t.h b/include/linux/pfn_t.h index 7bb77850c65a..3c202a11a79e 100644 --- a/include/linux/pfn_t.h +++ b/include/linux/pfn_t.h @@ -68,7 +68,7 @@ static inline phys_addr_t pfn_t_to_phys(pfn_t pfn) static inline void *pfn_t_to_virt(pfn_t pfn) { - if (pfn_t_has_page(pfn)) + if (pfn_t_has_page(pfn) && !is_device_private_page(pfn_t_to_page(pfn))) return __va(pfn_t_to_phys(pfn)); return NULL; } diff --git a/include/linux/signal.h b/include/linux/signal.h index 9702016734b1..78c2bb376954 100644 --- a/include/linux/signal.h +++ b/include/linux/signal.h @@ -276,7 +276,7 @@ extern int sigprocmask(int, sigset_t *, sigset_t *); extern int set_user_sigmask(const sigset_t __user *usigmask, sigset_t *set, sigset_t *oldset, size_t sigsetsize); extern void restore_user_sigmask(const void __user *usigmask, - sigset_t *sigsaved); + sigset_t *sigsaved, bool interrupted); extern void set_current_blocked(sigset_t *); extern void __set_current_blocked(const sigset_t *); extern int show_unhandled_signals; diff --git a/include/linux/suspend.h b/include/linux/suspend.h index f231bba041e9..feca10d502cc 100644 --- a/include/linux/suspend.h +++ b/include/linux/suspend.h @@ -209,8 +209,9 @@ extern int suspend_valid_only_mem(suspend_state_t state); extern unsigned int pm_suspend_global_flags; -#define PM_SUSPEND_FLAG_FW_SUSPEND (1 << 0) -#define PM_SUSPEND_FLAG_FW_RESUME (1 << 1) +#define PM_SUSPEND_FLAG_FW_SUSPEND BIT(0) +#define PM_SUSPEND_FLAG_FW_RESUME BIT(1) +#define PM_SUSPEND_FLAG_NO_PLATFORM BIT(2) static inline void pm_suspend_clear_flags(void) { @@ -227,6 +228,11 @@ static inline void pm_set_resume_via_firmware(void) pm_suspend_global_flags |= PM_SUSPEND_FLAG_FW_RESUME; } +static inline void pm_set_suspend_no_platform(void) +{ + pm_suspend_global_flags |= PM_SUSPEND_FLAG_NO_PLATFORM; +} + /** * pm_suspend_via_firmware - Check if platform firmware will suspend the system. * @@ -268,6 +274,22 @@ static inline bool pm_resume_via_firmware(void) return !!(pm_suspend_global_flags & PM_SUSPEND_FLAG_FW_RESUME); } +/** + * pm_suspend_no_platform - Check if platform may change device power states. + * + * To be called during system-wide power management transitions to sleep states + * or during the subsequent system-wide transitions back to the working state. + * + * Return 'true' if the power states of devices remain under full control of the + * kernel throughout the system-wide suspend and resume cycle in progress (that + * is, if a device is put into a certain power state during suspend, it can be + * expected to remain in that state during resume). + */ +static inline bool pm_suspend_no_platform(void) +{ + return !!(pm_suspend_global_flags & PM_SUSPEND_FLAG_NO_PLATFORM); +} + /* Suspend-to-idle state machnine. */ enum s2idle_states { S2IDLE_STATE_NONE, /* Not suspended/suspending. */ diff --git a/include/linux/xarray.h b/include/linux/xarray.h index 0e01e6129145..5921599b6dc4 100644 --- a/include/linux/xarray.h +++ b/include/linux/xarray.h @@ -265,6 +265,7 @@ enum xa_lock_type { #define XA_FLAGS_TRACK_FREE ((__force gfp_t)4U) #define XA_FLAGS_ZERO_BUSY ((__force gfp_t)8U) #define XA_FLAGS_ALLOC_WRAPPED ((__force gfp_t)16U) +#define XA_FLAGS_ACCOUNT ((__force gfp_t)32U) #define XA_FLAGS_MARK(mark) ((__force gfp_t)((1U << __GFP_BITS_SHIFT) << \ (__force unsigned)(mark))) diff --git a/include/net/ip6_route.h b/include/net/ip6_route.h index 4790beaa86e0..ee7405e759ba 100644 --- a/include/net/ip6_route.h +++ b/include/net/ip6_route.h @@ -262,8 +262,8 @@ static inline bool ip6_sk_ignore_df(const struct sock *sk) inet6_sk(sk)->pmtudisc == IPV6_PMTUDISC_OMIT; } -static inline struct in6_addr *rt6_nexthop(struct rt6_info *rt, - struct in6_addr *daddr) +static inline const struct in6_addr *rt6_nexthop(const struct rt6_info *rt, + const struct in6_addr *daddr) { if (rt->rt6i_flags & RTF_GATEWAY) return &rt->rt6i_gateway; diff --git a/include/net/route.h b/include/net/route.h index 065b47754f05..55ff71ffb796 100644 --- a/include/net/route.h +++ b/include/net/route.h @@ -221,6 +221,7 @@ void ip_rt_get_source(u8 *src, struct sk_buff *skb, struct rtable *rt); struct rtable *rt_dst_alloc(struct net_device *dev, unsigned int flags, u16 type, bool nopolicy, bool noxfrm, bool will_cache); +struct rtable *rt_dst_clone(struct net_device *dev, struct rtable *rt); struct in_ifaddr; void fib_add_ifaddr(struct in_ifaddr *); diff --git a/include/net/tls.h b/include/net/tls.h index 4a55ce6a303f..53d96bca220d 100644 --- a/include/net/tls.h +++ b/include/net/tls.h @@ -373,21 +373,6 @@ static inline bool tls_is_partially_sent_record(struct tls_context *ctx) return !!ctx->partially_sent_record; } -static inline int tls_complete_pending_work(struct sock *sk, - struct tls_context *ctx, - int flags, long *timeo) -{ - int rc = 0; - - if (unlikely(sk->sk_write_pending)) - rc = wait_on_pending_writer(sk, timeo); - - if (!rc && tls_is_partially_sent_record(ctx)) - rc = tls_push_partial_record(sk, ctx, flags); - - return rc; -} - static inline bool tls_is_pending_open_record(struct tls_context *tls_ctx) { return tls_ctx->pending_open_record_frags; diff --git a/init/initramfs.c b/init/initramfs.c index 178130fd61c2..c47dad0884f7 100644 --- a/init/initramfs.c +++ b/init/initramfs.c @@ -617,7 +617,7 @@ static inline void clean_rootfs(void) #endif /* CONFIG_BLK_DEV_RAM */ #ifdef CONFIG_BLK_DEV_RAM -static void populate_initrd_image(char *err) +static void __init populate_initrd_image(char *err) { ssize_t written; int fd; @@ -637,7 +637,7 @@ static void populate_initrd_image(char *err) ksys_close(fd); } #else -static void populate_initrd_image(char *err) +static void __init populate_initrd_image(char *err) { printk(KERN_EMERG "Initramfs unpacking failed: %s\n", err); } diff --git a/kernel/cpu.c b/kernel/cpu.c index 53d119e44cee..bfef669cbcde 100644 --- a/kernel/cpu.c +++ b/kernel/cpu.c @@ -1971,6 +1971,9 @@ static ssize_t write_cpuhp_fail(struct device *dev, if (ret) return ret; + if (fail < CPUHP_OFFLINE || fail > CPUHP_ONLINE) + return -EINVAL; + /* * Cannot fail STARTING/DYING callbacks. */ @@ -2346,6 +2349,9 @@ static int __init mitigations_parse_cmdline(char *arg) cpu_mitigations = CPU_MITIGATIONS_AUTO; else if (!strcmp(arg, "auto,nosmt")) cpu_mitigations = CPU_MITIGATIONS_AUTO_NOSMT; + else + pr_crit("Unsupported mitigations=%s, system may still be vulnerable\n", + arg); return 0; } diff --git a/kernel/events/core.c b/kernel/events/core.c index 58c137e71785..f56e6b175467 100644 --- a/kernel/events/core.c +++ b/kernel/events/core.c @@ -5010,6 +5010,9 @@ static int perf_event_period(struct perf_event *event, u64 __user *arg) if (perf_event_check_period(event, value)) return -EINVAL; + if (!event->attr.freq && (value & (1ULL << 63))) + return -EINVAL; + event_function_call(event, __perf_event_period, &value); return 0; @@ -5928,7 +5931,7 @@ static void perf_sample_regs_user(struct perf_regs *regs_user, if (user_mode(regs)) { regs_user->abi = perf_reg_abi(current); regs_user->regs = regs; - } else if (current->mm) { + } else if (!(current->flags & PF_KTHREAD)) { perf_get_regs_user(regs_user, regs, regs_user_copy); } else { regs_user->abi = PERF_SAMPLE_REGS_ABI_NONE; @@ -10038,6 +10041,12 @@ void perf_pmu_unregister(struct pmu *pmu) } EXPORT_SYMBOL_GPL(perf_pmu_unregister); +static inline bool has_extended_regs(struct perf_event *event) +{ + return (event->attr.sample_regs_user & PERF_REG_EXTENDED_MASK) || + (event->attr.sample_regs_intr & PERF_REG_EXTENDED_MASK); +} + static int perf_try_init_event(struct pmu *pmu, struct perf_event *event) { struct perf_event_context *ctx = NULL; @@ -10069,12 +10078,16 @@ static int perf_try_init_event(struct pmu *pmu, struct perf_event *event) perf_event_ctx_unlock(event->group_leader, ctx); if (!ret) { + if (!(pmu->capabilities & PERF_PMU_CAP_EXTENDED_REGS) && + has_extended_regs(event)) + ret = -EOPNOTSUPP; + if (pmu->capabilities & PERF_PMU_CAP_NO_EXCLUDE && - event_has_any_exclude_flag(event)) { - if (event->destroy) - event->destroy(event); + event_has_any_exclude_flag(event)) ret = -EINVAL; - } + + if (ret && event->destroy) + event->destroy(event); } if (ret) diff --git a/kernel/fork.c b/kernel/fork.c index e245f83d958d..256188d8edc7 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -249,7 +249,11 @@ static unsigned long *alloc_thread_stack_node(struct task_struct *tsk, int node) struct page *page = alloc_pages_node(node, THREADINFO_GFP, THREAD_SIZE_ORDER); - return page ? page_address(page) : NULL; + if (likely(page)) { + tsk->stack = page_address(page); + return tsk->stack; + } + return NULL; #endif } @@ -1715,31 +1719,6 @@ const struct file_operations pidfd_fops = { #endif }; -/** - * pidfd_create() - Create a new pid file descriptor. - * - * @pid: struct pid that the pidfd will reference - * - * This creates a new pid file descriptor with the O_CLOEXEC flag set. - * - * Note, that this function can only be called after the fd table has - * been unshared to avoid leaking the pidfd to the new process. - * - * Return: On success, a cloexec pidfd is returned. - * On error, a negative errno number will be returned. - */ -static int pidfd_create(struct pid *pid) -{ - int fd; - - fd = anon_inode_getfd("[pidfd]", &pidfd_fops, get_pid(pid), - O_RDWR | O_CLOEXEC); - if (fd < 0) - put_pid(pid); - - return fd; -} - static void __delayed_free_task(struct rcu_head *rhp) { struct task_struct *tsk = container_of(rhp, struct task_struct, rcu); @@ -1777,6 +1756,7 @@ static __latent_entropy struct task_struct *copy_process( int pidfd = -1, retval; struct task_struct *p; struct multiprocess_signals delayed; + struct file *pidfile = NULL; /* * Don't allow sharing the root directory with processes in a different @@ -1825,8 +1805,6 @@ static __latent_entropy struct task_struct *copy_process( } if (clone_flags & CLONE_PIDFD) { - int reserved; - /* * - CLONE_PARENT_SETTID is useless for pidfds and also * parent_tidptr is used to return pidfds. @@ -1837,16 +1815,6 @@ static __latent_entropy struct task_struct *copy_process( if (clone_flags & (CLONE_DETACHED | CLONE_PARENT_SETTID | CLONE_THREAD)) return ERR_PTR(-EINVAL); - - /* - * Verify that parent_tidptr is sane so we can potentially - * reuse it later. - */ - if (get_user(reserved, parent_tidptr)) - return ERR_PTR(-EFAULT); - - if (reserved != 0) - return ERR_PTR(-EINVAL); } /* @@ -2063,11 +2031,21 @@ static __latent_entropy struct task_struct *copy_process( * if the fd table isn't shared). */ if (clone_flags & CLONE_PIDFD) { - retval = pidfd_create(pid); + retval = get_unused_fd_flags(O_RDWR | O_CLOEXEC); if (retval < 0) goto bad_fork_free_pid; pidfd = retval; + + pidfile = anon_inode_getfile("[pidfd]", &pidfd_fops, pid, + O_RDWR | O_CLOEXEC); + if (IS_ERR(pidfile)) { + put_unused_fd(pidfd); + retval = PTR_ERR(pidfile); + goto bad_fork_free_pid; + } + get_pid(pid); /* held by pidfile now */ + retval = put_user(pidfd, parent_tidptr); if (retval) goto bad_fork_put_pidfd; @@ -2185,6 +2163,9 @@ static __latent_entropy struct task_struct *copy_process( goto bad_fork_cancel_cgroup; } + /* past the last point of failure */ + if (pidfile) + fd_install(pidfd, pidfile); init_task_pid_links(p); if (likely(p->pid)) { @@ -2251,8 +2232,10 @@ bad_fork_cancel_cgroup: bad_fork_cgroup_threadgroup_change_end: cgroup_threadgroup_change_end(current); bad_fork_put_pidfd: - if (clone_flags & CLONE_PIDFD) - ksys_close(pidfd); + if (clone_flags & CLONE_PIDFD) { + fput(pidfile); + put_unused_fd(pidfd); + } bad_fork_free_pid: if (pid != &init_struct_pid) free_pid(pid); diff --git a/kernel/power/suspend.c b/kernel/power/suspend.c index c938b6449bd2..142cc7fc4d5a 100644 --- a/kernel/power/suspend.c +++ b/kernel/power/suspend.c @@ -508,6 +508,9 @@ int suspend_devices_and_enter(suspend_state_t state) pm_suspend_target_state = state; + if (state == PM_SUSPEND_TO_IDLE) + pm_set_suspend_no_platform(); + error = platform_suspend_begin(state); if (error) goto Close; diff --git a/kernel/ptrace.c b/kernel/ptrace.c index 8456b6e2205f..705887f63288 100644 --- a/kernel/ptrace.c +++ b/kernel/ptrace.c @@ -79,9 +79,7 @@ void __ptrace_link(struct task_struct *child, struct task_struct *new_parent, */ static void ptrace_link(struct task_struct *child, struct task_struct *new_parent) { - rcu_read_lock(); - __ptrace_link(child, new_parent, __task_cred(new_parent)); - rcu_read_unlock(); + __ptrace_link(child, new_parent, current_cred()); } /** diff --git a/kernel/signal.c b/kernel/signal.c index d622eac9d169..edf8915ddd54 100644 --- a/kernel/signal.c +++ b/kernel/signal.c @@ -2912,7 +2912,8 @@ EXPORT_SYMBOL(set_compat_user_sigmask); * This is useful for syscalls such as ppoll, pselect, io_pgetevents and * epoll_pwait where a new sigmask is passed in from userland for the syscalls. */ -void restore_user_sigmask(const void __user *usigmask, sigset_t *sigsaved) +void restore_user_sigmask(const void __user *usigmask, sigset_t *sigsaved, + bool interrupted) { if (!usigmask) @@ -2922,7 +2923,7 @@ void restore_user_sigmask(const void __user *usigmask, sigset_t *sigsaved) * Restoring sigmask here can lead to delivering signals that the above * syscalls are intended to block because of the sigmask passed in. */ - if (signal_pending(current)) { + if (interrupted) { current->saved_sigmask = *sigsaved; set_restore_sigmask(); return; diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c index 38277af44f5c..576c41644e77 100644 --- a/kernel/trace/ftrace.c +++ b/kernel/trace/ftrace.c @@ -34,7 +34,6 @@ #include #include #include -#include #include @@ -2611,12 +2610,10 @@ static void ftrace_run_update_code(int command) { int ret; - mutex_lock(&text_mutex); - ret = ftrace_arch_code_modify_prepare(); FTRACE_WARN_ON(ret); if (ret) - goto out_unlock; + return; /* * By default we use stop_machine() to modify the code. @@ -2628,9 +2625,6 @@ static void ftrace_run_update_code(int command) ret = ftrace_arch_code_modify_post_process(); FTRACE_WARN_ON(ret); - -out_unlock: - mutex_unlock(&text_mutex); } static void ftrace_run_modify_code(struct ftrace_ops *ops, int command, @@ -5784,7 +5778,6 @@ void ftrace_module_enable(struct module *mod) struct ftrace_page *pg; mutex_lock(&ftrace_lock); - mutex_lock(&text_mutex); if (ftrace_disabled) goto out_unlock; @@ -5846,7 +5839,6 @@ void ftrace_module_enable(struct module *mod) ftrace_arch_code_modify_post_process(); out_unlock: - mutex_unlock(&text_mutex); mutex_unlock(&ftrace_lock); process_cached_mods(mod->name); diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c index 83e08b78dbee..c3aabb576fe5 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c @@ -6719,11 +6719,13 @@ tracing_snapshot_write(struct file *filp, const char __user *ubuf, size_t cnt, break; } #endif - if (!tr->allocated_snapshot) { + if (tr->allocated_snapshot) + ret = resize_buffer_duplicate_size(&tr->max_buffer, + &tr->trace_buffer, iter->cpu_file); + else ret = tracing_alloc_snapshot_instance(tr); - if (ret < 0) - break; - } + if (ret < 0) + break; local_irq_disable(); /* Now, we're going to swap */ if (iter->cpu_file == RING_BUFFER_ALL_CPUS) @@ -7126,12 +7128,24 @@ static ssize_t tracing_err_log_write(struct file *file, return count; } +static int tracing_err_log_release(struct inode *inode, struct file *file) +{ + struct trace_array *tr = inode->i_private; + + trace_array_put(tr); + + if (file->f_mode & FMODE_READ) + seq_release(inode, file); + + return 0; +} + static const struct file_operations tracing_err_log_fops = { .open = tracing_err_log_open, .write = tracing_err_log_write, .read = seq_read, .llseek = seq_lseek, - .release = tracing_release_generic_tr, + .release = tracing_err_log_release, }; static int tracing_buffers_open(struct inode *inode, struct file *filp) diff --git a/lib/devres.c b/lib/devres.c index 69bed2f38306..6a0e9bd6524a 100644 --- a/lib/devres.c +++ b/lib/devres.c @@ -131,7 +131,8 @@ EXPORT_SYMBOL(devm_iounmap); * if (IS_ERR(base)) * return PTR_ERR(base); */ -void __iomem *devm_ioremap_resource(struct device *dev, struct resource *res) +void __iomem *devm_ioremap_resource(struct device *dev, + const struct resource *res) { resource_size_t size; void __iomem *dest_ptr; diff --git a/lib/idr.c b/lib/idr.c index c34e256d2f01..66a374892482 100644 --- a/lib/idr.c +++ b/lib/idr.c @@ -228,11 +228,21 @@ void *idr_get_next(struct idr *idr, int *nextid) { struct radix_tree_iter iter; void __rcu **slot; + void *entry = NULL; unsigned long base = idr->idr_base; unsigned long id = *nextid; id = (id < base) ? 0 : id - base; - slot = radix_tree_iter_find(&idr->idr_rt, &iter, id); + radix_tree_for_each_slot(slot, &idr->idr_rt, &iter, id) { + entry = rcu_dereference_raw(*slot); + if (!entry) + continue; + if (!xa_is_internal(entry)) + break; + if (slot != &idr->idr_rt.xa_head && !xa_is_retry(entry)) + break; + slot = radix_tree_iter_retry(&iter); + } if (!slot) return NULL; id = iter.index + base; @@ -241,7 +251,7 @@ void *idr_get_next(struct idr *idr, int *nextid) return NULL; *nextid = id; - return rcu_dereference_raw(*slot); + return entry; } EXPORT_SYMBOL(idr_get_next); diff --git a/lib/mpi/mpi-pow.c b/lib/mpi/mpi-pow.c index 82b19e4f1189..2fd7a46d55ec 100644 --- a/lib/mpi/mpi-pow.c +++ b/lib/mpi/mpi-pow.c @@ -24,6 +24,7 @@ int mpi_powm(MPI res, MPI base, MPI exp, MPI mod) { mpi_ptr_t mp_marker = NULL, bp_marker = NULL, ep_marker = NULL; + struct karatsuba_ctx karactx = {}; mpi_ptr_t xp_marker = NULL; mpi_ptr_t tspace = NULL; mpi_ptr_t rp, ep, mp, bp; @@ -150,13 +151,11 @@ int mpi_powm(MPI res, MPI base, MPI exp, MPI mod) int c; mpi_limb_t e; mpi_limb_t carry_limb; - struct karatsuba_ctx karactx; xp = xp_marker = mpi_alloc_limb_space(2 * (msize + 1)); if (!xp) goto enomem; - memset(&karactx, 0, sizeof karactx); negative_result = (ep[0] & 1) && base->sign; i = esize - 1; @@ -281,8 +280,6 @@ int mpi_powm(MPI res, MPI base, MPI exp, MPI mod) if (mod_shift_cnt) mpihelp_rshift(rp, rp, rsize, mod_shift_cnt); MPN_NORMALIZE(rp, rsize); - - mpihelp_release_karatsuba_ctx(&karactx); } if (negative_result && rsize) { @@ -299,6 +296,7 @@ int mpi_powm(MPI res, MPI base, MPI exp, MPI mod) leave: rc = 0; enomem: + mpihelp_release_karatsuba_ctx(&karactx); if (assign_rp) mpi_assign_limb_space(res, rp, size); if (mp_marker) diff --git a/lib/test_xarray.c b/lib/test_xarray.c index 5d4bad8bd96a..9d631a7b6a70 100644 --- a/lib/test_xarray.c +++ b/lib/test_xarray.c @@ -38,6 +38,12 @@ static void *xa_store_index(struct xarray *xa, unsigned long index, gfp_t gfp) return xa_store(xa, index, xa_mk_index(index), gfp); } +static void xa_insert_index(struct xarray *xa, unsigned long index) +{ + XA_BUG_ON(xa, xa_insert(xa, index, xa_mk_index(index), + GFP_KERNEL) != 0); +} + static void xa_alloc_index(struct xarray *xa, unsigned long index, gfp_t gfp) { u32 id; @@ -338,6 +344,37 @@ static noinline void check_xa_shrink(struct xarray *xa) } } +static noinline void check_insert(struct xarray *xa) +{ + unsigned long i; + + for (i = 0; i < 1024; i++) { + xa_insert_index(xa, i); + XA_BUG_ON(xa, xa_load(xa, i - 1) != NULL); + XA_BUG_ON(xa, xa_load(xa, i + 1) != NULL); + xa_erase_index(xa, i); + } + + for (i = 10; i < BITS_PER_LONG; i++) { + xa_insert_index(xa, 1UL << i); + XA_BUG_ON(xa, xa_load(xa, (1UL << i) - 1) != NULL); + XA_BUG_ON(xa, xa_load(xa, (1UL << i) + 1) != NULL); + xa_erase_index(xa, 1UL << i); + + xa_insert_index(xa, (1UL << i) - 1); + XA_BUG_ON(xa, xa_load(xa, (1UL << i) - 2) != NULL); + XA_BUG_ON(xa, xa_load(xa, 1UL << i) != NULL); + xa_erase_index(xa, (1UL << i) - 1); + } + + xa_insert_index(xa, ~0UL); + XA_BUG_ON(xa, xa_load(xa, 0UL) != NULL); + XA_BUG_ON(xa, xa_load(xa, ~1UL) != NULL); + xa_erase_index(xa, ~0UL); + + XA_BUG_ON(xa, !xa_empty(xa)); +} + static noinline void check_cmpxchg(struct xarray *xa) { void *FIVE = xa_mk_value(5); @@ -1527,6 +1564,7 @@ static int xarray_checks(void) check_xa_mark(&array); check_xa_shrink(&array); check_xas_erase(&array); + check_insert(&array); check_cmpxchg(&array); check_reserve(&array); check_reserve(&xa0); diff --git a/lib/xarray.c b/lib/xarray.c index 6be3acbb861f..446b956c9188 100644 --- a/lib/xarray.c +++ b/lib/xarray.c @@ -298,6 +298,8 @@ bool xas_nomem(struct xa_state *xas, gfp_t gfp) xas_destroy(xas); return false; } + if (xas->xa->xa_flags & XA_FLAGS_ACCOUNT) + gfp |= __GFP_ACCOUNT; xas->xa_alloc = kmem_cache_alloc(radix_tree_node_cachep, gfp); if (!xas->xa_alloc) return false; @@ -325,6 +327,8 @@ static bool __xas_nomem(struct xa_state *xas, gfp_t gfp) xas_destroy(xas); return false; } + if (xas->xa->xa_flags & XA_FLAGS_ACCOUNT) + gfp |= __GFP_ACCOUNT; if (gfpflags_allow_blocking(gfp)) { xas_unlock_type(xas, lock_type); xas->xa_alloc = kmem_cache_alloc(radix_tree_node_cachep, gfp); @@ -358,8 +362,12 @@ static void *xas_alloc(struct xa_state *xas, unsigned int shift) if (node) { xas->xa_alloc = NULL; } else { - node = kmem_cache_alloc(radix_tree_node_cachep, - GFP_NOWAIT | __GFP_NOWARN); + gfp_t gfp = GFP_NOWAIT | __GFP_NOWARN; + + if (xas->xa->xa_flags & XA_FLAGS_ACCOUNT) + gfp |= __GFP_ACCOUNT; + + node = kmem_cache_alloc(radix_tree_node_cachep, gfp); if (!node) { xas_set_err(xas, -ENOMEM); return NULL; diff --git a/mm/filemap.c b/mm/filemap.c index df2006ba0cfa..6dd9a2274c80 100644 --- a/mm/filemap.c +++ b/mm/filemap.c @@ -281,11 +281,11 @@ EXPORT_SYMBOL(delete_from_page_cache); * @pvec: pagevec with pages to delete * * The function walks over mapping->i_pages and removes pages passed in @pvec - * from the mapping. The function expects @pvec to be sorted by page index - * and is optimised for it to be dense. + * from the mapping. The function expects @pvec to be sorted by page index. * It tolerates holes in @pvec (mapping entries at those indices are not * modified). The function expects only THP head pages to be present in the - * @pvec. + * @pvec and takes care to delete all corresponding tail pages from the + * mapping as well. * * The function expects the i_pages lock to be held. */ @@ -294,44 +294,40 @@ static void page_cache_delete_batch(struct address_space *mapping, { XA_STATE(xas, &mapping->i_pages, pvec->pages[0]->index); int total_pages = 0; - int i = 0; + int i = 0, tail_pages = 0; struct page *page; mapping_set_update(&xas, mapping); xas_for_each(&xas, page, ULONG_MAX) { - if (i >= pagevec_count(pvec)) + if (i >= pagevec_count(pvec) && !tail_pages) break; - - /* A swap/dax/shadow entry got inserted? Skip it. */ if (xa_is_value(page)) continue; - /* - * A page got inserted in our range? Skip it. We have our - * pages locked so they are protected from being removed. - * If we see a page whose index is higher than ours, it - * means our page has been removed, which shouldn't be - * possible because we're holding the PageLock. - */ - if (page != pvec->pages[i]) { - VM_BUG_ON_PAGE(page->index > pvec->pages[i]->index, - page); - continue; - } - - WARN_ON_ONCE(!PageLocked(page)); - - if (page->index == xas.xa_index) + if (!tail_pages) { + /* + * Some page got inserted in our range? Skip it. We + * have our pages locked so they are protected from + * being removed. + */ + if (page != pvec->pages[i]) { + VM_BUG_ON_PAGE(page->index > + pvec->pages[i]->index, page); + continue; + } + WARN_ON_ONCE(!PageLocked(page)); + if (PageTransHuge(page) && !PageHuge(page)) + tail_pages = HPAGE_PMD_NR - 1; page->mapping = NULL; - /* Leave page->index set: truncation lookup relies on it */ - - /* - * Move to the next page in the vector if this is a regular - * page or the index is of the last sub-page of this compound - * page. - */ - if (page->index + (1UL << compound_order(page)) - 1 == - xas.xa_index) + /* + * Leave page->index set: truncation lookup relies + * upon it + */ i++; + } else { + VM_BUG_ON_PAGE(page->index + HPAGE_PMD_NR - tail_pages + != pvec->pages[i]->index, page); + tail_pages--; + } xas_store(&xas, NULL); total_pages++; } @@ -1498,7 +1494,7 @@ EXPORT_SYMBOL(page_cache_prev_miss); struct page *find_get_entry(struct address_space *mapping, pgoff_t offset) { XA_STATE(xas, &mapping->i_pages, offset); - struct page *page; + struct page *head, *page; rcu_read_lock(); repeat: @@ -1513,19 +1509,25 @@ repeat: if (!page || xa_is_value(page)) goto out; - if (!page_cache_get_speculative(page)) + head = compound_head(page); + if (!page_cache_get_speculative(head)) goto repeat; + /* The page was split under us? */ + if (compound_head(page) != head) { + put_page(head); + goto repeat; + } + /* - * Has the page moved or been split? + * Has the page moved? * This is part of the lockless pagecache protocol. See * include/linux/pagemap.h for details. */ if (unlikely(page != xas_reload(&xas))) { - put_page(page); + put_page(head); goto repeat; } - page = find_subpage(page, offset); out: rcu_read_unlock(); @@ -1707,6 +1709,7 @@ unsigned find_get_entries(struct address_space *mapping, rcu_read_lock(); xas_for_each(&xas, page, ULONG_MAX) { + struct page *head; if (xas_retry(&xas, page)) continue; /* @@ -1717,13 +1720,17 @@ unsigned find_get_entries(struct address_space *mapping, if (xa_is_value(page)) goto export; - if (!page_cache_get_speculative(page)) + head = compound_head(page); + if (!page_cache_get_speculative(head)) goto retry; - /* Has the page moved or been split? */ + /* The page was split under us? */ + if (compound_head(page) != head) + goto put_page; + + /* Has the page moved? */ if (unlikely(page != xas_reload(&xas))) goto put_page; - page = find_subpage(page, xas.xa_index); export: indices[ret] = xas.xa_index; @@ -1732,7 +1739,7 @@ export: break; continue; put_page: - put_page(page); + put_page(head); retry: xas_reset(&xas); } @@ -1774,27 +1781,33 @@ unsigned find_get_pages_range(struct address_space *mapping, pgoff_t *start, rcu_read_lock(); xas_for_each(&xas, page, end) { + struct page *head; if (xas_retry(&xas, page)) continue; /* Skip over shadow, swap and DAX entries */ if (xa_is_value(page)) continue; - if (!page_cache_get_speculative(page)) + head = compound_head(page); + if (!page_cache_get_speculative(head)) goto retry; - /* Has the page moved or been split? */ + /* The page was split under us? */ + if (compound_head(page) != head) + goto put_page; + + /* Has the page moved? */ if (unlikely(page != xas_reload(&xas))) goto put_page; - pages[ret] = find_subpage(page, xas.xa_index); + pages[ret] = page; if (++ret == nr_pages) { *start = xas.xa_index + 1; goto out; } continue; put_page: - put_page(page); + put_page(head); retry: xas_reset(&xas); } @@ -1839,6 +1852,7 @@ unsigned find_get_pages_contig(struct address_space *mapping, pgoff_t index, rcu_read_lock(); for (page = xas_load(&xas); page; page = xas_next(&xas)) { + struct page *head; if (xas_retry(&xas, page)) continue; /* @@ -1848,19 +1862,24 @@ unsigned find_get_pages_contig(struct address_space *mapping, pgoff_t index, if (xa_is_value(page)) break; - if (!page_cache_get_speculative(page)) + head = compound_head(page); + if (!page_cache_get_speculative(head)) goto retry; - /* Has the page moved or been split? */ + /* The page was split under us? */ + if (compound_head(page) != head) + goto put_page; + + /* Has the page moved? */ if (unlikely(page != xas_reload(&xas))) goto put_page; - pages[ret] = find_subpage(page, xas.xa_index); + pages[ret] = page; if (++ret == nr_pages) break; continue; put_page: - put_page(page); + put_page(head); retry: xas_reset(&xas); } @@ -1896,6 +1915,7 @@ unsigned find_get_pages_range_tag(struct address_space *mapping, pgoff_t *index, rcu_read_lock(); xas_for_each_marked(&xas, page, end, tag) { + struct page *head; if (xas_retry(&xas, page)) continue; /* @@ -1906,21 +1926,26 @@ unsigned find_get_pages_range_tag(struct address_space *mapping, pgoff_t *index, if (xa_is_value(page)) continue; - if (!page_cache_get_speculative(page)) + head = compound_head(page); + if (!page_cache_get_speculative(head)) goto retry; - /* Has the page moved or been split? */ + /* The page was split under us? */ + if (compound_head(page) != head) + goto put_page; + + /* Has the page moved? */ if (unlikely(page != xas_reload(&xas))) goto put_page; - pages[ret] = find_subpage(page, xas.xa_index); + pages[ret] = page; if (++ret == nr_pages) { *index = xas.xa_index + 1; goto out; } continue; put_page: - put_page(page); + put_page(head); retry: xas_reset(&xas); } @@ -2603,7 +2628,7 @@ void filemap_map_pages(struct vm_fault *vmf, pgoff_t last_pgoff = start_pgoff; unsigned long max_idx; XA_STATE(xas, &mapping->i_pages, start_pgoff); - struct page *page; + struct page *head, *page; rcu_read_lock(); xas_for_each(&xas, page, end_pgoff) { @@ -2612,19 +2637,24 @@ void filemap_map_pages(struct vm_fault *vmf, if (xa_is_value(page)) goto next; + head = compound_head(page); + /* * Check for a locked page first, as a speculative * reference may adversely influence page migration. */ - if (PageLocked(page)) + if (PageLocked(head)) goto next; - if (!page_cache_get_speculative(page)) + if (!page_cache_get_speculative(head)) goto next; - /* Has the page moved or been split? */ + /* The page was split under us? */ + if (compound_head(page) != head) + goto skip; + + /* Has the page moved? */ if (unlikely(page != xas_reload(&xas))) goto skip; - page = find_subpage(page, xas.xa_index); if (!PageUptodate(page) || PageReadahead(page) || diff --git a/mm/huge_memory.c b/mm/huge_memory.c index bb8b617e34ed..885642c82aaa 100644 --- a/mm/huge_memory.c +++ b/mm/huge_memory.c @@ -2496,9 +2496,6 @@ static void __split_huge_page(struct page *page, struct list_head *list, if (IS_ENABLED(CONFIG_SHMEM) && PageSwapBacked(head)) shmem_uncharge(head->mapping->host, 1); put_page(head + i); - } else if (!PageAnon(page)) { - __xa_store(&head->mapping->i_pages, head[i].index, - head + i, 0); } } diff --git a/mm/hugetlb.c b/mm/hugetlb.c index ac843d32b019..ede7e7f5d1ab 100644 --- a/mm/hugetlb.c +++ b/mm/hugetlb.c @@ -1510,16 +1510,29 @@ static int free_pool_huge_page(struct hstate *h, nodemask_t *nodes_allowed, /* * Dissolve a given free hugepage into free buddy pages. This function does - * nothing for in-use (including surplus) hugepages. Returns -EBUSY if the - * dissolution fails because a give page is not a free hugepage, or because - * free hugepages are fully reserved. + * nothing for in-use hugepages and non-hugepages. + * This function returns values like below: + * + * -EBUSY: failed to dissolved free hugepages or the hugepage is in-use + * (allocated or reserved.) + * 0: successfully dissolved free hugepages or the page is not a + * hugepage (considered as already dissolved) */ int dissolve_free_huge_page(struct page *page) { int rc = -EBUSY; + /* Not to disrupt normal path by vainly holding hugetlb_lock */ + if (!PageHuge(page)) + return 0; + spin_lock(&hugetlb_lock); - if (PageHuge(page) && !page_count(page)) { + if (!PageHuge(page)) { + rc = 0; + goto out; + } + + if (!page_count(page)) { struct page *head = compound_head(page); struct hstate *h = page_hstate(head); int nid = page_to_nid(head); @@ -1564,11 +1577,9 @@ int dissolve_free_huge_pages(unsigned long start_pfn, unsigned long end_pfn) for (pfn = start_pfn; pfn < end_pfn; pfn += 1 << minimum_order) { page = pfn_to_page(pfn); - if (PageHuge(page) && !page_count(page)) { - rc = dissolve_free_huge_page(page); - if (rc) - break; - } + rc = dissolve_free_huge_page(page); + if (rc) + break; } return rc; diff --git a/mm/khugepaged.c b/mm/khugepaged.c index 0f7419938008..eaaa21b23215 100644 --- a/mm/khugepaged.c +++ b/mm/khugepaged.c @@ -1378,7 +1378,7 @@ static void collapse_shmem(struct mm_struct *mm, result = SCAN_FAIL; goto xa_locked; } - xas_store(&xas, new_page); + xas_store(&xas, new_page + (index % HPAGE_PMD_NR)); nr_none++; continue; } @@ -1454,7 +1454,7 @@ static void collapse_shmem(struct mm_struct *mm, list_add_tail(&page->lru, &pagelist); /* Finally, replace with the new page. */ - xas_store(&xas, new_page); + xas_store(&xas, new_page + (index % HPAGE_PMD_NR)); continue; out_unlock: unlock_page(page); diff --git a/mm/memfd.c b/mm/memfd.c index 2647c898990c..650e65a46b9c 100644 --- a/mm/memfd.c +++ b/mm/memfd.c @@ -39,7 +39,6 @@ static void memfd_tag_pins(struct xa_state *xas) xas_for_each(xas, page, ULONG_MAX) { if (xa_is_value(page)) continue; - page = find_subpage(page, xas->xa_index); if (page_count(page) - page_mapcount(page) > 1) xas_set_mark(xas, MEMFD_TAG_PINNED); @@ -89,7 +88,6 @@ static int memfd_wait_for_pins(struct address_space *mapping) bool clear = true; if (xa_is_value(page)) continue; - page = find_subpage(page, xas.xa_index); if (page_count(page) - page_mapcount(page) != 1) { /* * On the last scan, we clean up all those tags diff --git a/mm/memory-failure.c b/mm/memory-failure.c index 8da0334b9ca0..d9cc6606f409 100644 --- a/mm/memory-failure.c +++ b/mm/memory-failure.c @@ -1730,6 +1730,8 @@ static int soft_offline_huge_page(struct page *page, int flags) if (!ret) { if (set_hwpoison_free_buddy_page(page)) num_poisoned_pages_inc(); + else + ret = -EBUSY; } } return ret; @@ -1854,11 +1856,8 @@ static int soft_offline_in_use_page(struct page *page, int flags) static int soft_offline_free_page(struct page *page) { - int rc = 0; - struct page *head = compound_head(page); + int rc = dissolve_free_huge_page(page); - if (PageHuge(head)) - rc = dissolve_free_huge_page(page); if (!rc) { if (set_hwpoison_free_buddy_page(page)) num_poisoned_pages_inc(); diff --git a/mm/mempolicy.c b/mm/mempolicy.c index 4d0edf46dfb5..8b5b9b2ab8fc 100644 --- a/mm/mempolicy.c +++ b/mm/mempolicy.c @@ -306,7 +306,7 @@ static void mpol_rebind_nodemask(struct mempolicy *pol, const nodemask_t *nodes) else { nodes_remap(tmp, pol->v.nodes,pol->w.cpuset_mems_allowed, *nodes); - pol->w.cpuset_mems_allowed = tmp; + pol->w.cpuset_mems_allowed = *nodes; } if (nodes_empty(tmp)) diff --git a/mm/migrate.c b/mm/migrate.c index f2ecc2855a12..e9594bc0d406 100644 --- a/mm/migrate.c +++ b/mm/migrate.c @@ -463,7 +463,7 @@ int migrate_page_move_mapping(struct address_space *mapping, for (i = 1; i < HPAGE_PMD_NR; i++) { xas_next(&xas); - xas_store(&xas, newpage); + xas_store(&xas, newpage + i); } } diff --git a/mm/oom_kill.c b/mm/oom_kill.c index 5a58778c91d4..f719b64741d6 100644 --- a/mm/oom_kill.c +++ b/mm/oom_kill.c @@ -987,8 +987,7 @@ static void oom_kill_process(struct oom_control *oc, const char *message) /* * Determines whether the kernel must panic because of the panic_on_oom sysctl. */ -static void check_panic_on_oom(struct oom_control *oc, - enum oom_constraint constraint) +static void check_panic_on_oom(struct oom_control *oc) { if (likely(!sysctl_panic_on_oom)) return; @@ -998,7 +997,7 @@ static void check_panic_on_oom(struct oom_control *oc, * does not panic for cpuset, mempolicy, or memcg allocation * failures. */ - if (constraint != CONSTRAINT_NONE) + if (oc->constraint != CONSTRAINT_NONE) return; } /* Do not panic for oom kills triggered by sysrq */ @@ -1035,7 +1034,6 @@ EXPORT_SYMBOL_GPL(unregister_oom_notifier); bool out_of_memory(struct oom_control *oc) { unsigned long freed = 0; - enum oom_constraint constraint = CONSTRAINT_NONE; if (oom_killer_disabled) return false; @@ -1071,10 +1069,10 @@ bool out_of_memory(struct oom_control *oc) * Check if there were limitations on the allocation (only relevant for * NUMA and memcg) that may require different handling. */ - constraint = constrained_alloc(oc); - if (constraint != CONSTRAINT_MEMORY_POLICY) + oc->constraint = constrained_alloc(oc); + if (oc->constraint != CONSTRAINT_MEMORY_POLICY) oc->nodemask = NULL; - check_panic_on_oom(oc, constraint); + check_panic_on_oom(oc); if (!is_memcg_oom(oc) && sysctl_oom_kill_allocating_task && current->mm && !oom_unkillable_task(current, NULL, oc->nodemask) && diff --git a/mm/page_alloc.c b/mm/page_alloc.c index cfe01a19bf1b..18d20dffe84f 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -1838,7 +1838,8 @@ deferred_grow_zone(struct zone *zone, unsigned int order) first_deferred_pfn)) { pgdat->first_deferred_pfn = ULONG_MAX; pgdat_resize_unlock(pgdat, &flags); - return true; + /* Retry only once. */ + return first_deferred_pfn != ULONG_MAX; } /* diff --git a/mm/page_idle.c b/mm/page_idle.c index 0b39ec0c945c..295512465065 100644 --- a/mm/page_idle.c +++ b/mm/page_idle.c @@ -136,7 +136,7 @@ static ssize_t page_idle_bitmap_read(struct file *file, struct kobject *kobj, end_pfn = pfn + count * BITS_PER_BYTE; if (end_pfn > max_pfn) - end_pfn = ALIGN(max_pfn, BITMAP_CHUNK_BITS); + end_pfn = max_pfn; for (; pfn < end_pfn; pfn++) { bit = pfn % BITMAP_CHUNK_BITS; @@ -181,7 +181,7 @@ static ssize_t page_idle_bitmap_write(struct file *file, struct kobject *kobj, end_pfn = pfn + count * BITS_PER_BYTE; if (end_pfn > max_pfn) - end_pfn = ALIGN(max_pfn, BITMAP_CHUNK_BITS); + end_pfn = max_pfn; for (; pfn < end_pfn; pfn++) { bit = pfn % BITMAP_CHUNK_BITS; diff --git a/mm/page_io.c b/mm/page_io.c index 2e8019d0e048..a39aac2f8c8d 100644 --- a/mm/page_io.c +++ b/mm/page_io.c @@ -29,10 +29,9 @@ static struct bio *get_swap_bio(gfp_t gfp_flags, struct page *page, bio_end_io_t end_io) { - int i, nr = hpage_nr_pages(page); struct bio *bio; - bio = bio_alloc(gfp_flags, nr); + bio = bio_alloc(gfp_flags, 1); if (bio) { struct block_device *bdev; @@ -41,9 +40,7 @@ static struct bio *get_swap_bio(gfp_t gfp_flags, bio->bi_iter.bi_sector <<= PAGE_SHIFT - 9; bio->bi_end_io = end_io; - for (i = 0; i < nr; i++) - bio_add_page(bio, page + i, PAGE_SIZE, 0); - VM_BUG_ON(bio->bi_iter.bi_size != PAGE_SIZE * nr); + bio_add_page(bio, page, PAGE_SIZE * hpage_nr_pages(page), 0); } return bio; } @@ -140,8 +137,10 @@ out: unlock_page(page); WRITE_ONCE(bio->bi_private, NULL); bio_put(bio); - blk_wake_io_task(waiter); - put_task_struct(waiter); + if (waiter) { + blk_wake_io_task(waiter); + put_task_struct(waiter); + } } int generic_swapfile_activate(struct swap_info_struct *sis, @@ -398,11 +397,12 @@ int swap_readpage(struct page *page, bool synchronous) * Keep this task valid during swap readpage because the oom killer may * attempt to access it in the page fault retry time check. */ - get_task_struct(current); - bio->bi_private = current; bio_set_op_attrs(bio, REQ_OP_READ, 0); - if (synchronous) + if (synchronous) { bio->bi_opf |= REQ_HIPRI; + get_task_struct(current); + bio->bi_private = current; + } count_vm_event(PSWPIN); bio_get(bio); qc = submit_bio(bio); diff --git a/mm/shmem.c b/mm/shmem.c index 1bb3b8dc8bb2..f4dce9c8670d 100644 --- a/mm/shmem.c +++ b/mm/shmem.c @@ -614,7 +614,7 @@ static int shmem_add_to_page_cache(struct page *page, if (xas_error(&xas)) goto unlock; next: - xas_store(&xas, page); + xas_store(&xas, page + i); if (++i < nr) { xas_next(&xas); goto next; diff --git a/mm/swap_state.c b/mm/swap_state.c index eb714165afd2..85245fdec8d9 100644 --- a/mm/swap_state.c +++ b/mm/swap_state.c @@ -132,7 +132,7 @@ int add_to_swap_cache(struct page *page, swp_entry_t entry, gfp_t gfp) for (i = 0; i < nr; i++) { VM_BUG_ON_PAGE(xas.xa_index != idx + i, page); set_page_private(page + i, entry.val + i); - xas_store(&xas, page); + xas_store(&xas, page + i); xas_next(&xas); } address_space->nrpages += nr; @@ -167,7 +167,7 @@ void __delete_from_swap_cache(struct page *page, swp_entry_t entry) for (i = 0; i < nr; i++) { void *entry = xas_store(&xas, NULL); - VM_BUG_ON_PAGE(entry != page, entry); + VM_BUG_ON_PAGE(entry != page + i, entry); set_page_private(page + i, 0); xas_next(&xas); } diff --git a/mm/vmalloc.c b/mm/vmalloc.c index 4c9e150e5ad3..0f76cca32a1c 100644 --- a/mm/vmalloc.c +++ b/mm/vmalloc.c @@ -913,7 +913,7 @@ adjust_va_to_fit_type(struct vmap_area *va, unsigned long nva_start_addr, unsigned long size, enum fit_type type) { - struct vmap_area *lva; + struct vmap_area *lva = NULL; if (type == FL_FIT_TYPE) { /* @@ -972,7 +972,7 @@ adjust_va_to_fit_type(struct vmap_area *va, if (type != FL_FIT_TYPE) { augment_tree_propagate_from(va); - if (type == NE_FIT_TYPE) + if (lva) /* type == NE_FIT_TYPE */ insert_vmap_area_augment(lva, &va->rb_node, &free_vmap_area_root, &free_vmap_area_list); } diff --git a/mm/vmscan.c b/mm/vmscan.c index 7889f583ced9..910e02c793ff 100644 --- a/mm/vmscan.c +++ b/mm/vmscan.c @@ -3644,19 +3644,18 @@ out: } /* - * pgdat->kswapd_classzone_idx is the highest zone index that a recent - * allocation request woke kswapd for. When kswapd has not woken recently, - * the value is MAX_NR_ZONES which is not a valid index. This compares a - * given classzone and returns it or the highest classzone index kswapd - * was recently woke for. + * The pgdat->kswapd_classzone_idx is used to pass the highest zone index to be + * reclaimed by kswapd from the waker. If the value is MAX_NR_ZONES which is not + * a valid index then either kswapd runs for first time or kswapd couldn't sleep + * after previous reclaim attempt (node is still unbalanced). In that case + * return the zone index of the previous kswapd reclaim cycle. */ static enum zone_type kswapd_classzone_idx(pg_data_t *pgdat, - enum zone_type classzone_idx) + enum zone_type prev_classzone_idx) { if (pgdat->kswapd_classzone_idx == MAX_NR_ZONES) - return classzone_idx; - - return max(pgdat->kswapd_classzone_idx, classzone_idx); + return prev_classzone_idx; + return pgdat->kswapd_classzone_idx; } static void kswapd_try_to_sleep(pg_data_t *pgdat, int alloc_order, int reclaim_order, @@ -3797,7 +3796,7 @@ kswapd_try_sleep: /* Read the new order and classzone_idx */ alloc_order = reclaim_order = pgdat->kswapd_order; - classzone_idx = kswapd_classzone_idx(pgdat, 0); + classzone_idx = kswapd_classzone_idx(pgdat, classzone_idx); pgdat->kswapd_order = 0; pgdat->kswapd_classzone_idx = MAX_NR_ZONES; @@ -3851,8 +3850,12 @@ void wakeup_kswapd(struct zone *zone, gfp_t gfp_flags, int order, if (!cpuset_zone_allowed(zone, gfp_flags)) return; pgdat = zone->zone_pgdat; - pgdat->kswapd_classzone_idx = kswapd_classzone_idx(pgdat, - classzone_idx); + + if (pgdat->kswapd_classzone_idx == MAX_NR_ZONES) + pgdat->kswapd_classzone_idx = classzone_idx; + else + pgdat->kswapd_classzone_idx = max(pgdat->kswapd_classzone_idx, + classzone_idx); pgdat->kswapd_order = max(pgdat->kswapd_order, order); if (!waitqueue_active(&pgdat->kswapd_wait)) return; diff --git a/net/bluetooth/6lowpan.c b/net/bluetooth/6lowpan.c index 19d27bee285e..1555b0c6f7ec 100644 --- a/net/bluetooth/6lowpan.c +++ b/net/bluetooth/6lowpan.c @@ -160,10 +160,10 @@ static inline struct lowpan_peer *peer_lookup_dst(struct lowpan_btle_dev *dev, struct in6_addr *daddr, struct sk_buff *skb) { - struct lowpan_peer *peer; - struct in6_addr *nexthop; struct rt6_info *rt = (struct rt6_info *)skb_dst(skb); int count = atomic_read(&dev->peer_count); + const struct in6_addr *nexthop; + struct lowpan_peer *peer; BT_DBG("peers %d addr %pI6c rt %p", count, daddr, rt); diff --git a/net/bluetooth/l2cap_core.c b/net/bluetooth/l2cap_core.c index 9f77432dbe38..5406d7cd46ad 100644 --- a/net/bluetooth/l2cap_core.c +++ b/net/bluetooth/l2cap_core.c @@ -1353,7 +1353,7 @@ static bool l2cap_check_enc_key_size(struct hci_conn *hcon) * actually encrypted before enforcing a key size. */ return (!test_bit(HCI_CONN_ENCRYPT, &hcon->flags) || - hcon->enc_key_size > HCI_MIN_ENC_KEY_SIZE); + hcon->enc_key_size >= HCI_MIN_ENC_KEY_SIZE); } static void l2cap_do_start(struct l2cap_chan *chan) diff --git a/net/ipv4/ip_output.c b/net/ipv4/ip_output.c index 16f9159234a2..8c2ec35b6512 100644 --- a/net/ipv4/ip_output.c +++ b/net/ipv4/ip_output.c @@ -318,6 +318,7 @@ static int ip_finish_output(struct net *net, struct sock *sk, struct sk_buff *sk static int ip_mc_finish_output(struct net *net, struct sock *sk, struct sk_buff *skb) { + struct rtable *new_rt; int ret; ret = BPF_CGROUP_RUN_PROG_INET_EGRESS(sk, skb); @@ -326,6 +327,17 @@ static int ip_mc_finish_output(struct net *net, struct sock *sk, return ret; } + /* Reset rt_iif so that inet_iif() will return skb->skb_iif. Setting + * this to non-zero causes ipi_ifindex in in_pktinfo to be overwritten, + * see ipv4_pktinfo_prepare(). + */ + new_rt = rt_dst_clone(net->loopback_dev, skb_rtable(skb)); + if (new_rt) { + new_rt->rt_iif = 0; + skb_dst_drop(skb); + skb_dst_set(skb, &new_rt->dst); + } + return dev_loopback_xmit(net, sk, skb); } diff --git a/net/ipv4/raw.c b/net/ipv4/raw.c index 0b8e06ca75d6..40a6abbc9cf6 100644 --- a/net/ipv4/raw.c +++ b/net/ipv4/raw.c @@ -197,7 +197,7 @@ static int raw_v4_input(struct sk_buff *skb, const struct iphdr *iph, int hash) } sk = __raw_v4_lookup(net, sk_next(sk), iph->protocol, iph->saddr, iph->daddr, - skb->dev->ifindex, sdif); + dif, sdif); } out: read_unlock(&raw_v4_hashinfo.lock); diff --git a/net/ipv4/route.c b/net/ipv4/route.c index 6cb7cff22db9..8ea0735a6754 100644 --- a/net/ipv4/route.c +++ b/net/ipv4/route.c @@ -1647,6 +1647,39 @@ struct rtable *rt_dst_alloc(struct net_device *dev, } EXPORT_SYMBOL(rt_dst_alloc); +struct rtable *rt_dst_clone(struct net_device *dev, struct rtable *rt) +{ + struct rtable *new_rt; + + new_rt = dst_alloc(&ipv4_dst_ops, dev, 1, DST_OBSOLETE_FORCE_CHK, + rt->dst.flags); + + if (new_rt) { + new_rt->rt_genid = rt_genid_ipv4(dev_net(dev)); + new_rt->rt_flags = rt->rt_flags; + new_rt->rt_type = rt->rt_type; + new_rt->rt_is_input = rt->rt_is_input; + new_rt->rt_iif = rt->rt_iif; + new_rt->rt_pmtu = rt->rt_pmtu; + new_rt->rt_mtu_locked = rt->rt_mtu_locked; + new_rt->rt_gw_family = rt->rt_gw_family; + if (rt->rt_gw_family == AF_INET) + new_rt->rt_gw4 = rt->rt_gw4; + else if (rt->rt_gw_family == AF_INET6) + new_rt->rt_gw6 = rt->rt_gw6; + INIT_LIST_HEAD(&new_rt->rt_uncached); + + new_rt->dst.flags |= DST_HOST; + new_rt->dst.input = rt->dst.input; + new_rt->dst.output = rt->dst.output; + new_rt->dst.error = rt->dst.error; + new_rt->dst.lastuse = jiffies; + new_rt->dst.lwtstate = lwtstate_get(rt->dst.lwtstate); + } + return new_rt; +} +EXPORT_SYMBOL(rt_dst_clone); + /* called in rcu_read_lock() section */ int ip_mc_validate_source(struct sk_buff *skb, __be32 daddr, __be32 saddr, u8 tos, struct net_device *dev, diff --git a/net/ipv6/ip6_output.c b/net/ipv6/ip6_output.c index 834475717110..21efcd02f337 100644 --- a/net/ipv6/ip6_output.c +++ b/net/ipv6/ip6_output.c @@ -59,8 +59,8 @@ static int ip6_finish_output2(struct net *net, struct sock *sk, struct sk_buff * { struct dst_entry *dst = skb_dst(skb); struct net_device *dev = dst->dev; + const struct in6_addr *nexthop; struct neighbour *neigh; - struct in6_addr *nexthop; int ret; if (ipv6_addr_is_multicast(&ipv6_hdr(skb)->daddr)) { diff --git a/net/ipv6/route.c b/net/ipv6/route.c index 0782b7dd8c5e..a30c3f764fea 100644 --- a/net/ipv6/route.c +++ b/net/ipv6/route.c @@ -218,7 +218,8 @@ static struct neighbour *ip6_dst_neigh_lookup(const struct dst_entry *dst, { const struct rt6_info *rt = container_of(dst, struct rt6_info, dst); - return ip6_neigh_lookup(&rt->rt6i_gateway, dst->dev, skb, daddr); + return ip6_neigh_lookup(rt6_nexthop(rt, &in6addr_any), + dst->dev, skb, daddr); } static void ip6_confirm_neigh(const struct dst_entry *dst, const void *daddr) @@ -5258,7 +5259,7 @@ static struct ctl_table ipv6_route_table_template[] = { .data = &init_net.ipv6.sysctl.skip_notify_on_dev_down, .maxlen = sizeof(int), .mode = 0644, - .proc_handler = proc_dointvec, + .proc_handler = proc_dointvec_minmax, .extra1 = &zero, .extra2 = &one, }, diff --git a/net/netfilter/nf_flow_table_ip.c b/net/netfilter/nf_flow_table_ip.c index 241317473114..cdfc33517e85 100644 --- a/net/netfilter/nf_flow_table_ip.c +++ b/net/netfilter/nf_flow_table_ip.c @@ -439,9 +439,9 @@ nf_flow_offload_ipv6_hook(void *priv, struct sk_buff *skb, struct nf_flowtable *flow_table = priv; struct flow_offload_tuple tuple = {}; enum flow_offload_tuple_dir dir; + const struct in6_addr *nexthop; struct flow_offload *flow; struct net_device *outdev; - struct in6_addr *nexthop; struct ipv6hdr *ip6h; struct rt6_info *rt; diff --git a/net/packet/af_packet.c b/net/packet/af_packet.c index a29d66da7394..5f78df080573 100644 --- a/net/packet/af_packet.c +++ b/net/packet/af_packet.c @@ -2401,6 +2401,9 @@ static void tpacket_destruct_skb(struct sk_buff *skb) ts = __packet_set_timestamp(po, ph, skb); __packet_set_status(po, ph, TP_STATUS_AVAILABLE | ts); + + if (!packet_read_pending(&po->tx_ring)) + complete(&po->skb_completion); } sock_wfree(skb); @@ -2585,7 +2588,7 @@ static int tpacket_parse_header(struct packet_sock *po, void *frame, static int tpacket_snd(struct packet_sock *po, struct msghdr *msg) { - struct sk_buff *skb; + struct sk_buff *skb = NULL; struct net_device *dev; struct virtio_net_hdr *vnet_hdr = NULL; struct sockcm_cookie sockc; @@ -2600,6 +2603,7 @@ static int tpacket_snd(struct packet_sock *po, struct msghdr *msg) int len_sum = 0; int status = TP_STATUS_AVAILABLE; int hlen, tlen, copylen = 0; + long timeo = 0; mutex_lock(&po->pg_vec_lock); @@ -2646,12 +2650,21 @@ static int tpacket_snd(struct packet_sock *po, struct msghdr *msg) if ((size_max > dev->mtu + reserve + VLAN_HLEN) && !po->has_vnet_hdr) size_max = dev->mtu + reserve + VLAN_HLEN; + reinit_completion(&po->skb_completion); + do { ph = packet_current_frame(po, &po->tx_ring, TP_STATUS_SEND_REQUEST); if (unlikely(ph == NULL)) { - if (need_wait && need_resched()) - schedule(); + if (need_wait && skb) { + timeo = sock_sndtimeo(&po->sk, msg->msg_flags & MSG_DONTWAIT); + timeo = wait_for_completion_interruptible_timeout(&po->skb_completion, timeo); + if (timeo <= 0) { + err = !timeo ? -ETIMEDOUT : -ERESTARTSYS; + goto out_put; + } + } + /* check for additional frames */ continue; } @@ -3207,6 +3220,7 @@ static int packet_create(struct net *net, struct socket *sock, int protocol, sock_init_data(sock, sk); po = pkt_sk(sk); + init_completion(&po->skb_completion); sk->sk_family = PF_PACKET; po->num = proto; po->xmit = dev_queue_xmit; @@ -4314,7 +4328,7 @@ static int packet_set_ring(struct sock *sk, union tpacket_req_u *req_u, req3->tp_sizeof_priv || req3->tp_feature_req_word) { err = -EINVAL; - goto out; + goto out_free_pg_vec; } } break; @@ -4378,6 +4392,7 @@ static int packet_set_ring(struct sock *sk, union tpacket_req_u *req_u, prb_shutdown_retire_blk_timer(po, rb_queue); } +out_free_pg_vec: if (pg_vec) free_pg_vec(pg_vec, order, req->tp_block_nr); out: diff --git a/net/packet/internal.h b/net/packet/internal.h index 3bb7c5fb3bff..c70a2794456f 100644 --- a/net/packet/internal.h +++ b/net/packet/internal.h @@ -128,6 +128,7 @@ struct packet_sock { unsigned int tp_hdrlen; unsigned int tp_reserve; unsigned int tp_tstamp; + struct completion skb_completion; struct net_device __rcu *cached_dev; int (*xmit)(struct sk_buff *skb); struct packet_type prot_hook ____cacheline_aligned_in_smp; diff --git a/net/sched/sch_cbs.c b/net/sched/sch_cbs.c index e16a3d37d2bc..732e109c3055 100644 --- a/net/sched/sch_cbs.c +++ b/net/sched/sch_cbs.c @@ -549,12 +549,17 @@ static struct notifier_block cbs_device_notifier = { static int __init cbs_module_init(void) { - int err = register_netdevice_notifier(&cbs_device_notifier); + int err; + err = register_netdevice_notifier(&cbs_device_notifier); if (err) return err; - return register_qdisc(&cbs_qdisc_ops); + err = register_qdisc(&cbs_qdisc_ops); + if (err) + unregister_netdevice_notifier(&cbs_device_notifier); + + return err; } static void __exit cbs_module_exit(void) diff --git a/net/sctp/endpointola.c b/net/sctp/endpointola.c index e358437ba29b..69cebb2c998b 100644 --- a/net/sctp/endpointola.c +++ b/net/sctp/endpointola.c @@ -118,10 +118,6 @@ static struct sctp_endpoint *sctp_endpoint_init(struct sctp_endpoint *ep, /* Initialize the bind addr area */ sctp_bind_addr_init(&ep->base.bind_addr, 0); - /* Remember who we are attached to. */ - ep->base.sk = sk; - sock_hold(ep->base.sk); - /* Create the lists of associations. */ INIT_LIST_HEAD(&ep->asocs); @@ -154,6 +150,10 @@ static struct sctp_endpoint *sctp_endpoint_init(struct sctp_endpoint *ep, ep->prsctp_enable = net->sctp.prsctp_enable; ep->reconf_enable = net->sctp.reconf_enable; + /* Remember who we are attached to. */ + ep->base.sk = sk; + sock_hold(ep->base.sk); + return ep; nomem_shkey: diff --git a/net/smc/af_smc.c b/net/smc/af_smc.c index 0c874e996f85..7621ec2f539c 100644 --- a/net/smc/af_smc.c +++ b/net/smc/af_smc.c @@ -2029,7 +2029,7 @@ static int __init smc_init(void) rc = smc_pnet_init(); if (rc) - return rc; + goto out_pernet_subsys; rc = smc_llc_init(); if (rc) { @@ -2080,6 +2080,9 @@ out_proto: proto_unregister(&smc_proto); out_pnet: smc_pnet_exit(); +out_pernet_subsys: + unregister_pernet_subsys(&smc_net_ops); + return rc; } diff --git a/net/smc/smc_core.c b/net/smc/smc_core.c index 2d2850adc2a3..4ca50ddf8d16 100644 --- a/net/smc/smc_core.c +++ b/net/smc/smc_core.c @@ -652,7 +652,10 @@ create: rc = smc_lgr_create(smc, ini); if (rc) goto out; + lgr = conn->lgr; + write_lock_bh(&lgr->conns_lock); smc_lgr_register_conn(conn); /* add smc conn to lgr */ + write_unlock_bh(&lgr->conns_lock); } conn->local_tx_ctrl.common.type = SMC_CDC_MSG_TYPE; conn->local_tx_ctrl.len = SMC_WR_TX_SIZE; diff --git a/net/sunrpc/xprtrdma/svc_rdma_transport.c b/net/sunrpc/xprtrdma/svc_rdma_transport.c index 027a3b07d329..0004535c0188 100644 --- a/net/sunrpc/xprtrdma/svc_rdma_transport.c +++ b/net/sunrpc/xprtrdma/svc_rdma_transport.c @@ -211,9 +211,14 @@ static void handle_connect_req(struct rdma_cm_id *new_cma_id, /* Save client advertised inbound read limit for use later in accept. */ newxprt->sc_ord = param->initiator_depth; - /* Set the local and remote addresses in the transport */ sa = (struct sockaddr *)&newxprt->sc_cm_id->route.addr.dst_addr; svc_xprt_set_remote(&newxprt->sc_xprt, sa, svc_addr_len(sa)); + /* The remote port is arbitrary and not under the control of the + * client ULP. Set it to a fixed value so that the DRC continues + * to be effective after a reconnect. + */ + rpc_set_port((struct sockaddr *)&newxprt->sc_xprt.xpt_remote, 0); + sa = (struct sockaddr *)&newxprt->sc_cm_id->route.addr.src_addr; svc_xprt_set_local(&newxprt->sc_xprt, sa, svc_addr_len(sa)); diff --git a/net/sunrpc/xprtsock.c b/net/sunrpc/xprtsock.c index c69951ed2ebc..36652352a38c 100644 --- a/net/sunrpc/xprtsock.c +++ b/net/sunrpc/xprtsock.c @@ -950,6 +950,8 @@ static int xs_local_send_request(struct rpc_rqst *req) struct sock_xprt *transport = container_of(xprt, struct sock_xprt, xprt); struct xdr_buf *xdr = &req->rq_snd_buf; + rpc_fraghdr rm = xs_stream_record_marker(xdr); + unsigned int msglen = rm ? req->rq_slen + sizeof(rm) : req->rq_slen; int status; int sent = 0; @@ -964,9 +966,7 @@ static int xs_local_send_request(struct rpc_rqst *req) req->rq_xtime = ktime_get(); status = xs_sendpages(transport->sock, NULL, 0, xdr, - transport->xmit.offset, - xs_stream_record_marker(xdr), - &sent); + transport->xmit.offset, rm, &sent); dprintk("RPC: %s(%u) = %d\n", __func__, xdr->len - transport->xmit.offset, status); @@ -976,7 +976,7 @@ static int xs_local_send_request(struct rpc_rqst *req) if (likely(sent > 0) || status == 0) { transport->xmit.offset += sent; req->rq_bytes_sent = transport->xmit.offset; - if (likely(req->rq_bytes_sent >= req->rq_slen)) { + if (likely(req->rq_bytes_sent >= msglen)) { req->rq_xmit_bytes_sent += transport->xmit.offset; transport->xmit.offset = 0; return 0; @@ -1097,6 +1097,8 @@ static int xs_tcp_send_request(struct rpc_rqst *req) struct rpc_xprt *xprt = req->rq_xprt; struct sock_xprt *transport = container_of(xprt, struct sock_xprt, xprt); struct xdr_buf *xdr = &req->rq_snd_buf; + rpc_fraghdr rm = xs_stream_record_marker(xdr); + unsigned int msglen = rm ? req->rq_slen + sizeof(rm) : req->rq_slen; bool vm_wait = false; int status; int sent; @@ -1122,9 +1124,7 @@ static int xs_tcp_send_request(struct rpc_rqst *req) while (1) { sent = 0; status = xs_sendpages(transport->sock, NULL, 0, xdr, - transport->xmit.offset, - xs_stream_record_marker(xdr), - &sent); + transport->xmit.offset, rm, &sent); dprintk("RPC: xs_tcp_send_request(%u) = %d\n", xdr->len - transport->xmit.offset, status); @@ -1133,7 +1133,7 @@ static int xs_tcp_send_request(struct rpc_rqst *req) * reset the count of bytes sent. */ transport->xmit.offset += sent; req->rq_bytes_sent = transport->xmit.offset; - if (likely(req->rq_bytes_sent >= req->rq_slen)) { + if (likely(req->rq_bytes_sent >= msglen)) { req->rq_xmit_bytes_sent += transport->xmit.offset; transport->xmit.offset = 0; return 0; diff --git a/net/tipc/core.c b/net/tipc/core.c index ed536c05252a..c8370722f0bb 100644 --- a/net/tipc/core.c +++ b/net/tipc/core.c @@ -134,7 +134,7 @@ static int __init tipc_init(void) if (err) goto out_sysctl; - err = register_pernet_subsys(&tipc_net_ops); + err = register_pernet_device(&tipc_net_ops); if (err) goto out_pernet; @@ -142,7 +142,7 @@ static int __init tipc_init(void) if (err) goto out_socket; - err = register_pernet_subsys(&tipc_topsrv_net_ops); + err = register_pernet_device(&tipc_topsrv_net_ops); if (err) goto out_pernet_topsrv; @@ -153,11 +153,11 @@ static int __init tipc_init(void) pr_info("Started in single node mode\n"); return 0; out_bearer: - unregister_pernet_subsys(&tipc_topsrv_net_ops); + unregister_pernet_device(&tipc_topsrv_net_ops); out_pernet_topsrv: tipc_socket_stop(); out_socket: - unregister_pernet_subsys(&tipc_net_ops); + unregister_pernet_device(&tipc_net_ops); out_pernet: tipc_unregister_sysctl(); out_sysctl: @@ -172,9 +172,9 @@ out_netlink: static void __exit tipc_exit(void) { tipc_bearer_cleanup(); - unregister_pernet_subsys(&tipc_topsrv_net_ops); + unregister_pernet_device(&tipc_topsrv_net_ops); tipc_socket_stop(); - unregister_pernet_subsys(&tipc_net_ops); + unregister_pernet_device(&tipc_net_ops); tipc_netlink_stop(); tipc_netlink_compat_stop(); tipc_unregister_sysctl(); diff --git a/net/tipc/netlink_compat.c b/net/tipc/netlink_compat.c index c6a04c09d075..cf155061c472 100644 --- a/net/tipc/netlink_compat.c +++ b/net/tipc/netlink_compat.c @@ -445,7 +445,11 @@ static int tipc_nl_compat_bearer_disable(struct tipc_nl_compat_cmd_doit *cmd, if (!bearer) return -EMSGSIZE; - len = min_t(int, TLV_GET_DATA_LEN(msg->req), TIPC_MAX_BEARER_NAME); + len = TLV_GET_DATA_LEN(msg->req); + if (len <= 0) + return -EINVAL; + + len = min_t(int, len, TIPC_MAX_BEARER_NAME); if (!string_is_valid(name, len)) return -EINVAL; @@ -539,7 +543,11 @@ static int tipc_nl_compat_link_stat_dump(struct tipc_nl_compat_msg *msg, name = (char *)TLV_DATA(msg->req); - len = min_t(int, TLV_GET_DATA_LEN(msg->req), TIPC_MAX_LINK_NAME); + len = TLV_GET_DATA_LEN(msg->req); + if (len <= 0) + return -EINVAL; + + len = min_t(int, len, TIPC_MAX_BEARER_NAME); if (!string_is_valid(name, len)) return -EINVAL; @@ -817,7 +825,11 @@ static int tipc_nl_compat_link_reset_stats(struct tipc_nl_compat_cmd_doit *cmd, if (!link) return -EMSGSIZE; - len = min_t(int, TLV_GET_DATA_LEN(msg->req), TIPC_MAX_LINK_NAME); + len = TLV_GET_DATA_LEN(msg->req); + if (len <= 0) + return -EINVAL; + + len = min_t(int, len, TIPC_MAX_BEARER_NAME); if (!string_is_valid(name, len)) return -EINVAL; diff --git a/net/tls/tls_main.c b/net/tls/tls_main.c index fc81ae18cc44..e2b69e805d46 100644 --- a/net/tls/tls_main.c +++ b/net/tls/tls_main.c @@ -279,7 +279,8 @@ static void tls_sk_proto_close(struct sock *sk, long timeout) goto skip_tx_cleanup; } - if (!tls_complete_pending_work(sk, ctx, 0, &timeo)) + if (unlikely(sk->sk_write_pending) && + !wait_on_pending_writer(sk, &timeo)) tls_handle_open_record(sk, 0); /* We need these for tls_sw_fallback handling of other packets */ diff --git a/samples/pidfd/pidfd-metadata.c b/samples/pidfd/pidfd-metadata.c index 14b454448429..c459155daf9a 100644 --- a/samples/pidfd/pidfd-metadata.c +++ b/samples/pidfd/pidfd-metadata.c @@ -83,7 +83,7 @@ static int pidfd_metadata_fd(pid_t pid, int pidfd) int main(int argc, char *argv[]) { - int pidfd = 0, ret = EXIT_FAILURE; + int pidfd = -1, ret = EXIT_FAILURE; char buf[4096] = { 0 }; pid_t pid; int procfd, statusfd; @@ -91,7 +91,11 @@ int main(int argc, char *argv[]) pid = pidfd_clone(CLONE_PIDFD, &pidfd); if (pid < 0) - exit(ret); + err(ret, "CLONE_PIDFD"); + if (pidfd == -1) { + warnx("CLONE_PIDFD is not supported by the kernel"); + goto out; + } procfd = pidfd_metadata_fd(pid, pidfd); close(pidfd); diff --git a/sound/core/seq/oss/seq_oss_ioctl.c b/sound/core/seq/oss/seq_oss_ioctl.c index 96ad01fb668c..ccf682689ec9 100644 --- a/sound/core/seq/oss/seq_oss_ioctl.c +++ b/sound/core/seq/oss/seq_oss_ioctl.c @@ -49,7 +49,7 @@ static int snd_seq_oss_oob_user(struct seq_oss_devinfo *dp, void __user *arg) if (copy_from_user(ev, arg, 8)) return -EFAULT; memset(&tmpev, 0, sizeof(tmpev)); - snd_seq_oss_fill_addr(dp, &tmpev, dp->addr.port, dp->addr.client); + snd_seq_oss_fill_addr(dp, &tmpev, dp->addr.client, dp->addr.port); tmpev.time.tick = 0; if (! snd_seq_oss_process_event(dp, (union evrec *)ev, &tmpev)) { snd_seq_oss_dispatch(dp, &tmpev, 0, 0); diff --git a/sound/core/seq/oss/seq_oss_rw.c b/sound/core/seq/oss/seq_oss_rw.c index 79ef430e56e1..537d5f423e20 100644 --- a/sound/core/seq/oss/seq_oss_rw.c +++ b/sound/core/seq/oss/seq_oss_rw.c @@ -161,7 +161,7 @@ insert_queue(struct seq_oss_devinfo *dp, union evrec *rec, struct file *opt) memset(&event, 0, sizeof(event)); /* set dummy -- to be sure */ event.type = SNDRV_SEQ_EVENT_NOTEOFF; - snd_seq_oss_fill_addr(dp, &event, dp->addr.port, dp->addr.client); + snd_seq_oss_fill_addr(dp, &event, dp->addr.client, dp->addr.port); if (snd_seq_oss_process_event(dp, rec, &event)) return 0; /* invalid event - no need to insert queue */ diff --git a/sound/firewire/amdtp-am824.c b/sound/firewire/amdtp-am824.c index cc6eb30f03a2..71168728940a 100644 --- a/sound/firewire/amdtp-am824.c +++ b/sound/firewire/amdtp-am824.c @@ -320,7 +320,7 @@ static void read_midi_messages(struct amdtp_stream *s, u8 *b; for (f = 0; f < frames; f++) { - port = (s->data_block_counter + f) % 8; + port = (8 - s->tx_first_dbc + s->data_block_counter + f) % 8; b = (u8 *)&buffer[p->midi_position]; len = b[0] - 0x80; diff --git a/sound/hda/hdac_device.c b/sound/hda/hdac_device.c index 6907dbefd08c..3842f9d34b7c 100644 --- a/sound/hda/hdac_device.c +++ b/sound/hda/hdac_device.c @@ -400,27 +400,33 @@ static void setup_fg_nodes(struct hdac_device *codec) int snd_hdac_refresh_widgets(struct hdac_device *codec, bool sysfs) { hda_nid_t start_nid; - int nums, err; + int nums, err = 0; + /* + * Serialize against multiple threads trying to update the sysfs + * widgets array. + */ + mutex_lock(&codec->widget_lock); nums = snd_hdac_get_sub_nodes(codec, codec->afg, &start_nid); if (!start_nid || nums <= 0 || nums >= 0xff) { dev_err(&codec->dev, "cannot read sub nodes for FG 0x%02x\n", codec->afg); - return -EINVAL; + err = -EINVAL; + goto unlock; } if (sysfs) { - mutex_lock(&codec->widget_lock); err = hda_widget_sysfs_reinit(codec, start_nid, nums); - mutex_unlock(&codec->widget_lock); if (err < 0) - return err; + goto unlock; } codec->num_nodes = nums; codec->start_nid = start_nid; codec->end_nid = start_nid + nums; - return 0; +unlock: + mutex_unlock(&codec->widget_lock); + return err; } EXPORT_SYMBOL_GPL(snd_hdac_refresh_widgets); diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 5b3c26991f26..6f3a35949cdd 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -2448,9 +2448,10 @@ static const struct snd_pci_quirk alc882_fixup_tbl[] = { SND_PCI_QUIRK(0x1558, 0x9501, "Clevo P950HR", ALC1220_FIXUP_CLEVO_P950), SND_PCI_QUIRK(0x1558, 0x95e1, "Clevo P95xER", ALC1220_FIXUP_CLEVO_P950), SND_PCI_QUIRK(0x1558, 0x95e2, "Clevo P950ER", ALC1220_FIXUP_CLEVO_P950), - SND_PCI_QUIRK(0x1558, 0x96e1, "System76 Oryx Pro (oryp5)", ALC1220_FIXUP_CLEVO_PB51ED_PINS), - SND_PCI_QUIRK(0x1558, 0x97e1, "System76 Oryx Pro (oryp5)", ALC1220_FIXUP_CLEVO_PB51ED_PINS), - SND_PCI_QUIRK(0x1558, 0x65d1, "Tuxedo Book XC1509", ALC1220_FIXUP_CLEVO_PB51ED_PINS), + SND_PCI_QUIRK(0x1558, 0x96e1, "Clevo P960[ER][CDFN]-K", ALC1220_FIXUP_CLEVO_P950), + SND_PCI_QUIRK(0x1558, 0x97e1, "Clevo P970[ER][CDFN]", ALC1220_FIXUP_CLEVO_P950), + SND_PCI_QUIRK(0x1558, 0x65d1, "Clevo PB51[ER][CDF]", ALC1220_FIXUP_CLEVO_PB51ED_PINS), + SND_PCI_QUIRK(0x1558, 0x67d1, "Clevo PB71[ER][CDF]", ALC1220_FIXUP_CLEVO_PB51ED_PINS), SND_PCI_QUIRK_VENDOR(0x1558, "Clevo laptop", ALC882_FIXUP_EAPD), SND_PCI_QUIRK(0x161f, 0x2054, "Medion laptop", ALC883_FIXUP_EAPD), SND_PCI_QUIRK(0x17aa, 0x3a0d, "Lenovo Y530", ALC882_FIXUP_LENOVO_Y530), @@ -7074,6 +7075,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = { SND_PCI_QUIRK(0x17aa, 0x30bb, "ThinkCentre AIO", ALC233_FIXUP_LENOVO_LINE2_MIC_HOTKEY), SND_PCI_QUIRK(0x17aa, 0x30e2, "ThinkCentre AIO", ALC233_FIXUP_LENOVO_LINE2_MIC_HOTKEY), SND_PCI_QUIRK(0x17aa, 0x310c, "ThinkCentre Station", ALC294_FIXUP_LENOVO_MIC_LOCATION), + SND_PCI_QUIRK(0x17aa, 0x3111, "ThinkCentre Station", ALC294_FIXUP_LENOVO_MIC_LOCATION), SND_PCI_QUIRK(0x17aa, 0x312a, "ThinkCentre Station", ALC294_FIXUP_LENOVO_MIC_LOCATION), SND_PCI_QUIRK(0x17aa, 0x312f, "ThinkCentre Station", ALC294_FIXUP_LENOVO_MIC_LOCATION), SND_PCI_QUIRK(0x17aa, 0x313c, "ThinkCentre Station", ALC294_FIXUP_LENOVO_MIC_LOCATION), diff --git a/sound/usb/line6/pcm.c b/sound/usb/line6/pcm.c index 21127e4958b2..2c03e0f6bf72 100644 --- a/sound/usb/line6/pcm.c +++ b/sound/usb/line6/pcm.c @@ -556,6 +556,11 @@ int line6_init_pcm(struct usb_line6 *line6, line6pcm->max_packet_size_out = usb_maxpacket(line6->usbdev, usb_sndisocpipe(line6->usbdev, ep_write), 1); + if (!line6pcm->max_packet_size_in || !line6pcm->max_packet_size_out) { + dev_err(line6pcm->line6->ifcdev, + "cannot get proper max packet size\n"); + return -EINVAL; + } spin_lock_init(&line6pcm->out.lock); spin_lock_init(&line6pcm->in.lock); diff --git a/sound/usb/mixer_quirks.c b/sound/usb/mixer_quirks.c index 1f6011f36bb0..199fa157a411 100644 --- a/sound/usb/mixer_quirks.c +++ b/sound/usb/mixer_quirks.c @@ -741,7 +741,7 @@ static int snd_ni_control_init_val(struct usb_mixer_interface *mixer, return err; } - kctl->private_value |= (value << 24); + kctl->private_value |= ((unsigned int)value << 24); return 0; } @@ -902,7 +902,7 @@ static int snd_ftu_eff_switch_init(struct usb_mixer_interface *mixer, if (err < 0) return err; - kctl->private_value |= value[0] << 24; + kctl->private_value |= (unsigned int)value[0] << 24; return 0; } diff --git a/tools/arch/x86/include/uapi/asm/perf_regs.h b/tools/arch/x86/include/uapi/asm/perf_regs.h index ac67bbea10ca..7c9d2bb3833b 100644 --- a/tools/arch/x86/include/uapi/asm/perf_regs.h +++ b/tools/arch/x86/include/uapi/asm/perf_regs.h @@ -52,4 +52,7 @@ enum perf_event_x86_regs { /* These include both GPRs and XMMX registers */ PERF_REG_X86_XMM_MAX = PERF_REG_X86_XMM15 + 2, }; + +#define PERF_REG_EXTENDED_MASK (~((1ULL << PERF_REG_X86_XMM0) - 1)) + #endif /* _ASM_X86_PERF_REGS_H */ diff --git a/tools/perf/arch/x86/include/perf_regs.h b/tools/perf/arch/x86/include/perf_regs.h index b7cd91a9014f..b7321337d100 100644 --- a/tools/perf/arch/x86/include/perf_regs.h +++ b/tools/perf/arch/x86/include/perf_regs.h @@ -9,7 +9,6 @@ void perf_regs_load(u64 *regs); #define PERF_REGS_MAX PERF_REG_X86_XMM_MAX -#define PERF_XMM_REGS_MASK (~((1ULL << PERF_REG_X86_XMM0) - 1)) #ifndef HAVE_ARCH_X86_64_SUPPORT #define PERF_REGS_MASK ((1ULL << PERF_REG_X86_32_MAX) - 1) #define PERF_SAMPLE_REGS_ABI PERF_SAMPLE_REGS_ABI_32 diff --git a/tools/perf/arch/x86/util/perf_regs.c b/tools/perf/arch/x86/util/perf_regs.c index 7886ca5263e3..3666c0076df9 100644 --- a/tools/perf/arch/x86/util/perf_regs.c +++ b/tools/perf/arch/x86/util/perf_regs.c @@ -277,7 +277,7 @@ uint64_t arch__intr_reg_mask(void) .type = PERF_TYPE_HARDWARE, .config = PERF_COUNT_HW_CPU_CYCLES, .sample_type = PERF_SAMPLE_REGS_INTR, - .sample_regs_intr = PERF_XMM_REGS_MASK, + .sample_regs_intr = PERF_REG_EXTENDED_MASK, .precise_ip = 1, .disabled = 1, .exclude_kernel = 1, @@ -293,7 +293,7 @@ uint64_t arch__intr_reg_mask(void) fd = sys_perf_event_open(&attr, 0, -1, -1, 0); if (fd != -1) { close(fd); - return (PERF_XMM_REGS_MASK | PERF_REGS_MASK); + return (PERF_REG_EXTENDED_MASK | PERF_REGS_MASK); } return PERF_REGS_MASK; diff --git a/tools/testing/radix-tree/idr-test.c b/tools/testing/radix-tree/idr-test.c index 698c08f851b8..8995092d541e 100644 --- a/tools/testing/radix-tree/idr-test.c +++ b/tools/testing/radix-tree/idr-test.c @@ -279,6 +279,51 @@ static void idr_align_test(struct idr *idr) } } +DEFINE_IDR(find_idr); + +static void *idr_throbber(void *arg) +{ + time_t start = time(NULL); + int id = *(int *)arg; + + rcu_register_thread(); + do { + idr_alloc(&find_idr, xa_mk_value(id), id, id + 1, GFP_KERNEL); + idr_remove(&find_idr, id); + } while (time(NULL) < start + 10); + rcu_unregister_thread(); + + return NULL; +} + +void idr_find_test_1(int anchor_id, int throbber_id) +{ + pthread_t throbber; + time_t start = time(NULL); + + pthread_create(&throbber, NULL, idr_throbber, &throbber_id); + + BUG_ON(idr_alloc(&find_idr, xa_mk_value(anchor_id), anchor_id, + anchor_id + 1, GFP_KERNEL) != anchor_id); + + do { + int id = 0; + void *entry = idr_get_next(&find_idr, &id); + BUG_ON(entry != xa_mk_value(id)); + } while (time(NULL) < start + 11); + + pthread_join(throbber, NULL); + + idr_remove(&find_idr, anchor_id); + BUG_ON(!idr_is_empty(&find_idr)); +} + +void idr_find_test(void) +{ + idr_find_test_1(100000, 0); + idr_find_test_1(0, 100000); +} + void idr_checks(void) { unsigned long i; @@ -360,6 +405,7 @@ void idr_checks(void) idr_u32_test(1); idr_u32_test(0); idr_align_test(&idr); + idr_find_test(); } #define module_init(x) diff --git a/tools/testing/selftests/kvm/x86_64/evmcs_test.c b/tools/testing/selftests/kvm/x86_64/evmcs_test.c index b38260e29775..241919ef1eac 100644 --- a/tools/testing/selftests/kvm/x86_64/evmcs_test.c +++ b/tools/testing/selftests/kvm/x86_64/evmcs_test.c @@ -146,6 +146,7 @@ int main(int argc, char *argv[]) kvm_vm_restart(vm, O_RDWR); vm_vcpu_add(vm, VCPU_ID, 0, 0); vcpu_set_cpuid(vm, VCPU_ID, kvm_get_supported_cpuid()); + vcpu_ioctl(vm, VCPU_ID, KVM_ENABLE_CAP, &enable_evmcs_cap); vcpu_load_state(vm, VCPU_ID, state); run = vcpu_state(vm, VCPU_ID); free(state); diff --git a/tools/testing/selftests/powerpc/mm/.gitignore b/tools/testing/selftests/powerpc/mm/.gitignore index ba919308fe30..d503b8764a8e 100644 --- a/tools/testing/selftests/powerpc/mm/.gitignore +++ b/tools/testing/selftests/powerpc/mm/.gitignore @@ -3,4 +3,5 @@ subpage_prot tempfile prot_sao segv_errors -wild_bctr \ No newline at end of file +wild_bctr +large_vm_fork_separation \ No newline at end of file diff --git a/tools/testing/selftests/powerpc/mm/Makefile b/tools/testing/selftests/powerpc/mm/Makefile index 43d68420e363..f1fbc15800c4 100644 --- a/tools/testing/selftests/powerpc/mm/Makefile +++ b/tools/testing/selftests/powerpc/mm/Makefile @@ -2,7 +2,8 @@ noarg: $(MAKE) -C ../ -TEST_GEN_PROGS := hugetlb_vs_thp_test subpage_prot prot_sao segv_errors wild_bctr +TEST_GEN_PROGS := hugetlb_vs_thp_test subpage_prot prot_sao segv_errors wild_bctr \ + large_vm_fork_separation TEST_GEN_FILES := tempfile top_srcdir = ../../../../.. @@ -13,6 +14,7 @@ $(TEST_GEN_PROGS): ../harness.c $(OUTPUT)/prot_sao: ../utils.c $(OUTPUT)/wild_bctr: CFLAGS += -m64 +$(OUTPUT)/large_vm_fork_separation: CFLAGS += -m64 $(OUTPUT)/tempfile: dd if=/dev/zero of=$@ bs=64k count=1 diff --git a/tools/testing/selftests/powerpc/mm/large_vm_fork_separation.c b/tools/testing/selftests/powerpc/mm/large_vm_fork_separation.c new file mode 100644 index 000000000000..2363a7f3ab0d --- /dev/null +++ b/tools/testing/selftests/powerpc/mm/large_vm_fork_separation.c @@ -0,0 +1,87 @@ +// SPDX-License-Identifier: GPL-2.0+ +// +// Copyright 2019, Michael Ellerman, IBM Corp. +// +// Test that allocating memory beyond the memory limit and then forking is +// handled correctly, ie. the child is able to access the mappings beyond the +// memory limit and the child's writes are not visible to the parent. + +#include +#include +#include +#include +#include +#include + +#include "utils.h" + + +#ifndef MAP_FIXED_NOREPLACE +#define MAP_FIXED_NOREPLACE MAP_FIXED // "Should be safe" above 512TB +#endif + + +static int test(void) +{ + int p2c[2], c2p[2], rc, status, c, *p; + unsigned long page_size; + pid_t pid; + + page_size = sysconf(_SC_PAGESIZE); + SKIP_IF(page_size != 65536); + + // Create a mapping at 512TB to allocate an extended_id + p = mmap((void *)(512ul << 40), page_size, PROT_READ | PROT_WRITE, + MAP_PRIVATE | MAP_ANONYMOUS | MAP_FIXED_NOREPLACE, -1, 0); + if (p == MAP_FAILED) { + perror("mmap"); + printf("Error: couldn't mmap(), confirm kernel has 4TB support?\n"); + return 1; + } + + printf("parent writing %p = 1\n", p); + *p = 1; + + FAIL_IF(pipe(p2c) == -1 || pipe(c2p) == -1); + + pid = fork(); + if (pid == 0) { + FAIL_IF(read(p2c[0], &c, 1) != 1); + + pid = getpid(); + printf("child writing %p = %d\n", p, pid); + *p = pid; + + FAIL_IF(write(c2p[1], &c, 1) != 1); + FAIL_IF(read(p2c[0], &c, 1) != 1); + exit(0); + } + + c = 0; + FAIL_IF(write(p2c[1], &c, 1) != 1); + FAIL_IF(read(c2p[0], &c, 1) != 1); + + // Prevent compiler optimisation + barrier(); + + rc = 0; + printf("parent reading %p = %d\n", p, *p); + if (*p != 1) { + printf("Error: BUG! parent saw child's write! *p = %d\n", *p); + rc = 1; + } + + FAIL_IF(write(p2c[1], &c, 1) != 1); + FAIL_IF(waitpid(pid, &status, 0) == -1); + FAIL_IF(!WIFEXITED(status) || WEXITSTATUS(status)); + + if (rc == 0) + printf("success: test completed OK\n"); + + return rc; +} + +int main(void) +{ + return test_harness(test, "large_vm_fork_separation"); +}