Index: tcl/8.4/win32-x86/Garuda1.0/Garuda.dll ================================================================== --- tcl/8.4/win32-x86/Garuda1.0/Garuda.dll +++ tcl/8.4/win32-x86/Garuda1.0/Garuda.dll cannot compute difference between binary files Index: tcl/8.4/win32-x86/Garuda1.0/Garuda.dll.asc ================================================================== --- tcl/8.4/win32-x86/Garuda1.0/Garuda.dll.asc +++ tcl/8.4/win32-x86/Garuda1.0/Garuda.dll.asc @@ -1,18 +1,18 @@ -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 Comment: Eagle Package Repository -iQIcBAABCAAGBQJYAbNgAAoJEFAslq9JXcLZeP4P/3F6JMaeNrkCRnxyxu2KHLcH -AoiR6AUMSq5WCg99a1hW0eIg+DZ4LNqSsxlF8Er/+vf36ySIgKSUnisZLucg+A3x -5I6Vsie6fskCMUZ401eTf9t1sDSA5s9wpmF+wC9sNIGI6p7yr+Kazp3h3lz6yBLc -o4zRbgFnAelwtyAzx3KPCIyduqHwVnAN09jvjJQVArXbNdrHIdDm7/2X2XBFnQEY -If5ai0rv9MBbtHmH8aM/1xGRJOzZgcaJPJ7xSbheGCgkMrPlcpFVSDxdxyGGcIlj -vxGop5dt7f6UDlLcEKQsqFfBnZ2EeNRaxC7DVK/YtoxWtH/EYaLi7dmmnbL1aOwB -6NFPAaNnLysCWE+W9BeOA5KbDzcnZGcsDG6VbLpE9dBM8tr72n/KT4EXmXBFTcwf -J6rt5EFQowR+s8p5NjOAugfyTBvSkrJCMV9MWJwV/HFL+jWUAdPVOYFFLOdyVZkB -dUM5P4yHW/JI/S1lFFHfWgoaX7+lXZrMJAFAgPowgPaWIEgCk23nsT+u6g/62RSd -twqUoiwAr8N5V0OVcW8f7Ar9UwIueqbZzX1AwkLGluo6e7YULCE/uUDDp3nHFTpN -7wL+6smKIltB1XqvoxDF57E3cKwlPS6RKHRL/Jtk6fyqY0ytxNnL8RmusqegO7ZE -03LkdmUkQKrCXobLL9N0 -=+sU5 +iQIcBAABCAAGBQJYHke4AAoJEFAslq9JXcLZOsoP/RuN+mN8tuf7oSMJIsuRP8zt +/fvI/9avl8IqUhe8Z5NOx5SEMCBkpJn9WFB+goGYCs8F1BK2FHzYsk/RkaiL3swk +4hfJO+miUOqak1p8q/mTsJHkAaIxebMxRm78/ZN8Zh9m5q/4xBuVV52jVmyDaDd2 +1Jihu8E0pBSl4G65HnAyiBEPV0EQiQAJz2fuHoDfsg0tHoLYR+UJbPhpqVO9Q5to +T9ZHNjJLb8ReI5TUHk/sfBYMHx595R0wzXF2DTMO8H52O8pqTFHJzYyi0jtLLEfn +UFxEiVueDVKCjNEvi83xWm/jO2pU1W/6TnPnjpj3fyLw7Ve/I1whZx1uM8kKSxjp +uRkHT/w9zof3c68r1neg0oOwBKMLIL4gbHOeaPwvvEqC9diNuM9LR6JhyqFMU60C +VSvYKjfD7cBc/81MMZSJ2jAh8/RKL8lp7P1zK2S5V2dp1jAWIymIYdDBfePhsmwK +X4C5DreYpK60Stpxjo+xwu5m84vNQCsCSBKZ1mpsZLh04uWjQxBlu/0eYwPxewT5 +xpqD4nWrv4R3jyzzUIi2+qZuIPt4z+6CfeDvMgjO9Da0waV/bXgw/FMFinYLtRBI +YaI4iVdaW1H+MsDoeb8ww+pWFE62IrXNRjtLjMTH5wKtpf+ugccZrfnnEpJFcy24 +I7JB1IhJpO5fa3suHLfv +=k0mL -----END PGP SIGNATURE----- Index: tcl/8.4/win32-x86/Garuda1.0/Tests/all.tcl ================================================================== --- tcl/8.4/win32-x86/Garuda1.0/Tests/all.tcl +++ tcl/8.4/win32-x86/Garuda1.0/Tests/all.tcl @@ -460,10 +460,11 @@ variable testPackageName variable testPackagePlatforms variable testPackageVersion variable testSuiteFileName variable useEnvironment + variable useLibrary variable useRegistry variable useRelativePath variable verbose # @@ -649,11 +650,12 @@ # # NOTE: Attempt to require the package being tested now. This should # end up sourcing the "helper.tcl" file, which must also provide # us with the "envVars", "rootRegistryKeyName", "useEnvironment", - # "useRegistry", and "useRelativePath" Tcl variables that we need. + # "useLibrary", "useRegistry", and "useRelativePath" Tcl variables + # that we need. # if {$verbose} then { catch { set caller [maybeFullName [lindex [info level 0] 0]] @@ -720,10 +722,14 @@ if {$useRegistry} then { eval lappendUnique testSuiteDirectories [getRegistryPathList \ $rootRegistryKeyName Path] } + + if {$useLibrary} then { + eval lappendUnique testSuiteDirectories [getLibraryPathList] + } if {$verbose} then { catch { set caller [maybeFullName [lindex [info level 0] 0]] Index: tcl/8.4/win32-x86/Garuda1.0/Tests/all.tcl.asc ================================================================== --- tcl/8.4/win32-x86/Garuda1.0/Tests/all.tcl.asc +++ tcl/8.4/win32-x86/Garuda1.0/Tests/all.tcl.asc @@ -1,18 +1,18 @@ -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 Comment: Eagle Package Repository -iQIcBAABCAAGBQJYAbN7AAoJEFAslq9JXcLZ1rYP/j6OcmcXCyBJCIPm5LUqlD8v -nXh38eeIK9/9q0I4Cj9qZwEveEcgVx3sT5gfCt8TuSLjIIl8YaQRcF4RxVIJGYrr -7/eBC2rnQoOIaKfnuxS3pEGP6u8qUOQGXTAJB15V3VaR6/cBgUhsfFIFPLBxBpOp -xl3y9jmexhaSJncn1M2QGp6OQEdcjL5KRTSbtQN+VAFuq+S2WN1gwByRsadMC/zM -ACdiMAcgoDa3YE0Sn8gurwHc3VWfB9afmybRdAq1w2c6Nnde9Y2tgcXrEjLC8kEu -Q9XJiz3+V712nI8EDg4XMOSLK0Ip2gtrQfflCzebJvpIINTwuVw+CRWuNaNBJNfA -Ru++51Hj1VjRMEe5KWnZbC6jnfuX+i6gI9oZDeqVnRfdiIu4nfbj7rQpaap+0XOG -Xg4kCcFoJBLo6X/QC9D7TfU0gET2OrLY+YQCNCGEP2nRbHk07IfEVmO5gGRdrLOx -ed+Ig7Iq7ObP2ANcfxNtk/+zXTvouOtLPWcvoTbCr0HByUIrmPvHGVD1kQwfUsqY -XbwEEvRFpObfvXwXb8iuyiuNof4QdQ0PhRu4hLz52hWSLaaQokHHdoqNz7EVe3zo -GAWULeQ9u6vzKsMppSIUZnksJ+UcTiMOqWQYiqWteFgLUk1sh3ARtuxCsxlcMr0i -UXcn7D5EIeDm9+/CLNNg -=/RQz +iQIcBAABCAAGBQJYHkfCAAoJEFAslq9JXcLZmJMP/3QXndKpA/lBhAWC77PCemDo +2JMrmXTe5WjuIkK5CFb4b6Vb8ULpqX1aRzgs4WuBCxIgyyU6v0XOHoRbaXPpobXn +ZUquU/+y+fYlhSxWaCmq0es6RM5Zuu8t6hHvBPFc1dHN+1LjFAivKEVl/aZgGnsU +QDeUCdvTtL1AQPdiHmlQSp35j/sN01/7Rl6ANUw4VtDEqm+qfYAo5BDhGO+M2RV1 +awcYI1cHkEK565d2GcBJQt7z2dAJiJ2u5zJ4LyBaaaBpppFaQwj2neGA/z00km0c +4bcKtyAQNFKV0gDoE9FH0GUN13WZGsj0sKs63cXXcbpYbJM1PlAYvZAPG5xAGQxN +2VRfEDbtNkilHawFfUQMP5lNLBm0gpc/l3BLtkZgMMx9HN71mdFKEj9MT9ia3e0t +PgVPHvt6vXBBojmn7aBKF/+1g3nREP1Nr16rAynooer1S+bFjmjfyAT3eNIMyg7B +z285/pixIyVJf8NqX3bEGMGzO3kd2JmU+aU14hI9nF5Mf8vF1UBevvLPhTLHvrCM +S1uaWQ+OXEBS0yfgvf1jn2j/I1wftRf9PxkIrSw2DbCjyRwRHFwGRrekh2K8EAlu +ua7MWnqXIm0iuynKSpQqHnk8OiCaqTBYASAGPTvr/sm22SpXSznwmcCSwYhB4Ff+ +CbvkZLKRcFTNfgLA1E3h +=s7yt -----END PGP SIGNATURE----- ADDED tcl/8.4/win32-x86/Garuda1.0/dotnet.tcl Index: tcl/8.4/win32-x86/Garuda1.0/dotnet.tcl ================================================================== --- tcl/8.4/win32-x86/Garuda1.0/dotnet.tcl +++ tcl/8.4/win32-x86/Garuda1.0/dotnet.tcl @@ -0,0 +1,98 @@ +############################################################################### +# +# dotnet.tcl -- Eagle Package for Tcl (Garuda) +# +# Extensible Adaptable Generalized Logic Engine (Eagle) +# Package Loading Helper File (Secondary) +# +# Copyright (c) 2007-2012 by Joe Mistachkin. All rights reserved. +# +# See the file "license.terms" for information on usage and redistribution of +# this file, and for a DISCLAIMER OF ALL WARRANTIES. +# +# RCS: @(#) $Id: $ +# +############################################################################### + +if {![package vsatisfies [package provide Tcl] 8.4]} then { + error "need Tcl 8.4 or higher" +} + +if {[catch {package present Eagle}] == 0} then { + error "need native Tcl" +} + +############################################################################### + +namespace eval ::Garuda { + ############################################################################# + #**************************** SHARED PROCEDURES ***************************** + ############################################################################# + + # + # NOTE: Also defined in and used by "helper.tcl". + # + proc fileNormalize { path {force false} } { + variable noNormalize + + if {$force || !$noNormalize} then { + return [file normalize $path] + } + + return $path + } + + ############################################################################# + #********************* PACKAGE VARIABLE SETUP PROCEDURE ********************* + ############################################################################# + + proc setupDotnetVariables { directory } { + ########################################################################### + #************* NATIVE PACKAGE GENERAL CONFIGURATION VARIABLES ************* + ########################################################################### + + # + # NOTE: For this package, the CLR is not started (by default). Later, + # the [garuda clrstart] sub-command can be used to start the CLR. + # + variable startClr; # DEFAULT: false + + if {![info exists startClr]} then { + set startClr false + } + + # + # NOTE: For this package, the bridge is not built (by default). Later, + # the [garuda startup] sub-command can be used to build the bridge. + # + variable startBridge; # DEFAULT: false + + if {![info exists startBridge]} then { + set startBridge false + } + } + + ############################################################################# + #***************************** PACKAGE STARTUP ****************************** + ############################################################################# + + # + # NOTE: Next, save the package path for later use. + # + variable packagePath + + if {![info exists packagePath]} then { + set packagePath [fileNormalize [file dirname [info script]] true] + } + + # + # NOTE: Next, setup the script variables associated with this package. + # + setupDotnetVariables $packagePath + + # + # NOTE: Now that the startup parameters have been overridden, call into + # the normal package loading script. + # + uplevel 1 [list source [file join $packagePath helper.tcl]] +} ADDED tcl/8.4/win32-x86/Garuda1.0/dotnet.tcl.asc Index: tcl/8.4/win32-x86/Garuda1.0/dotnet.tcl.asc ================================================================== --- tcl/8.4/win32-x86/Garuda1.0/dotnet.tcl.asc +++ tcl/8.4/win32-x86/Garuda1.0/dotnet.tcl.asc @@ -0,0 +1,18 @@ +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v2 +Comment: Eagle Package Repository + +iQIcBAABCAAGBQJYHkfUAAoJEFAslq9JXcLZ804QAL06jaQ3FBEYEupItJeRolHz +0s4QHRueoru4DUMLoSwCEsJE3SphtKaQBI9Sp0THguDeLEx0hKYQ82tjDbntMgIy +cDs3KOpRwMs0TKNcbQWbu8VAPrUyYnoAbAwgEBsbY4JjOlZf/ooZC2WMFe0PoC/d +A+hIAXVx/xAKxQ9Tpg73AdUJB4WX9uvy+85RDzQnh8axWNfUWJ7TzevoaEuVnlDW +fZ3ijY5xp1iFmmY9NJYvH5TcYpsRxzags5J8lSHT6jK+v4LghH8LCKnax5JGYAU3 +JqZFGK/ktZZDAKzGxJMRE1FNkP1ZKkB1lMBSE85mQAmX2sUIohMDzA1t0CgTv94E +Ae0A7aA6NKwVQqIZulJUimY6ldmRpOuJEgg0wIMID7RmpZJHw8/JTCANh46unCyO +L1esx40BmKf4KEHgG/BF5L81e3E2n7GbT/e7m3BgwrjpHcg36lILl7/XKkKE9p1N +bFSShsr3ms2j6BVRpmqydRCGOPof2DW3Su3K5mATePaF/AUII5hWE5hzYe5vKgpA +EB/vriJtckgVmayWI2aKK45H9R70WTNzWs8FJyl2dZ9OpZp/0nYGRzXPvwktQPgJ +XMAV+C4nDkpYRWhvnRc43SzsdMEDTOukK0/K47scMvHfO8TDyvy1h7aGcO73gfuu +nP0gAzTO2UyCNAsxiBHS +=WoFZ +-----END PGP SIGNATURE----- Index: tcl/8.4/win32-x86/Garuda1.0/helper.tcl ================================================================== --- tcl/8.4/win32-x86/Garuda1.0/helper.tcl +++ tcl/8.4/win32-x86/Garuda1.0/helper.tcl @@ -1,11 +1,11 @@ ############################################################################### # # helper.tcl -- Eagle Package for Tcl (Garuda) # # Extensible Adaptable Generalized Logic Engine (Eagle) -# Package Loading Helper File +# Package Loading Helper File (Primary) # # Copyright (c) 2007-2012 by Joe Mistachkin. All rights reserved. # # See the file "license.terms" for information on usage and redistribution of # this file, and for a DISCLAIMER OF ALL WARRANTIES. @@ -65,10 +65,13 @@ } return $command } + # + # NOTE: Also defined in and used by "dotnet.tcl". + # proc fileNormalize { path {force false} } { variable noNormalize if {$force || !$noNormalize} then { return [file normalize $path] @@ -581,10 +584,87 @@ } } return $result } + + proc getLibraryPathList {} { + # + # NOTE: Grab the list of volumes mounted on the local machine. + # + set volumes [file volumes] + + # + # NOTE: If there are no volumes, the search loop in this procedure will + # not work correctly; therefore, just return an empty list in that + # case. + # + if {[llength $volumes] == 0} then { + return [list] + } + + # + # TODO: Start out with an empty list of candidate paths. Then, use the + # Tcl core script library path as the basis for searching for the + # Eagle CLR assembly directory. In the future, additional script + # library paths may need to be added here. + # + set result [list] + + foreach directory [list [info library]] { + # + # NOTE: The directory name cannot be an empty string. In addition, + # it cannot be the root of any volume, because that condition + # is used to mark the end of the search; however, within the + # loop body itself, the internal calls to [file dirname] MAY + # refer to the root of a volume (i.e. when joining candidate + # directory names with it). + # + while {[string length $directory] > 0 && \ + [lsearch -exact $volumes $directory] == -1} { + set path [file join $directory Eagle bin] + + if {[isValidDirectory $path] || [isValidFile $path]} then { + lappend result $path + } + + set path [file join $directory bin] + + if {[isValidDirectory $path] || [isValidFile $path]} then { + lappend result $path + } + + set path [file join $directory Eagle] + + if {[isValidDirectory $path] || [isValidFile $path]} then { + lappend result $path + } + + set path [file join [file dirname $directory] Eagle bin] + + if {[isValidDirectory $path] || [isValidFile $path]} then { + lappend result $path + } + + set path [file join [file dirname $directory] bin] + + if {[isValidDirectory $path] || [isValidFile $path]} then { + lappend result $path + } + + set path [file join [file dirname $directory] Eagle] + + if {[isValidDirectory $path] || [isValidFile $path]} then { + lappend result $path + } + + set directory [file dirname $directory] + } + } + + return $result + } proc getRelativePathList { directories configurations } { set result [list] foreach directory $directories { @@ -944,10 +1024,20 @@ if {![info exists methodFlags]} then { set methodFlags 0x0 } + # + # NOTE: Load the CLR immediately upon loading the package? This is used + # by the code in the CLR assembly manager contained in this package. + # + variable loadClr; # DEFAULT: true + + if {![info exists loadClr]} then { + set loadClr true + } + # # NOTE: Start the CLR immediately upon loading the package? This is used # by the code in the CLR assembly manager contained in this package. # variable startClr; # DEFAULT: true @@ -1215,10 +1305,20 @@ if {![info exists useRegistry]} then { set useRegistry true } + # + # NOTE: Use the various Tcl script library directories when searching for + # the Eagle CLR assembly? + # + variable useLibrary; # DEFAULT: true + + if {![info exists useLibrary]} then { + set useLibrary true + } + # # NOTE: The registry key where all the versions of Eagle installed on this # machine (via the setup) can be found. # variable rootRegistryKeyName; # DEFAULT: HKEY_LOCAL_MACHINE\Software\Eagle @@ -1241,10 +1341,11 @@ variable logCommand variable packageBinaryFileName variable packageName variable rootRegistryKeyName variable useEnvironment + variable useLibrary variable useRegistry variable useRelativePath variable verbose if {[info exists assemblyPath]} then { @@ -1281,10 +1382,14 @@ if {$useRegistry} then { eval lappendUnique directories [getRegistryPathList \ $rootRegistryKeyName Path] } + + if {$useLibrary} then { + eval lappendUnique directories [getLibraryPathList] + } if {$verbose} then { catch { set caller [maybeFullName [lindex [info level 0] 0]] @@ -1366,10 +1471,12 @@ namespace eval :: [list namespace import -force ::${namespace}::haveEagle] # # NOTE: Next, save the package path for later use. # + variable packagePath + if {![info exists packagePath]} then { set packagePath [fileNormalize [file dirname [info script]] true] } # Index: tcl/8.4/win32-x86/Garuda1.0/helper.tcl.asc ================================================================== --- tcl/8.4/win32-x86/Garuda1.0/helper.tcl.asc +++ tcl/8.4/win32-x86/Garuda1.0/helper.tcl.asc @@ -1,18 +1,18 @@ -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 Comment: Eagle Package Repository -iQIcBAABCAAGBQJYAbNkAAoJEFAslq9JXcLZKg4P/RMXnLSMHWnKmrn7szC5zIRL -xokIX2xOq8efJgrqo/G/EBlEzZe04iqhVRDdlFcTecGwKSkztCqQo1eTjBxxXf7e -Wen5LilE99VdbZHkdTgxX+EL4rwx3s0kaXdktglIb0xmiJptuJHsRbwpXQtl/Afa -wScDZ8pRGMCm23S/uztw2HL7mR5j1IFdiA0jgIb71hPjbwz07Qf53WpwVunFkZI6 -YfR14Q0Ytdr0PSRTVfaYSU5CCoTXKgqBOkeGXv94w/kN4H4y/JVDv0QHa7Ih/xHU -D+0LSpfq+Suxy0KcEKQ25S/2gHQZPm+CrlZZZFaXxUGjT6BenpGaSaoSDTVlrb76 -EeTQENMjJcpQdLYFKvsD6DCRpvhe9SN1XE2J4nxGj5hvkp0SNoCwQsAJzWEm6pox -hnfBWMNOGDdtI8rZJu4ujYCllqbGOUsAMV3W53U9nx4VXefJ0sPdi1eVTm+dsxB5 -Q/Sj+LxOVwoOc9Tpk9gJMT4NjtJlf4Jjxe/rppc5cBtLdOSprPyBpdPvEBhcp4ve -xoyONuI4S29/TE81Vb5xWjon0AJOfniVgRhF97EoNOQAc28dWLUzwX/0HOIFOZil -872DtCQa66KrOG83wwmR/DpUt6pDbPHFtxF1nOKE9LvypmYxXIcfQ+0oVCgT2/gt -xmwHFJetulqa6p28hPn1 -=I5E0 +iQIcBAABCAAGBQJYHkfJAAoJEFAslq9JXcLZyTUQAMV0hWZy/I+Va3JUtRFRXA8I +k4mdkoUf4rP3XH6pj0dLaa7dFMxtc+D2v6gMZN6HU+Lm4l05E7f+7Uvew1Y1kGOO +Aya5Rt8YIcPY29VlNA/q+e++JTWBPR5kAHZ7AwxjAfOL1zI8fEX3GIcfofFLrC2Z +llpFcQy5nu7PhZgFygUwa+BYNA69fFl7snbMcsI9DLfR/eGqGu2nCq4TPdYgJ8Vc +RKbOUa4Rj8VtNi3Gb5+eLSBddHdl6l+qB3gMyQjl5khhONlMYoAhY2VgSFCu7zbH +pHrwPuzALwwpSNzQRUEwDz9xZI+vHt3eAONfMj1uqKkyU7RZdp9U6/q+jj5Db9vA +t8TnR2JuGYcHqJ0RaMSC2EzecFx5I2wXmWecwDHagL5TCaKI+KRgjUNgGCWuPrNk +UrBMSfJWncJGVt1DhytoczupumsY/91v+8HI7B9usv8yBE+xp1c6WIYbNTq4qeLK +dB55TZ5jYXnIQYDEdTLWk7G01EVybKOQSY1tCQK9xCA1PTAv6f7gTGkX68+QtkT0 +6/P4sszZRlWi/+OI7uNJ6bfZnlrFjgrFLjihL1DzAEzg2vaFLteJI7TzeRExsSjs +0Hd1mnlKBhaptefvj8TXZB5JSM+tc3gv6mrAIOmKJxtzy3btlYInI4aTVFIVtHw7 +XBk7c+Bg9lILOKTThOrN +=P/A1 -----END PGP SIGNATURE----- Index: tcl/8.4/win32-x86/Garuda1.0/pkgIndex.tcl ================================================================== --- tcl/8.4/win32-x86/Garuda1.0/pkgIndex.tcl +++ tcl/8.4/win32-x86/Garuda1.0/pkgIndex.tcl @@ -15,7 +15,10 @@ ############################################################################### if {![package vsatisfies [package provide Tcl] 8.4]} then {return} if {[string length [package provide Eagle]] > 0} then {return} +package ifneeded dotnet 1.0 \ + [list source [file join $dir dotnet.tcl]] + package ifneeded Garuda 1.0 \ [list source [file join $dir helper.tcl]] Index: tcl/8.4/win32-x86/Garuda1.0/pkgIndex.tcl.asc ================================================================== --- tcl/8.4/win32-x86/Garuda1.0/pkgIndex.tcl.asc +++ tcl/8.4/win32-x86/Garuda1.0/pkgIndex.tcl.asc @@ -1,18 +1,18 @@ -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 Comment: Eagle Package Repository -iQIcBAABCAAGBQJYAbNtAAoJEFAslq9JXcLZYuAP/RCSxh/WgVsBXu/U1shJNUGS -A9ysrUxJZ/JOxpusyw90xWOt2IB7Z/n5xA8AXg1M+l/zbmPwKWOzDOESVXrq+OAh -+U9nlpaXzFD+s4KWy5Vcijsba3d9b/DAAIuoNet9sQhGtKPDAgBS7zP42nELrER/ -SpPySSGjgPsI9AZKWwTiUrsoSplSZZjjbId4MUbhNOHVS3UwCEb2CmZPNFkmfhQ2 -oRtBLt0eXpvVACGn+MiH9aNAUYTJMdxj93cOUmC/oQ5uC7Ut617EodThMbeLUae3 -FOeba/P8E7z2hrG5JxpZ0kqykCd2TxTxriU5d9VBJmNbqAgFxhfxcWmBfBbEv0SI -HTm/HG2CcohCRbQtQX3GPlq3RDSlcvkK3DATUiE3f0dzHlzSrCeG6XwXj5qKPAtb -F1pW8RwVnOWHI9EZlZt1IUuTUhJKsA1Cb3pDejjeDRF21lJ24sHGYDagoNxTkxRx -+htvIkEBMPzotSr4tZREPKircnz4CbIHICdmV286VgTg+Ik+Fapev4LqFGfc0Mzk -LQ3dzV+YKE9b2idMrVliUFXs8vD5xiFSBS6tn4WnH4s3Kowtp4Js2VOPAwaemKdg -6fOoes7dqZ8hZ2AiSTc5WVaWlDI1lS6GQqAOcAqukFgbRbH+xZET3ZqX+eTmzABN -00DL1R115XUb3VZMR7Lg -=5tfL +iQIcBAABCAAGBQJYHkfNAAoJEFAslq9JXcLZ6QgP/ioarzyTOK9OLkfqhtND/EWa +3DO127WL8Pw5CBgsDvUXShfSYA6jDvNxsp+u63wMr4Snzkr3ZQFoCyf4nnx0+f3H +7chgplksTyPSH5baZXFL9wVq8wGJX73/Kl8C6cTdwqaMXR2AsDODqKlb4w9FG7Qv +1hIo/o7WPyEk8r/ijXKuDY3VKrdb/+TpwtfDObmOHZV5qGUw7WQe2IVon33IPZS1 +CDUltRb3pKQhx4qTGKE1rvD0B26uFv0ojjD9y25mOqOfFsqD5uvbbpVdKjGkrRCZ +6VklRHWDn0HKSOyuCqM/XFM7b/SdZu2JeAFFu42KUoXZDIEb6ECwfV9tBDAu//Y/ +X1QngifMZxXaKG5QBdpH5MVhUCYWK9WzStis/AoBZjQQtiizEX6M3Hgr94KhNbvB +tjGhst/Ihxz3sphIwTGInNuFXBgSmjxOA4mfcgF8Kvbiw1UoxKkfbiyzmWcNHoOI +WjUg9flnFw3jQzQuip+GDP68WmknJ1AyQK2AEXbKaPdH9GtS1zUrTWzOpwOQ/srV +PMGL89lHSNOQPMvwMpTS3if6hvFOJFPARCGAie3LwkmHnhkE9zyoQw+xcUgvWBNH +xbr5Eg+wmsEgkYK105ZlDPUYK1cz9Y5kGL0QALEFkGlNPII0IyyrjSHdVqXo69az +l0SQeZpafqjvkTHYqaTC +=6kIs -----END PGP SIGNATURE-----