diff --git a/build/com.mbeddr/platform/build.gradle b/build/com.mbeddr/platform/build.gradle index 0989c5e106a..5d62fad6e0a 100755 --- a/build/com.mbeddr/platform/build.gradle +++ b/build/com.mbeddr/platform/build.gradle @@ -69,7 +69,11 @@ task install_nativelibs_loader(type: Copy, dependsOn: resolve_extensions) { tasks.getByPath(':build:com.mbeddr:install').dependsOn install_nativelibs_loader */ -task build_platform(type: BuildLanguages, dependsOn: copy_allScripts) { +task build_platform_without_mps_ex(type: BuildLanguages, dependsOn: copy_allScripts) { + script scriptFile('com.mbeddr.platform/build-platform.xml') +} + +task build_platform(type: BuildLanguages, dependsOn: build_platform_without_mps_ex) { script scriptFile('com.mbeddr.platform/build.xml') } @@ -101,6 +105,12 @@ task publish_mbeddrPlatform(type: Zip, dependsOn: test_mbeddr_platform) { include "com.mbeddr.platform/**" } +task publish_mbeddrPlatformSlim(type: Zip, dependsOn: test_mbeddr_platform) { + archiveName 'com.mbeddr.platform-slim.zip' + from artifactsDir + include "com.mbeddr.platform-slim/**" +} + task defaultWrapper(dependsOn: build_platform) { doFirst { println "####################################################################################" @@ -116,7 +126,7 @@ task defaultWrapper(dependsOn: build_platform) { rootProject.defaultTasks 'defaultWrapper' -task publishMbeddrPlatformToLocal(dependsOn: ['publishMbeddrAllScriptsPublicationToMavenLocal', 'publishMbeddrPlatformPublicationToMavenLocal']) +task publishMbeddrPlatformToLocal(dependsOn: ['publishMbeddrAllScriptsPublicationToMavenLocal', 'publishMbeddrPlatformPublicationToMavenLocal', 'publishMbeddrPlatformSlimPublicationToMavenLocal']) publishing { publications { @@ -127,7 +137,7 @@ publishing { artifact publish_mbeddrPlatform pom.withXml { def dependenciesNode = asNode().appendNode('dependencies') - configurations.mps.resolvedConfiguration.firstLevelModuleDependencies.each{ + configurations.mps.resolvedConfiguration.firstLevelModuleDependencies.each { def dependencyNode = dependenciesNode.appendNode('dependency') dependencyNode.appendNode('groupId', it.moduleGroup) dependencyNode.appendNode('artifactId', it.moduleName) @@ -144,6 +154,30 @@ publishing { }*/ } } + mbeddrPlatformSlim(MavenPublication) { + groupId 'com.mbeddr' + artifactId 'platform-slim' + version mbeddrPlatformBuildNumber + artifact publish_mbeddrPlatformSlim + pom.withXml { + def dependenciesNode = asNode().appendNode('dependencies') + configurations.mps.resolvedConfiguration.firstLevelModuleDependencies.each { + def dependencyNode = dependenciesNode.appendNode('dependency') + dependencyNode.appendNode('groupId', it.moduleGroup) + dependencyNode.appendNode('artifactId', it.moduleName) + dependencyNode.appendNode('version', it.moduleVersion) + dependencyNode.appendNode('type', it.moduleArtifacts[0].type) + dependencyNode.appendNode('scope', 'provided') + } + configurations.mpsExtensions.resolvedConfiguration.firstLevelModuleDependencies.each { + def dependencyNode = dependenciesNode.appendNode('dependency') + dependencyNode.appendNode('groupId', it.moduleGroup) + dependencyNode.appendNode('artifactId', it.moduleName) + dependencyNode.appendNode('version', it.moduleVersion) + dependencyNode.appendNode('type', it.moduleArtifacts[0].type) + } + } + } mbeddrAllScripts(MavenPublication) { groupId 'com.mbeddr' artifactId 'allScripts' @@ -168,12 +202,16 @@ publishing { //using the closure to delay evaluate from configuration to execution phase is important because the //mbeddrBuild property is created by a "subproject" block which is executed after this script is configured. //if no closure is used the build script won't compile. -if({project.mbeddrBuild}() == "master") { +if ({ project.mbeddrBuild }() == "master") { /* this is pretty much a workaround so we don't need to change anything in Teamcity. Teamcity calls the publishMbeddrPlatformPublicationToMavenRepository tasks but since we have a new publishing target we would need to change the teamcity config to also include publishMbeddrPlatformPublicationToGitHubPackagesRepository If we change the Teamcity configuration this would break older maintenance and feature branches and we would loose the ablilty to rebuild the exact same source code. There for this workaround is present that adds a dependency between the itemis maven repo and github packages when we are on master or a maintenance branch. */ - tasks.findByName("publishMbeddrPlatformPublicationToMavenRepository").dependsOn("publishMbeddrPlatformPublicationToGitHubPackagesRepository") + tasks.findByName("publishMbeddrPlatformPublicationToMavenRepository") + .dependsOn( + "publishMbeddrPlatformPublicationToGitHubPackagesRepository", + "publishMbeddrPlatformSlimPublicationToGitHubPackagesRepository", + "publishMbeddrPlatformSlimPublicationToMavenRepository") } diff --git a/code/languages/com.mbeddr.build/solutions/com.mbeddr.build/models/com/mbeddr/build/build.mps b/code/languages/com.mbeddr.build/solutions/com.mbeddr.build/models/com/mbeddr/build/build.mps index 20b260f439e..f1aef97e1eb 100755 --- a/code/languages/com.mbeddr.build/solutions/com.mbeddr.build/models/com/mbeddr/build/build.mps +++ b/code/languages/com.mbeddr.build/solutions/com.mbeddr.build/models/com/mbeddr/build/build.mps @@ -1498,16 +1498,6 @@ - - - - - - - - - - @@ -1530,6 +1520,16 @@ + + + + + + + + + + @@ -1755,11 +1755,6 @@ - - - - - @@ -1787,6 +1782,11 @@ + + + + + @@ -1908,11 +1908,6 @@ - - - - - @@ -1935,6 +1930,11 @@ + + + + + @@ -2086,11 +2086,6 @@ - - - - - @@ -2166,6 +2161,11 @@ + + + + + @@ -2728,11 +2728,6 @@ - - - - - @@ -2761,21 +2756,26 @@ - - - - - - - + + + + + + + + + + + + @@ -2887,21 +2887,11 @@ - - - - - - - - - - @@ -2924,6 +2914,16 @@ + + + + + + + + + + @@ -2960,11 +2960,6 @@ - - - - - @@ -3029,11 +3024,6 @@ - - - - - @@ -3054,21 +3044,6 @@ - - - - - - - - - - - - - - - @@ -3130,6 +3105,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -3157,11 +3160,6 @@ - - - - - @@ -3205,6 +3203,11 @@ + + + + + @@ -3308,11 +3311,6 @@ - - - - - @@ -3345,6 +3343,11 @@ + + + + + @@ -3507,11 +3510,6 @@ - - - - - @@ -3549,6 +3547,11 @@ + + + + + @@ -3602,11 +3605,6 @@ - - - - - @@ -3711,26 +3709,11 @@ - - - - - - - - - - - - - - - @@ -3760,16 +3743,6 @@ - - - - - - - - - - @@ -3840,6 +3813,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -3987,28 +3990,12 @@ - - - - - - - - - - - - - - - - @@ -4039,15 +4026,26 @@ - - + + + + + + + + + + + + + - - - - + + + + @@ -4115,11 +4113,6 @@ - - - - - @@ -4140,6 +4133,16 @@ + + + + + + + + + + @@ -4178,11 +4181,6 @@ - - - - - @@ -4242,16 +4240,6 @@ - - - - - - - - - - @@ -4309,6 +4297,21 @@ + + + + + + + + + + + + + + + @@ -4422,11 +4425,6 @@ - - - - - @@ -4457,11 +4455,6 @@ - - - - - @@ -4472,11 +4465,6 @@ - - - - - @@ -4487,11 +4475,6 @@ - - - - - @@ -4524,6 +4507,26 @@ + + + + + + + + + + + + + + + + + + + + @@ -4541,11 +4544,6 @@ - - - - - @@ -4609,6 +4607,11 @@ + + + + + @@ -4696,16 +4699,6 @@ - - - - - - - - - - @@ -4741,11 +4734,6 @@ - - - - - @@ -4773,6 +4761,21 @@ + + + + + + + + + + + + + + + @@ -4973,11 +4976,6 @@ - - - - - @@ -5006,6 +5004,11 @@ + + + + + @@ -5056,11 +5059,6 @@ - - - - - @@ -5096,21 +5094,11 @@ - - - - - - - - - - @@ -5131,11 +5119,6 @@ - - - - - @@ -5164,8 +5147,28 @@ - - + + + + + + + + + + + + + + + + + + + + + + @@ -5185,11 +5188,6 @@ - - - - - @@ -5235,11 +5233,6 @@ - - - - - @@ -5280,6 +5273,11 @@ + + + + + @@ -5311,16 +5309,6 @@ - - - - - - - - - - @@ -5353,6 +5341,21 @@ + + + + + + + + + + + + + + + @@ -5386,21 +5389,11 @@ - - - - - - - - - - @@ -5411,16 +5404,6 @@ - - - - - - - - - - @@ -5443,6 +5426,26 @@ + + + + + + + + + + + + + + + + + + + + @@ -5491,11 +5494,6 @@ - - - - - @@ -5545,11 +5543,6 @@ - - - - - @@ -5560,11 +5553,6 @@ - - - - - @@ -5592,6 +5580,21 @@ + + + + + + + + + + + + + + + @@ -5640,11 +5643,6 @@ - - - - - @@ -5703,11 +5701,6 @@ - - - - - @@ -5753,22 +5746,17 @@ + + + + + - - - - - - - - - - @@ -5843,6 +5831,21 @@ + + + + + + + + + + + + + + + @@ -5886,11 +5889,6 @@ - - - - - @@ -6015,11 +6013,6 @@ - - - - - @@ -6030,11 +6023,6 @@ - - - - - @@ -6077,6 +6065,21 @@ + + + + + + + + + + + + + + + @@ -6195,21 +6198,11 @@ - - - - - - - - - - @@ -6296,6 +6289,16 @@ + + + + + + + + + + @@ -6334,11 +6337,6 @@ - - - - - @@ -6405,6 +6403,11 @@ + + + + + @@ -6669,9 +6672,6 @@ - - - @@ -6687,14 +6687,17 @@ - + + + + - + - - + + @@ -6747,11 +6750,6 @@ - - - - - @@ -6858,6 +6856,11 @@ + + + + + @@ -6901,11 +6904,6 @@ - - - - - @@ -6921,11 +6919,6 @@ - - - - - @@ -6990,11 +6983,6 @@ - - - - - @@ -7052,6 +7040,21 @@ + + + + + + + + + + + + + + + @@ -7237,11 +7240,6 @@ - - - - - @@ -7355,6 +7353,11 @@ + + + + + @@ -7858,11 +7861,6 @@ - - - - - @@ -7891,6 +7889,11 @@ + + + + + @@ -7964,11 +7967,6 @@ - - - - - @@ -8018,21 +8016,11 @@ - - - - - - - - - - @@ -8055,6 +8043,21 @@ + + + + + + + + + + + + + + + @@ -8179,11 +8182,6 @@ - - - - - @@ -8236,6 +8234,11 @@ + + + + + @@ -8272,11 +8275,6 @@ - - - - - @@ -8327,17 +8325,17 @@ + + + + + - - - - - @@ -8392,6 +8390,11 @@ + + + + + @@ -8435,11 +8438,6 @@ - - - - - @@ -8568,6 +8566,11 @@ + + + + + @@ -8687,26 +8690,11 @@ - - - - - - - - - - - - - - - @@ -8754,6 +8742,21 @@ + + + + + + + + + + + + + + + @@ -8791,11 +8794,6 @@ - - - - - @@ -8834,6 +8832,11 @@ + + + + + @@ -8911,11 +8914,6 @@ - - - - - @@ -8931,11 +8929,6 @@ - - - - - @@ -9035,11 +9028,6 @@ - - - - - @@ -9109,6 +9097,21 @@ + + + + + + + + + + + + + + + @@ -9153,11 +9156,6 @@ - - - - - @@ -9183,6 +9181,11 @@ + + + + + @@ -9250,11 +9253,6 @@ - - - - - @@ -9366,6 +9364,11 @@ + + + + + @@ -9705,11 +9708,6 @@ - - - - - @@ -9763,6 +9761,11 @@ + + + + + @@ -9894,11 +9897,6 @@ - - - - - @@ -9968,6 +9966,11 @@ + + + + + @@ -10031,11 +10034,6 @@ - - - - - @@ -10064,6 +10062,11 @@ + + + + + @@ -10107,11 +10110,6 @@ - - - - - @@ -10150,11 +10148,6 @@ - - - - - @@ -10170,11 +10163,6 @@ - - - - - @@ -10200,6 +10188,16 @@ + + + + + + + + + + @@ -10258,6 +10256,11 @@ + + + + + @@ -10361,11 +10364,6 @@ - - - - - @@ -10396,11 +10394,6 @@ - - - - - @@ -10438,6 +10431,16 @@ + + + + + + + + + + @@ -10561,11 +10564,6 @@ - - - - - @@ -10630,11 +10628,6 @@ - - - - - @@ -10662,6 +10655,16 @@ + + + + + + + + + + @@ -10700,11 +10703,6 @@ - - - - - @@ -10713,11 +10711,6 @@ - - - - - @@ -10758,6 +10751,11 @@ + + + + + @@ -10779,11 +10777,6 @@ - - - - - @@ -10806,6 +10799,16 @@ + + + + + + + + + + @@ -10839,11 +10842,6 @@ - - - - - @@ -10945,6 +10943,11 @@ + + + + + @@ -11027,11 +11030,6 @@ - - - - - @@ -11059,6 +11057,11 @@ + + + + + @@ -11266,11 +11269,6 @@ - - - - - @@ -11281,11 +11279,6 @@ - - - - - @@ -11335,11 +11328,6 @@ - - - - - @@ -11360,11 +11348,6 @@ - - - - - @@ -11402,6 +11385,26 @@ + + + + + + + + + + + + + + + + + + + + @@ -11444,11 +11447,6 @@ - - - - - @@ -11487,6 +11485,11 @@ + + + + + @@ -11520,11 +11523,6 @@ - - - - - @@ -11567,6 +11565,11 @@ + + + + + @@ -11623,11 +11626,6 @@ - - - - - @@ -11636,11 +11634,6 @@ - - - - - @@ -11666,6 +11659,11 @@ + + + + + @@ -11677,11 +11675,6 @@ - - - - - @@ -11704,6 +11697,16 @@ + + + + + + + + + + @@ -11737,11 +11740,6 @@ - - - - - @@ -11781,11 +11779,6 @@ - - - - - @@ -11808,6 +11801,16 @@ + + + + + + + + + + @@ -11846,11 +11849,6 @@ - - - - - @@ -11890,11 +11888,6 @@ - - - - - @@ -11917,6 +11910,16 @@ + + + + + + + + + + @@ -12003,11 +12006,6 @@ - - - - - @@ -12036,6 +12034,11 @@ + + + + + @@ -12086,11 +12089,6 @@ - - - - - @@ -12119,6 +12117,11 @@ + + + + + @@ -12157,11 +12160,6 @@ - - - - - @@ -12182,11 +12180,6 @@ - - - - - @@ -12221,21 +12214,11 @@ - - - - - - - - - - @@ -12256,21 +12239,6 @@ - - - - - - - - - - - - - - - @@ -12293,6 +12261,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -12341,11 +12344,6 @@ - - - - - @@ -12368,6 +12366,11 @@ + + + + + @@ -12401,11 +12404,6 @@ - - - - - @@ -12419,11 +12417,6 @@ - - - - - @@ -12449,6 +12442,11 @@ + + + + + @@ -12487,6 +12485,11 @@ + + + + + @@ -12525,11 +12528,6 @@ - - - - - @@ -12565,11 +12563,6 @@ - - - - - @@ -12595,10 +12588,10 @@ - - - - + + + + @@ -12623,6 +12616,16 @@ + + + + + + + + + + @@ -12661,11 +12664,6 @@ - - - - - @@ -12698,6 +12696,11 @@ + + + + + @@ -12736,12 +12739,12 @@ - - - + + + @@ -12798,11 +12801,6 @@ - - - - - @@ -12830,6 +12828,11 @@ + + + + + @@ -12996,11 +12999,6 @@ - - - - - @@ -13027,11 +13025,6 @@ - - - - - @@ -13111,6 +13104,16 @@ + + + + + + + + + + @@ -13304,11 +13307,6 @@ - - - - - @@ -13319,11 +13317,6 @@ - - - - - @@ -13379,12 +13372,6 @@ - - - - - - @@ -13407,6 +13394,22 @@ + + + + + + + + + + + + + + + + @@ -13468,11 +13471,6 @@ - - - - - @@ -13508,6 +13506,11 @@ + + + + + @@ -13562,12 +13565,6 @@ - - - - - - @@ -13590,6 +13587,12 @@ + + + + + + @@ -13808,11 +13811,6 @@ - - - - - @@ -13840,6 +13838,11 @@ + + + + + @@ -13965,11 +13968,6 @@ - - - - - @@ -14002,6 +14000,11 @@ + + + + + @@ -14050,11 +14053,6 @@ - - - - - @@ -14171,6 +14169,11 @@ + + + + + @@ -14204,11 +14207,6 @@ - - - - - @@ -14286,6 +14284,11 @@ + + + + + @@ -14438,11 +14441,6 @@ - - - - - @@ -14461,11 +14459,6 @@ - - - - - @@ -14511,6 +14504,11 @@ + + + + + @@ -14544,6 +14542,11 @@ + + + + + @@ -14580,11 +14583,6 @@ - - - - - @@ -14635,6 +14633,11 @@ + + + + + @@ -14701,19 +14704,9 @@ - - - - - - - - - - @@ -14779,6 +14772,11 @@ + + + + + @@ -14817,6 +14815,11 @@ + + + + + @@ -14963,11 +14966,6 @@ - - - - - @@ -15006,6 +15004,11 @@ + + + + + @@ -15126,11 +15129,6 @@ - - - - - @@ -15163,6 +15161,11 @@ + + + + + @@ -15211,11 +15214,6 @@ - - - - - @@ -15268,6 +15266,11 @@ + + + + + @@ -16509,11 +16512,6 @@ - - - - - @@ -16559,11 +16557,6 @@ - - - - - @@ -16609,6 +16602,11 @@ + + + + + @@ -16645,12 +16643,6 @@ - - - - - - @@ -16673,6 +16665,17 @@ + + + + + + + + + + + @@ -16706,11 +16709,6 @@ - - - - - @@ -16791,6 +16789,11 @@ + + + + + @@ -16948,11 +16951,6 @@ - - - - - @@ -17039,6 +17037,11 @@ + + + + + @@ -17145,11 +17148,6 @@ - - - - - @@ -17195,6 +17193,11 @@ + + + + + @@ -17231,11 +17234,6 @@ - - - - - @@ -17256,12 +17254,6 @@ - - - - - - @@ -17294,6 +17286,17 @@ + + + + + + + + + + + @@ -17668,16 +17671,6 @@ - - - - - - - - - - @@ -17700,6 +17693,16 @@ + + + + + + + + + + @@ -18152,11 +18155,6 @@ - - - - - @@ -18204,6 +18202,11 @@ + + + + + @@ -18392,11 +18395,6 @@ - - - - - @@ -18433,6 +18431,11 @@ + + + + + @@ -19734,6 +19737,7 @@ + @@ -19742,6 +19746,7 @@ + @@ -19790,21 +19795,25 @@ + + + + diff --git a/code/languages/com.mbeddr.build/solutions/com.mbeddr.cc.tests.dev.build/models/com/mbeddr/cc/tests/dev/build/build.mps b/code/languages/com.mbeddr.build/solutions/com.mbeddr.cc.tests.dev.build/models/com/mbeddr/cc/tests/dev/build/build.mps index 57e8148b41b..de1786df356 100644 --- a/code/languages/com.mbeddr.build/solutions/com.mbeddr.cc.tests.dev.build/models/com/mbeddr/cc/tests/dev/build/build.mps +++ b/code/languages/com.mbeddr.build/solutions/com.mbeddr.cc.tests.dev.build/models/com/mbeddr/cc/tests/dev/build/build.mps @@ -107,10 +107,12 @@ + + @@ -293,7 +295,7 @@ - + @@ -342,6 +344,7 @@ + @@ -357,26 +360,31 @@ + + + + + @@ -445,6 +453,7 @@ + @@ -460,6 +469,7 @@ + @@ -506,6 +516,7 @@ + @@ -521,6 +532,7 @@ + @@ -728,7 +740,7 @@ - + @@ -777,6 +789,7 @@ + @@ -830,6 +843,7 @@ + @@ -886,6 +900,7 @@ + @@ -942,6 +957,7 @@ + @@ -998,6 +1014,7 @@ + @@ -1054,6 +1071,7 @@ + diff --git a/code/languages/com.mbeddr.build/solutions/com.mbeddr.debugger.tests.dev.build/models/com/mbeddr/debugger/tests/dev/build/build.mps b/code/languages/com.mbeddr.build/solutions/com.mbeddr.debugger.tests.dev.build/models/com/mbeddr/debugger/tests/dev/build/build.mps index 6e790970572..dc1993352cf 100644 --- a/code/languages/com.mbeddr.build/solutions/com.mbeddr.debugger.tests.dev.build/models/com/mbeddr/debugger/tests/dev/build/build.mps +++ b/code/languages/com.mbeddr.build/solutions/com.mbeddr.debugger.tests.dev.build/models/com/mbeddr/debugger/tests/dev/build/build.mps @@ -539,7 +539,7 @@ - + diff --git a/code/languages/com.mbeddr.build/solutions/com.mbeddr.platform/models/com/mbeddr/platform/build.mps b/code/languages/com.mbeddr.build/solutions/com.mbeddr.platform/models/com/mbeddr/platform/build.mps index 35c4ce679d6..040e6d12a9f 100755 --- a/code/languages/com.mbeddr.build/solutions/com.mbeddr.platform/models/com/mbeddr/platform/build.mps +++ b/code/languages/com.mbeddr.build/solutions/com.mbeddr.platform/models/com/mbeddr/platform/build.mps @@ -262,1834 +262,868 @@ - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + - - - + + + + + + + + + + + + + - - - + + + + + + + + + + + + + - - - - - - - - - - - - - - - + + + + + + + + + + + + - - - + + + + + + + + + + + + + - - - + + + + + + + + - - - - - - - - - - - - - - - + + + + + + + - - - + + + + + + + + - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - + + + + + - - - - - - - - - - - - - - - - - - - + + + + - - + + + + + - - + + + + - - + + - - - + + + + + + + + + + + + + + + + + + + + + - - - - + + + + + + - - - + + + + + + + + + + + + - - - + + + + + + + + + + + + + - - - + + + + + + + - - - - - - - - - - - - - - - - - - + + + + + + - - - + + + + + + + + + + + + + + + - - - - + + + + - - - - - - - - - + + + + + - - - - - - + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + - - - - - - - - - + + + + + + + + + + + + + + - - - - - + + + + + + - - - + + + + + + + + + + + + + - - - + + + + + + + - - + + + + + + + + - - + + + + + - - + + + + + - - + + + + - - + + - - + + - - + + - - - + + - - - - - - - + + - - - - + + - - - - + + - - + + - - + + - - - + + - - - - - - - + + - - - - + + - - - - + + - - + + - - + + - - + + - - + + - - + + - - - + + - - - - - + + - - + + - - + + - - + + - - - + + + + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + - - + + + + - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - + + + - - - - - + + + + + + - - - - - - + + + + + + - - - - - - - - + + + + + + + + - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - + + + + + + + + - - - - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - + + + + + + + + - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - + + + + + + + + - - - - - - - - - - - - - - - - - + + + + - - - - - - - - - - - - + + + + + + + + + + + + @@ -2097,151 +1131,211 @@ - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - + + + + + + + + - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - + + + + + + + + + + + + @@ -2249,19763 +1343,20654 @@ - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - + + + + + + + + - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - + + + + + + + + - - - - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - + + + + + + + + - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - + + + + + + + + - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - + + + + + + + + - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - - - - - - - - + + + + + + + + + - + - + - - - - - + + + + + - - - - - - + + + + + + - - - - - - - - + + + + + + + + - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + - - - + + + - + - - - - - - - - + + + + + + + + - + - + - - - - - + + + + + + - - - - - - + + + + + + - - - - - - - - + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - + - - - - - - - - + + + + + + + + - + + + + + + - + - - - - - + + + + + + - - - - - - + + + + + + - - - - - - - - + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - - + + + - + - - - - - - - - - - + + + + + + + + + + - + - + - - - - - - - - - - - - - - + + + + + + + + + + - - - - - - - - + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + - - - + + + - + - - - - - - - - + + + + + + + + - + + + + + + + + + + + - + - - - - - + + + + + + - - - - - - + + + + + + - - - - - - - - + + + + + + + + - - - - - - - - + + + - - - + + + - - - + + + + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + - - - + + + - - + + - + - - - - - - - - + + + + + + + + - + + + + + + - - - - + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - - - + + + + + + + + - - - - - - - - - - - - - - - - - + + + - - - + + + - - - - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - + + + + + + + + - - - + + + - - - + + + - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - - - - - - - - - - + + - - - - + - - - - - + + + + + + - - - - - - - - - - - - + + + + + + - - - - - - - - - - - - - - + + + + + + + + - - - + + + - - + + - - - - - - - - + + + - - - + + + - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + - - - - + + + - + + + + + + + + + + + - - - - - - - - - - - - - - - + + + + + + + + + - + + + + + + + + + + + + + + + + + - + + + + - - - - - + + + + + - - - - - - + + + + + + + + + + + + + + + - - - - - - - - + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - + + - - - - - - - - - + + + + + + + + + + + + + + + + + + - + + + + + + - - - - - - + + + + - - - - + + - - - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - + + + + + + - - - + + + + + + + - - + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + - - - - - + + + + + + + - - - + + + + + + + + - - + + + + + + + + + - - - + + + + + + + + + + + + + + + + + + + + - - - + + + + + - - + + + + + - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - + + + + - - - + + + + + + + + + + + + + + + + + + - - - - + + + + + + + + + + + + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - - + + + + + + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - - - - - - - - + + + + + - - - - - - + + + + + + + + + + + - - - - - - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + - - - - - - - - - + + + + + + + + + + + - - - - + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + + - - - - + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + + + + - - - - + + + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + + + + - - - - + + + + - - - - + + + + + + + + + + + + + + + + + - - - - + + + + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - + + + + + - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + - - - - + + + + + + + + + + + + + + + + + + + + - - - - + + + + - - - - + + + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - + + + + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - + + + + + - - - - - - - - - - - + + + + - - - - + + + + - - - - + + + + + + + + + + + + + + + + + - - - - + + + + - - + + + + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - + + + - - - - - - - - - - - + + + + - - - - + + + + + + + + + + + + + + + + + - - - - + + + + - - - - + + + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + + + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - + + + + + - - - - - - - - - - - + + + + - - - - + + + + - - - - + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - - - + + - - - - + + - - - - + + - - - - + + - - - - + + - - - - + + - - - - + + - - - - + + - - - - + + - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - + + + + + + + + + + + + + + + + + + + + - - - - + + + + - - - - + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - + + + + + + + - - - - - - - - - - - + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + - - - - + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + - - - - - + + + + + - - - + + + - - - + + + + + + + + + + + + - - + + + - + + + + + + + + + + + + + + + + + + + - - + + - - + + - - - + + + + - - + + + - - - - - - - - - - - - - - - - - - - - - - + + + - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + - - - - - - - - - - - - - - - - - - - + + + + - - - - - - - - - - + + + + - - - + + + + - - - + + + + + + + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + + + + + + + + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + + + + + + + + + + + + + + - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - + + + - - - - - - - - - - - + + + + - - - - - + + + + - - - - + + + + + + + + + + + + + + + + + + + + - - - - - + + + + - - - - - + + + + - - - - + + + + - - - - + + + + + + + + + + + + + + + + + - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + + + + - - - - + + + + + + + + + + + + + + + + + + + - - - - + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + + + + + + + + + + + + + + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + + + + + + + + + + + + + + + + + - - - - + + + + - - - - + + + + - - - - - - - - - - - - - - - - - - - - - + + + + - + + + + + + + + + + + + + + + + + + + + + + + - - - - - + + + + + - - - + + + - - + + - - - + + + - - - - + + + + - - + + + - - - - - - - - - - - - - - - - - - + + + + + - - - - + + + + + + + - - - - - - - - - - - - - - - - - - - - - + + + + + - - + + + + + + + + - - - - - - - - + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - - - - - - - + + + + + - - - - + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + - - - - - - - - + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + - - - - - - - - + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + - - - - - - - - + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + - - - - - - - - + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + - - - - - - - + + + + + + + + + + + + + + + + - - - - + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - - - - - - - - - - - + + + + + - - + + + + + + + + - - - - - - - - + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - + + + + + - - - - + + + + + + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + - - - - - - - - + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + - - - - - - - - + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - + + + + + + + + + - + - + - - - - - + + + + + - - - - - - + + + + + + - - - - - - - - + + + + + + + + - - - + + + - - - + + + - - + + + + - - - + + + - - - + + + - - + + - + + + + + + - - - - - - - - - - + + + + + + + + + + - + - - - - + - - - - - + + + + + - - - + + + - - + + - - - + + + - - - - + + + + - - - - + + + - - - - + + + - - - + + + - - - - + + + - - - + + + - - - + + + - - - + + + - + - - - - + + + + - - - + + + - + - + - - - - - + + + + + - - - + + + - - + + - - - + + + - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - + + + - - - + + + - - - - + + + + - - - - + + + + - - - + + + - + - + - - - - - - - - - - - - - - - - - - - - + + + - - + + - - - - + + + + - - - - + + + + - + - + - - - - - + + + + + - - - + + + - - + + - - - + + + - - - - + + + + - - - - - - - - - - - - - + + + - - - - + + - - - - - - + + + + + + - - - + + + - - - + + + - - - + + + - + - - - - + + + + - - - + + + - + - + - - - - - - - - - - - - - - - - - - - - + + + - - + + - - - - + + + + - - - - + + + + - + - + - - - - - + + + + + - - - + + + - - + + - - - + + + - - - - + + + + - - - + + + - - - - - - - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - - - - - - - - - + + + - - - + + + - - - + + + - + + + + + + - - - - + + + + - - - + + + - + - + + + + - - - - - + + + + + + - - - - - - + + + + + + - - - - - - - - - - - + + + + + + + + - - - - - - - - + + + + + + + + + + + + + + + + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - + + + + + - - + + + + + + + + - - - + + + + + + + + + - - - - + + + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - - - - - - - + + + + + - - - - + + + + + + + - - + + + + + + + + + + + + + + + - - - + + + - - - - - + + + + + - - - - - - + + + + + + + + + + + + - - - - - - - - + + + + + + + + + + + + + + - - - + + + - - - + + + - - + + - - - - - - - - - - - - - + + + - - - + + + - - - + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - - + + + + + + + + + + + + + + + + + + + + + + + - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + - - - - + + + + + + + + + + - - + + - + + + + + + + + + + + + - - - - + + + + - - - + + + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - + + + + + - - - + + + - - + + - - - + + + - - - - + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - + - - - - + + + + - - - + + + - + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - - - - + + + + + - - - + + + - - + + - - - + + + + + + + + + - - - - + + + + - - - + + + - - - + + + - - - - + + + - - - - + + + - - + + + + - - - + + + - - - - - + + + + + - - + + - - - - - - - - - - - - - - + + + - - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - + + + - - - + + + - + - - - - + + + + - - - + + + - + - + - - - - - - - - + + - - - - + + + + - - - - + + + + - + - + - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + - - - + + + + + + + + + + - - - + + + - - + + - - - + + + - - + + + + + + + + - - + + - + - + - - - - - - - - - - - - + + + + + + + + + - + - - - - + - - - - - + + + + + - - - - - - + + + + + + - - - - - - - - + + + + + + + + - - + + + + - - - + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - + + + + + + + + + - + - + + + + - - - - - - - - - - - - - - - - - - - - - + + + + + - - - - + + + + - - + + + + - - - - - - + + + + + + - - - + + + - - - + + + - - - + + + - + - - - - + + + + - - - + + + - + - + - - - + + + - - + + - - - + + + - - - + + + - - + + - - - - + + + + - - - - + + + + - + + + + + + + + + + + + + + + + + - - - + + + - - - - - + + + + + - - - - - - + + + + + + - - - - - - - - + + + + + + + + - - - + + + - - - + + + - - - - + + + - - - - + + + + + + + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - + + + + + + - - - - + + + + - - - + + + - + - - - - - - - + + + + + + + + + + - - - + + + - - + + - - - + + + - - - - + + + + - - - - - - - + + - - - - - - - - - + + + - - - + + + + + + + - - - - + + + + - - - - + + + + - - - - - - - + + + + - - - - + + + + - - - - - - - + + + - - - + + + - - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + + + + + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + - + + + + + - - - - - - - - + + + + + + + + - + - + - - - + + + - - - + + + + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + - - - + + + - - - + + + - + - - - - - - - - + + + + + + + + - + - - - - + - - - - - + + + + + - - - + + + - - + + - - - + + + - - - - + + + + - - - + + + - - + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - - - - + + + - - - - + + + + - - - - + + + + - + + + + + + + + + + + + + + + - - - - + + + + - - - + + + - + - + - + - - - - + + + + - - - + + + - + - + - - - - - + + + + + - - - - - - + + + + + + - - - - - - - - + + + + + + + + - - - + + + + - - - + + + - - - + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - + + + + + + + + + - + - - - - - - - - - - - + - - - - - + + + + + - - - + + + - - + + - - - + + + - - - - + + + + - - - - - - - - - - - - - - - - - - + + + - - - + + + - - - - - - + + + - - - - - - - - - - - - - - + + + + - - - - + + + + - - - + + + - + - + - - - + + + - - + + + + - - - - + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + + + + - - - - + + + + - + - + - - - - - + + + + + - - - + + + - - + + - - - + + + - - - - + + + + - - - - - - - - + + + - - - + + + - - - + + + - + - - - - + + + + - - - + + + - + + + + + + - + - - - - - + + + + + - - - - - - + + + + + + - - - - - - - - + + + + + + + + - - - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - - + + + - - - - - - + + + - - + + - - - + + + - + + + + + + - - - - - - - - + + + + + + + + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - + + + + + - - - + + + - - + + - - - + + + - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + - - - - + + + + - - - + + + - + - + - - + + - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - - - - - - - + + + - - - - - - - - - - + + + - - - - + + + + - - - + + + - - + + - - - - - - - - - + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - + + + + + - - - - - - + + + + + + - - - - - - - - + + + + + + + + - - - + + + - - - - + + + + + + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - - - - - - - - + + + + + + + + + - + - + - - - - - + + + + + - - - - - - + + + + + + - - - - - - - - + + + + + + + + - - - + + + + + + + - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - + + - - + + - - - - - - - - - + + + + + + + + + - + - + + + + - - - - - + + + + + - - - - - - + + + + + + - - - - - - - - + + + + + + + + - - - + + + + - - - + + + + - - - + + + - - - + + + + - - - + + + - - - + + + - - - + + + + - - - - + + - - - - + + - - - + + + + + + + + + - - - + + + - - - - - - - - - - - - - - - - + + + + + + + - - + + + + + - - - - - - - - - - + + + - - - - - - - - + + + + - - - - - - - - - - + + + - - - - + + + + - - - - - - - + + + - - - + + + + + + + + + + + + + - - - + + + - + - - - - + + + + - - - + + + - + - + - - - - - - - - - - - - - - - + + - - - - + + + + - - - - + + + + - + - - - - + - - - - - + + + + + - - - + + + - - + + - - - + + + - - - - + + + + - - - + + + - - - + + + - - - + + + + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + - - - + + + - - - + + + - - - - + + + + + + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - - - - - - - - + + + + + + + + + - + - + - - - - - + + + + + - - - + + + - - - - - + + - - - + + + - - - - - - - + + + + - - - - - - - + + - - - - - - - - - + + + - - - + + + + + + + - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - - + + + - - + + - - + + - - - - + + + + - - - - - - - + + + + - + - + - - - - - + + + + + - - - - - - + + + + + + - - - - - - - - + + + + + + + + - - - - + + + - - - + + + - - - + + + + + + - - - + + + - + + + + + + - - - - - - - - + + + + + + + + - + - + + + + - - - - - - - - - - + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + - - - + + + + - - - + + + + - - - + + + - - - + + + + - - - + + + - - - + + + - - - + + + - + - - - - + + + + - - - + + + - + - - - - - - - - - - - - - - - - - + - - - - - + + + + + - - - + + + - - + + - - - + + + - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - + + + - - - - + + + + - - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - + + + + + - - - - + + + + - - - + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - + + - - - - + + + + - - - - + + + + - + - + - - - - - + + + + + - - - + + + - - + + - - - + + + - - - - + + + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + + + + - - - + + + - + - + - - - - - - - - - - - - - - + - - - - + + + + - - - + + + - + + + + + + + + + + + + + + + + + + + + + + + - - - - + - - - - - + + + + + - - - + + + - - + + - - - + + + - - - - + + + + - - - - - - - - - - - - - - - - - - + + + - + - - - - + + + + - - - + + + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - + + + + + - - - + + + - - + + - - - + + + - - - - + + + + - - - - - - - - - + + + - - - + + + - + - - - - + + + + - - - + + + - + - - - - + - - - - - + + + + + - - - + + + - - - - - + + - - - + + + + + + - - - - - - - + + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + + + + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - - + + + - - + + - + - - + + - - - - - - - - - - - - + + + + + + + + + - + - + + + + - - - - - + + + + + - - - - - - + + + + + + - - - - - - - - + + + + + + + + - - + + - - - + + + - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - + + + + + + + + + + + + + + + + + - - - - - - - - + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - - - - + + + + + - - - + + + - - + + - - - + + + - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - + + + - - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - + + + + + + + + - + - - - - + + + + - - - + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + - - - - + + - + - - - - + + + + - - - + + + - + - + - - - - - + + + + + - - - - - - + + + + + + - - - - - - - - + + + + + + + + - - - - - - - - - - - - - - - - - + + + - - - - - - - - + + + - + - - - - - - - - + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + - - - + + + - - - + + + - - - + + + + - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - + + + + + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - + + + + + + + + + + + + + + - - - - - - - - - - - - - + + + + + + + - - - - - + + + + + + + + + + + + + - - - - - - - - - - - - - + + + + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - + + + + + + + + + - - - - - + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + - - - - - + + + + + + + + + + + + + + + + - - - - - - - - - - - - - + + + + + + + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - + + + + + + + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + - - - + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - - + + + - + - - - - - - - - - - - - - - - + + + + + + + + + - + - + - - - - - + + + + + - - - - - - - - - - - - - - - + + + + + + - - - - - - - - - - - - - - - - - + + + + + + + + - - + + + + - - + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + - - + + + + - - - - - - - - - - - - - + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - + - - - - - - - - + + + + + + + + - + - + + + + - - - - - + + + + + - - - + + + - - + + - - - + + + - - - - + + + + - - - - - - - - + + + - - + + - - - - - - - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - - - - - - - + + + - - - - - - - - - - + + + - - - + + + - - - - - - + + + - - - - - - - - - - - + + + + + + - - - + + + - - - + + + - + - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - + - - - - + + + + - - - + + + - + - + - - - - - + + + + + - - - + + + - - + + - - - + + + - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - - + + + - - - + + + - + - - - - + + + + - - - + + + - + + + + + + + + + + + - + - - - - - + + + + + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - + + + - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - - + + + - - - - - - + + + - - - + + + - - - + + + - - - - - - - - - - - - - - - - - - - - + + + + + + - - - - - - - - - + + + + + + - - - - - - - - + + + + - - - - - + - - - - + + + + - - - + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - - - + + - - - + + + + - - + + - - - - + + + + - - - - + + + + - + - + - - - - - + + + + + - - - - - - + + + + + + - - - - - - - - + + + + + + + + - - + + + + - - - + + + - - - + + + - - - + + + - - + + - - - - - - - - - + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - + + + + + - - - + + + - - + + - - - + + + - - - - + + + + - - - - - - - - - - - - - - - - - + + - - - - + + - - - + + + - - - - - - + + + - - - - - - + + + + + + - + + + + + + - - - - + + + + - - - + + + - + - + - - - + + + - - - - + + - - - + + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - + - - - - + + + + - - - + + + - + - + - - - - - + + + + + - - - - - - + + + + + + - - - - - - - - + + + + + + + + - - - - - - - - + + + - - - + + + - - - - + + - - - + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + - - + + + + - - - - - - - - - - + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - + + + - - - + + + + - - - + + + - - - + + + - + + + + - - - - - - - - + + + + + + + + - + - + - - - - - + + + + + - - - + + + - - + + - - - + + + - - - - + + + + - - - + + + - - - + + + - + - - - - + + + + - - - + + + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - + + + + + - - - - - - + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + - - - + + + - - - + + + + - - - + + + - + - - - - - - - - + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - + + + + + - - - + + + - - + + - - - + + + - - - - + + + + - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + - + - - - - + + + + - - - + + + - + - + - - - - - + + + + + - - - - - - + + + + + + - - - - - - - - - - - + + + + + + + + - - - - - - + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - - - - - - - - - - - - - - - - - - - + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - + + + + - - + + - - - - - - - - - + + + + + + + + + - + - + - - - - - + + + + + - - - - - - - - - - - - - - - + + + + + + - - - - - - - - - - - - - - - - - + + + + + + + + - - + + + + - - - - + + + + + + + + + + + + + + + + + + + - - - - + + + + - - - + + + - + - + - - - + + + - - - + + + + + + - + - - - - + + + + - - - + + + - + - - - + + + - - - - - + + + + + - - - + + + - - + + - - - + + + - - - - + + + + - - - + + + - - + + - - + + + + + + + + + + + + + + + + + - - + + + + + + + - + + + + + + - - - - + + + + - - - + + + - + - + - - - - - + + + + + - - - + + + - - + + + + + - - - + + + - - - - + + + + + + + - - - - - - - - - - - - - - - - + + + - - - + + + - - - + + + + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - + + + + + - - - + + + - - - + + + - - + + - - + + - - - - + + + + - - - - + + + + + + + - + - - - - + - - - - - + + + + + - - - - - - + + + + + + - - - - - - - - + + + + + + + + - - - - - - - + + - + - - - - - - + + + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - + + - - - - - - - - - + + + + + + + + + - + - + - - - - - - - - - - - - - - + + + + + + + + + + - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + - - - - + + + - - - + + + - - - - + + + - - + + - - - - - - - - - - - - - - - - - + + + - + + + + + + + + + + + - - - - + + + + - - - + + + - + + + + + + + + + + + + + + + + + - - - - + - - - - - + + + + + - - - + + + - - + + - - - + + + - - - - + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + + + + + + + - - + + - - - + + + - - - + + + + - - + + + + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + - + + + + + - - - - + + + + - - - + + + - + - + - + + + + + + + + + + + + + + - - - - + + + + - - - + + + - + - + + + + - - - - - + + + + + - - - + + + - - + + - - - - - - - - - + + + - - - - + + + + - + + + + + + + + + + + + + + + + + + + + + - - - - + + + + - - - + + + - + - - - - + - - - - - + + + + + - - - + + + - - + + - - - + + + - - - - + + + + - - - - - - - - - - - - - - - - - - + + + - - - + + + + - - - + + + - + - - - - + + + + - - - + + + - + - + + + + - - - - - + + + + + - - - + + + - - + + + + + - - - + + + - - - - + + + + + + + - - - + + + - - - + + + - - - + + + - - - - - - + + + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + + - - + + - - - - + + + + - - - - + + + + + + + - + - - - - + - - - - - + + + + + - - - - - - + + + + + + - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - + - - - - - - - - + + + + + + + + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - + + + + + - - - + + + - - + + - - - + + + - - - - + + + + - - - - - - - - + + + + + + + - - - - - + + + + - - - - - - - - - - + + + - - - + + + - - - + + + + - - + + - - - + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + + + + - - - + + + - + - + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + + + + - - - - + + + + - + - + - - - - - + + + + + - - - + + + - - + + - - - + + + - - - - + + + + - - + + - - + + + + + + + - - - + + + - - - + + + - + + + + + + - - - - + + + + - - - + + + - + - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + + + + + - - + + + + + + + + + + + + + + - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - + + + + + - - - - + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - + + + + + - - - - + + + + + + + + + + + + + - - - - - - - - - - - + + + + + - - + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - - - - - - - - + + - - - + + + - - - + + - + + + + + + - - - - - - - - - + + + + + + + + + + + + + + + - + - - - + + + + + + + + - - - - - - + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - - + + + + + + - - - - - - - + + + - - - + + + + + + + + + + + + + + + + + - - - - + + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + - - - + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - + + + + + + + + - + - - - + + + + + + + + - - - + + + - - + + - - - - - - - - - - - - - - - - + + + + + + + + - - - + + + - - - + + + - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - + + + + + + + + - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + - - - - - - - - - + + + + + + + + + - + - - - + + + + + + + + - - - + + + - - + + - - - - - - - - - - - - - - - - - - - - + + + + + + + + - - - - - - - - - - + + + - - - - - - - + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - + + + + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + + + - - - + + + + + + + - + - - - - + + + + - - - + + + - + - + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + - - + + + + - - - + + + - - - + + + + + + - - - + + + - - - + + + - - + + - - - - + + + + - - - - + + + + - + - + - - - - - + + + + + - - - - - - + + + + + + - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + - - - + + + + + + + + + - - - - + + + - - + + + + + + + - - - - - - - - - + + + + + + + + + - + - - - - + - - - - - + + + + + - - - - - - + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + - - - - + + - - - - + + + - - - + + + - - - + + + - - + + - - - - - - - - - + + + + + + + + + - + - + + + + - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - + + - - - + + + - - - - + + + + - - + + + + + + + + + + + + + + + + + - - - + + + - - - + + + - - + + - - + + - - - - - - + + + + + + - + - - - - + + + + - - - + + + - + - + - - - + + + - - - + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + + + + - - - + + + - + - + - - - - - + + + + + - - - + + + - - + + - - - + + + - - - - + + + + - - + + - - + + - - - + + + - - + + - - - - - - - - - - - - - + + + - + - - - - + + + + - - - + + + - + - + - - - - - + + + + + - - - - - - + + + + + + - - - - - - - - + + + + + + + + - - - - - - - - - - - - - - - - - - - - - + + + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - + - - - - - - - - + + + + + + + + - + - + - - - - - + + + + + - - - + + + - - + + - - - + + + - - - - + + + + - - - + + + - - - + + + - + - - - - + + + + - - - + + + - + - - - - + - - - - - + + + + + - - - - - - + + + + + + - - - - - - - - + + + + + + + + - - - + + + - - - - + + + - - - + + + - - - + + + - + + + + + + + + + + + + + + + + - - - - - - - - + + + + + + + + - + - + + + + - - - - - - - - - - - - - - + + + + + + + + + + - - - - - - - - - - - + + - - - - - + + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + - + + + + - - - - - + + + + + - - - + + + - - + + - - - + + + - - - - + + + + - - - + + + - - + + + + + + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - + - - - - + + + + - - - + + + - + - + - - - - - + + + + + - - - - - - + + + + + + - - - - - - - - + + + + + + + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + - - + + + + - - - - - - - - - - + + + - - - - - - - - + + + + - - - - - - - - - - + + + - - - - - + + + + - - - - - - - - - - - + + + - - - + + + - + - - - - + + + + - - - + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - + + - - - - + + + + - - - - + + + + - + - + - - - - - + + + + + - - - - - - + + + + + + + + + + + + + + + - - - - - - - - + + + + + + + + + + + + + + + + + - - + + - - - - + + + + - - - - + + + + - - - + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - + + + - - - + + + - + - - - - + + + + - - - + + + - + - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - + + + + + + + + + + - - + + - - - - - - - - + + + - - - + + + - - - + + + + - - + + - - - - - - - - - + + + + + + + + + - + - + - - - - - + + + + + - - - + + + - - + + - - - + + + - - - - + + + + - - - - + + + - - - - + + + - - - - + + + + + + - - + + + + - - - + + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + + + + - - - + + + - + - + - + + + + + + + + + + + + + + + + - - - - + + + + - - - + + + - + - + + + + - - - - - + + + + + - - - + + + - - + + - - - + + + - - - - + + + + - - - + + + - - - + + + + - - - - + + - - - + + + - - - + + + - - - - - - - + + + + + + - - - + + + - - + + - + - - - - + + + + - - - + + + - + - + - + - - - - + + + + - - - + + + - + - - - - + - - - - - + + + + + - - - - - - - - - - - - + + + + + + - - - - - - - - - - - - - - + + + + + + + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - + + - + - - - + + + - - - + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - + + + + + + + + + - + - - - - - - + + + + - - - - - + + + + + - - - + + + - - + + - - - + + + - - - - + + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - - - - + + + + + + + + + + + + + + + + - - - + + + - + - - - - + + + + - - - + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + + + - - - + + + + - - - + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + - - - + + + + - - - - + + - - - + + + + + + + + + - - - + + + - - - + + + - - + + - - - - - - - - - + + + + + + + + + - + - - - - - - - - - - - - - - + - - - - - + + + + + - - - + + + - - + + - - - + + + - - - - + + + + - - + + - - - + + + - - - + + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + + + + - - - + + + - + - + - - - + + + - - + + + + + + + + + + + + + + + + + - - - - + + + + - - - - + + + + - + - - - - - - - - + + + - - - - - - - - - - + + + + + + + + + + + + + + - - - - - - - - - - - - - + + + + + + + + + + - - - + + + + - + - - - - - - - - + + + + + + + + - + - - - + + + + + + + + - - - + + + - - + + - - - - - - - - - - - - + + + + + + + + + - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - + + + + + + + + + + - - - + + + - + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - + + + + + + + + + - + - - - - - - - - + + + + + - - + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - + + - - - + + + - - - - + + + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - - - - - - - - - + + + - - - - + + + + + - - - - + + + + + - - - + + + + + + + + + + - - - + + + - - - + + + - + - - - - + + + + - - - + + + - + - + - - - - - - - - - - - - - - + + - - - + + + + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + - - - + + + - - + + - + - - + + - - - - - - - - - - - + - - - - - - + + + - - - + + + - - - + + + - - + + - - - - - - - - - + + + + + + + + + - + - - - - - - + + + + - - - - - - - - - - - - - - + + + + + + + + + + - - - - - - - - - - + + + - - - - - - - + + + - - + + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - - - + + + - + - - - - + + + + - - - + + + - + - + - - - - - - - - - + + + - - + + - - - - + + + + - - - - + + + + - + - - - - - - - - + + + - - - + + + - - + + - - - - - - - - + + + + + + + + + + + + + + + + - - - + + + + - - - + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + + - - - - + + + + + + + + + + + + - + + + + + + + + + + + - - - - + + + + - - - + + + - + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + + - - - + + + - - - + + + - - - + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + - - - - + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + - - + + - - - - - - - - - + + + + + + + + + - + - - - - - - - - - - - - - - + + + + + + + + + + + - - - - + + + + - - - - - + + + + + - - - + + + - - + + - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - - - - + + + - + - - - - + + + + - - - + + + - + - + - - - + + + + - - - + + + + + + + + + - - - + + + - - - + + + - - - + + + - - + + - - - - + + + + - - - - + + + + - + - + - - - - - + + + + + - - - - - - + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + - - - + + + - - - + + + - - - + + + + - - + + - - - - - - - - - + + + + + + + + + - + - + + + + - - - - - + + + + + - - - - - - + + + + + + - - - - - - - - + + + + + + + + - - - + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - + + + + + + + + + - + - + - - - - - + + + + + - - - + + + - - + + - - - + + + - - - - + + + + - - - - - - - + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - + + + + - - - + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - + + + + + + + - - - - + + + + - - - - + + + + - + - + - - - - - + + + + + - - - - - - + + + + + + - - - - - - - - + + + + + + + + - - + + + + + + + + + + + + + + + + + - - - + + + - - - - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - - - + + + + + + + + + + + + + - - - - - - - - + + - - - - - - - - - - - - - - - + + + + + + + + - - - - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - - - - - + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - - + + + - + - - - - + + + + - - - + + + - + - + - - + + - - - - + + + + - - - - + + + + - + - + - - - - - - - - - - + + + + + + + + + + + + + + - - - + + + + + + + + + + - - - + + + - - - + + + - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - + + + + + + + + - + - - - - - - - - - - - - - - - - + + + + + + + + + - - - - - - - - - - - - - - - - - - - + + + + + + - - - - - - - - - - - - + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - + + + + - + - - - - - - - - + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - - - - - - - - - - + + + + + + + + - - - - - + + - - - + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - + + + + + - - - - - - + + + + + + - - - - - - - - + + + + + + + + - - - - - - - - + + + - - - + + + - - - + + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - - - - - - + + + + + + + + + + + + + + + + - - - - + + - - - + + + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + - - - + + + - + - - - - + + + + - - - + + + - + - + - - + + + + - - + + + + + + + + + + + + + + + + + - - - - + + + + - - - - + + + + - + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - + + + + + - - - - - - + + + + + + - - - + + + - - - - - - - - - - + + + + - - - - - - - - - - - - - - + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + + + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - - - + + + + - - - - - - - - - - + + + + - + - + - - - - - + + + + + - - - - - - + + + + + + - - - - - - - - + + + + + + + + - - + + - + - - - + + + - - - + + + + + + - - - + + + - - - - - - - - - - - - - - - - + + + + + + + - - + + + + + - - - - - - - - - - + + + - - - - - - - - + + + + - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - + + - - - - - - - + + - - - - - - - + + - - - + + + - - - + + + - - - - + + + + - - + + - - - - - - - - - + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - + + + + + - - - - - - + + + + + + - - - - - - - - + + + + + + + + - - - + + + + - - - + + + + - - - + + + + - - - - - - - - - - - - - - - - - + + + + + + - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - + + - - - - - - - - - + + + + + + + + + - + - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - + + + + - - - - - - - - - - + + + - - - - - + - - - - + + + + - - - + + + - + - + - - - - - + + - - - - + + + + - - - - + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - - - - + + + + + - - - - - - + + + + + + + + + + + + - - - - - - - - + + + + + + + + + + + + + + - - + + + - - - + + + - - - + + + - - - - - - - - - - - - - - - - - - - - + + + + - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - + + + - - - + + + + - - + + + + - + + + + + + - - - - + + + + - - - - + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - - - + - - - - - + + + + + - - - + + + - - + + - - - + + + - - - - + + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - - + + + + + + + + + + + + + + - - - - + + + + - - - + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + - - - - - - - - - - + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - - - - - - - - - - - - - - + + + - - - + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - + + + + + + + + + - + + + + + + + + + + + - - - + + + - - - - - + + + + + - - - - - - + + + + + + - - - - - - - - + + + + + + + + - - + + - - - + + + - - - + + - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - + - - - - - - - - + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - + + + + - - - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - - - - - - - - - + + + + + - - - - + + + + - - - - - - - + + - - - - - - - - + + + - - - + + + - - - + + + - - - - - - + + + + + + + + + + + + + + + + - - - - + + - - - + + + + + - - - - + + + + + + + + - - - - - - - - + + + + + + + + + + + + + + + + + + + - - - - - - + + + + + + - - + + + + + + + + + + + + + + + + + + + + - - - + + + - + + + + + + - - - - - - - - - + + + + + + + + + + + + + + + + + + - + - - - + + + - - - - - + + + + + + + + + + + - - - - - - + + + + + + - - - - - - - - + + + + + + + + - - - + + + + - - - + + + - - - + + + - - - - - - - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - - - - - - - - - - - + + + + - - - - - - - - + + + + - - - - - - - - - - - - + + + + + + - - - - - - - - + + + + - - - - - - - - - - + + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - + - - - - - - - - - - - - - - - - - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - + + + - - - - - - - - - - + + + - - - - + + - - - + + + - - - + + + - - - + + + - - + + - - - - - - - - - + + + + + + + + + - + + + + + + - - - - + - - - - - + + + + + - - - + + + - - + + - - - + + + - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - - + + + + - - + + - - - - + + + + - - - - + + + + - + - - - + + + + + + + + - - - + + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + - - - - - - - - + + + + - - - - - - - - + + + + - - - - - - - - - - - - + + + + + + - - - - - - - - - - - - - + + + - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - + + + - - - - - - - - + + + - - - - - - - - + + + - - - - - - - - + + + - - - - - - - - + + + - - + + + + - - + + + + - - + + + + + - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + - - - - - - - + + + + - - - - - - - - - - - - - - - - + + - - - - + + + + + + + + + - - - - - - - + + + + - - - - - - - - - - - - - - - - + + - - - - + + + + + + + + + + + + + + - - - - - - - - + + - - - - - - - - - - - - - - + + + + + + + + + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + - - - - + + + + - - - - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + - - - - + + - - - - - - - - - - - - - - - - + + + + + + + + - - - - - - - - - - - + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + - - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + - - - - + + - - - - - - - - - - - - - - + + + + + + + + - - - - - - - - - - - + + + + + + - - - - - - - - - - - - - - - + + + + + + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - - - + + + + + + + + + - - - - - + + + - - - - - + + - - - - - - - - - - - + + + + + + + + + - - - - - - - - - - - - + + + + + + + - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - - + + + - - + + - - - + + + - - + + + + + + + + + + + + + + + + + + + + + + - - - - + + + + - - - - + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + - - - - - - - + + + - - + + - - - - - - - - - - - + + + - - - - - - - - - - + + + + - - - + + + - - - + + + - - - + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + - - - - - - - - + + + + + - - - - - - + + + + + + - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + - - - - - - - - + + + + + + + - - + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + @@ -22013,2122 +21998,2345 @@ - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - + + + - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - - - - - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + - - - - - - - - - + + + + + + + + + + + + + + + + + - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - + + + + + + + + + + + + + + + - - - - + + + + - - - - + + + + + + + + + - - - - - - - + - - - - - - + + + + + - - - - - - + + + + + + - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - + + - + - - - - - - - - + + + + + + + + - + - + - - - - - - + + + + + - - - - - - + + + + + + - - - - - - - - + + + + + + + + + + + + + + - - - + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - + + + + + + + + + + + + + + + - + - + - - - - - + + + + + - - - - - - + + + + + + - - - - - - - - + + + + + + + + - - - - - - - - + + + + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - - + + + - - - - - - - - - - - - - + + + + + + + + + + + + + - + - + - - - - - - + + + + + - - - - - - + + + + + + - - - - - - - - + + + + + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - - - - - - - - - - - - - - + + + - + - - - - - - - - + + + + + + + + - + + + + + + - + + + + - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - + + + + + + - - - - - - - - + + + + + + + + - - - + + + - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + - - + + - - - - - - - - - + + + + + + + + + - + - + - - - - - + + + + + - - - - - - + + + + + + - - - - - - - - + + + + + + + + - - - - + + + + - - - - - - - - + + + + + + + + - + - + - - - - - - - - - - - - - - - - - - + + - - + + - - - - - - - - - + + + + + + + + + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - + + + + + - - - - - - + + + + + + - - - - - - - - + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + - - + + + + + + + - - - - - - - - - + + + + + + + + + - + - + - - - - - - + + + + + - - - - - - + + + + + + - - - - - - - - + + + + + + + + - - - + + + - + + + + - - - - - - - - + + + + + + + + - + - + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - - - + + + + + + + + - - - + + + + + + + + + + + + + + + + + - - - + + + + - - - + + + + + + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + - - - + + + - - - + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - + + + + + + + + - + - + - - - - - - - + + + + + + - - - - - - - - - + + + + + + - - - - - - - - + + + + + + + + - - - + + + - - - + + + - - - + + + - - + + + + - - - + + + - - - + + + - + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - + + + + + + + + - + - + + + + - - - - - + + + + + - - - - - - + + + + + + - - - - - - - - + + + + + + + + - - - - - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - + + + + - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - + + + + + - - - - - - + + + + + + - - - - - - - - + + + + + + + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - + + + + + + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - + - - - - - - - - + + + + + + + + - + - + + + + - - - - - - + + + + + - - - - - - + + + + + + - - - - - - - - + + + + + + + + - - - + + + - - + + + + + + + - + - - - - - - - - + + + + + + + + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - + + + + + - - - - - - + + + + + + - - - - - - - - + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - - - + + + - - - + + + - - - + + + - + + + + + + + + + + + + + + + + + - - - - - - - - + + + + + + + + - + - - - - - - + + + + - - - - - - + + + + + - - - - - - + + + + + + - - - - - - - - + + + + + + + + - - + + - - - + + + - + + + + + + + + + + + - - - - - - - - + + + + + + + + - + - + + + + - - - - - + + + + + - - - + + + - - + + - - - + + + - - - - + + + + - - + + - - - - - - - - + + + - + - - - - + + + + - - - + + + - + - - - - - - - - - - - - - - - - - - - - + + + + + + - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - + - - - - - - - - + + + + + + + + - + - - - - - - - - + + + - - - + + + - - + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + + + + - - - + + + - - - + + + - + + + + + + - - - - + + + + - - - + + + - + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + - - + + - + - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - + + + - - - + + + - - - + + + - - - - - - - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - - - - - - - + + + - + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + - + - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -