nsupported url type \"$proto\""
    }
    set old $urlTypes($proto)
    unset urlTypes($proto)
    return $old
}

# http::config --
#
#	See documentation for details.
#
# Arguments:
#	args		Options parsed by the procedure.
# Results:
#        TODO

proc http::config {args} {
    variable http
    set options [lsort [array names http -*]]
    set usage [join $options ", "]
    if {[llength $args] == 0} {
	set result {}
	foreach name $options {
	    lappend result $name $http($name)
	}
	return $result
    }
    set options [string map {- ""} $options]
    set pat ^-([join $options |])$
    if {[llength $args] == 1} {
	set flag [lindex $args 0]
	if {[regexp -- $pat $flag]} {
	    return $http($flag)
	} else {
	    return -code error "Unknown option $flag, must be: $usage"
	}
    } else {
	foreach {flag value} $args {
	    if {[regexp -- $pat $flag]} {
		set http($flag) $value
	    } else {
		return -code error "Unknown option $flag, must be: $usage"
	    }
	}
    }
}

# http::Finish --
#
#	Clean up the socket and eval close time callbacks
#
# Arguments:
#	token	    Connection token.
#	errormsg    (optional) If set, forces status to error.
#       skipCB      (optional) If set, don't call the -command callback. This
#                   is useful when geturl wants to throw an exception instead
#                   of calling the callback. That way, the same error isn't
#                   reported to two places.
#
# Side Effects:
#        Closes the socket

proc http::Finish { token {errormsg ""} {skipCB 0}} {
    variable $token
    upvar 0 $token state
    global errorInfo errorCode
    if {[string length $errormsg] != 0} {
	set state(error) [list $errormsg $errorInfo $errorCode]
	set state(status) error
    }
    catch {close $state(sock)}
    catch {after cancel $state(after)}
    if {[info exists state(-command)] && !$skipCB} {
	if {[catch {eval $state(-command) {$token}} err]} {
	    if {[string length $errormsg] == 0} {
		set state(error) [list $err $errorInfo $errorCode]
		set state(status) error
	    }
	}
	if {[info exists state(-command)]} {
	    # Command callback may already have unset our state
	    unset state(-command)
	}
    }
}

# http::reset --
#
#	See documentation for details.
#
# Arguments:
#	token	Connection token.
#	why	Status info.
#
# Side Effects:
#       See Finish

proc http::reset { token {why reset} } {
    variable $token
    upvar 0 $token state
    set state(status) $why
    catch {fileevent $state(sock) readable {}}
    catch {fileevent $state(sock) writable {}}
    Finish $token
    if {[info exists state(error)]} {
	set errorlist $state(error)
	unset state
	eval ::error $errorlist
    }
}

# http::geturl --
#
#	Establishes a connection to a remote url via http.
#
# Arguments:
#       url		The http URL to goget.
#       args		Option value pairs. Valid options include:
#				-blocksize, -validate, -headers, -timeout
# Results:
#	Returns a token for this connection. This token is the name of an array
#	that the caller should unset to garbage collect the state.

proc http::geturl { url args } {
    variable http
    variable urlTypes
    variable defaultCharset
    variable strict

    # Initialize the state variable, an array. We'll return the name of this
    # array as the token for the transaction.

    if {![info exists http(uid)]} {
	set http(uid) 0
    }
    set token [namespace current]::[incr http(uid)]
    variable $token
    upvar 0 $token state
    reset $token

    # Process command options.

    array set state {
	-binary		false
	-blocksize 	8192
	-queryblocksize 8192
	-validate 	0
	-headers 	{}
	-timeout 	0
	-type           application/x-www-form-urlencoded
	-queryprogress	{}
	state		header
	meta		{}
	coding		{}
	currentsize	0
	totalsize	0
	querylength	0
	queryoffset	0
        type            text/html
        body            {}
	status		""
	http            ""
    }
    # These flags have their types verified [Bug 811170]
    array set type {
	-binary		boolean
	-blocksize	integer
	-queryblocksize integer
	-validate	boolean
	-timeout	integer
    }
    set state(charset)	$defaultCharset
    set options {-binary -blocksize -channel -command -handler -headers \
	    -progress -query -queryblocksize -querychannel -queryprogress\
	    -validate -timeout -type}
    set usage [join $options ", "]
    set options [string map {- ""} $options]
    set pat ^-([join $options |])$
    foreach {flag value} $args {
	if {[regexp $pat $flag]} {
	    # Validate numbers
	    if {[info exists type($flag)] && \
		    ![string is $type($flag) -strict $value]} {
		unset $token
		return -code error "Bad value for $flag ($value), must be $type($flag)"
	    }
	    set state($flag) $value
	} else {
	    unset $token
	    return -code error "Unknown option $flag, can be: $usage"
	}
    }

    # Make sure -query and -querychannel aren't both specified

    set isQueryChannel [info exists state(-querychannel)]
    set isQuery [info exists state(-query)]
    if {$isQuery && $isQueryChannel} {
	unset $token
	return -code error "Can't combine -query and -querychannel options!"
    }

    # Validate URL, determine the server host and port, and check proxy case
    # Recognize user:pass@host URLs also, although we do not do anything with
    # that info yet.

    # URLs have basically four parts.
    # First, before the colon, is the protocol scheme (e.g. http)
    # Second, for HTTP-like protocols, is the authority
    #	The authority is preceded by // and lasts up to (but not including)
    #	the following / and it identifies up to four parts, of which only one,
    #	the host, is required (if an authority is present at all). All other
    #	parts of the authority (user name, password, port number) are optional.
    # Third is the resource name, which is split into two parts at a ?
    #	The first part (from the single "/" up to "?") is the path, and the
    #	second part (from that "?" up to "#") is the query. *HOWEVER*, we do
    #	not need to separate them; we send the whole lot to the server.
    # Fourth is the fragment identifier, which is everything after the first
    #	"#" in the URL. The fragment identifier MUST NOT be sent to the server
    #	and indeed, we don't bother to validate it (it could be an error to
    #	pass it in here, but it's cheap to strip).
    #
    # An example of a URL that has all the parts:
    #   http://jschmoe:xyzzy@www.bogus.net:8000/foo/bar.tml?q=foo#changes
    # The "http" is the protocol, the user is "jschmoe", the password is
    # "xyzzy", the host is "www.bogus.net", the port is "8000", the path is
    # "/foo/bar.tml", the query is "q=foo", and the fragment is "changes".
    #
    # Note that the RE actually combines the user and password parts, as
    # recommended in RFC 3986. Indeed, that RFC states that putting passwords
    # in URLs is a Really Bad Idea, something with which I would agree utterly.
    # Also note that we do not currently support IPv6 addresses.
    #
    # From a validation perspective, we need to ensure that the parts of the
    # URL that are going to the server are correctly encoded.
    # This is only done if $::http::strict is true (default 0 for compat).

    set URLmatcher {(?x)		# this is _expanded_ syntax
	^
	(?: (\w+) : ) ?			# <protocol scheme>
	(?: //
	    (?:
		(
		    [^@/\#?]+		# <userinfo part of authority>
		) @
	    )?
	    ( [^/:\#?]+ )		# <host part of authority>
	    (?: : (\d+) )?		# <port part of authority>
	)?
	( / [^\#?]* (?: \? [^\#?]* )?)?	# <path> (including query)
	(?: \# (.*) )?			# <fragment>
	$
    }

    # Phase one: parse
    if {![regexp -- $URLmatcher $url -> proto user host port srvurl]} {
	unset $token
	return -code error "Unsupported URL: $url"
    }
    # Phase two: validate
    if {$host eq ""} {
	# Caller has to provide a host name; we do not have a "default host"
	# that would enable us to handle relative URLs.
	unset $token
	return -code error "Missing host part: $url"
	# Note that we don't check the hostname for validity here; if it's
	# invalid, we'll simply fail to resolve it later on.
    }
    if {$port ne "" && $port>65535} {
	unset $token
	return -code error "Invalid port number: $port"
    }
    # The user identification and resource identification parts of the URL can
    # have encoded characters in them; take care!
    if {$user ne ""} {
	# Check for validity according to RFC 3986, Appendix A
	set validityRE {(?xi)
	    ^
	    (?: [-\w.~!$&'()*+,;=:] | %[0-9a-f][0-9a-f] )+
	    $
	}
	if {$strict && ![regexp -- $validityRE $user]} {
	    unset $token
	    # Provide a better error message in this error case
	    if {[regexp {(?i)%(?![0-9a-f][0-9a-f]).?.?} $user bad]} {
		return -code error \
			"Illegal encoding character usage \"$bad\" in URL user"
	    }
	    return -code error "Illegal characters in URL user"
	}
    }
    if {$srvurl ne ""} {
	# Check for validity according to RFC 3986, Appendix A
	set validityRE {(?xi)
	    ^
	    # Path part (already must start with / character)
	    (?:	      [-\w.~!$&'()*+,;=:@/]  | %[0-9a-f][0-9a-f] )*
	    # Query part (optional, permits ? characters)
	    (?: \? (?: [-\w.~!$&'()*+,;=:@/?] | %[0-9a-f][0-9a-f] )* )?
	    $
	}
	if {$strict && ![regexp -- $validityRE $srvurl]}ʼ��˼��̼��ͼ��μ��ϼ��м��Ѽ��Ҽ��Ӽ��Լ��ռ��ּ��׼��ؼ��ټ��ڼ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� {
	    unset $token
	    # Provide a better error message in this error case
	    if {[regexp {(?i)%(?![0-9a-f][0-9a-f])..} $srvurl bad]} {
		return -code error \
			"Illegal encoding character usage \"$bad\" in URL path"
	    }
	    return -code error "Illegal characters in URL path"
	}
    } else {
	set srvurl /
    }
    if {[string length $proto] == 0} {
	set proto http
    }
    if {![info exists urlTypes($proto)]} {
	unset $token
	return -code error "Unsupported URL type \"$proto\""
    }
    set defport [lindex $urlTypes($proto) 0]
    set defcmd [lindex $urlTypes($proto) 1]

    if {[string length $port] == 0} {
	set port $defport
    }
    if {![catch {$http(-proxyfilter) $host} proxy]} {
	set phost [lindex $proxy 0]
	set pport [lindex $proxy 1]
    }

    # OK, now reassemble into a full URL
    set url ${proto}://
    if {$user ne ""} {
	append url $user
	append url @
    }
    append url $host
    if {$port != $defport} {
	append url : $port
    }
    append url $srvurl
    # Don't append the fragment!
    set state(url) $url

    # If a timeout is specified we set up the after event and arrange for an
    # asynchronous socket connection.

    if {$state(-timeout) > 0} {
	set state(after) [after $state(-timeout) \
		[list http::reset $token timeout]]
	set async -async
    } else {
	set async ""
    }

    # If we are using the proxy, we must pass in the full URL that includes
    # the server name.

    if {[info exists phost] && [string length $phost]} {
	set srvurl $url
	set conStat [catch {eval $defcmd $async {$phost $pport}} s]
    } else {
	set conStat [catch {eval $defcmd $async {$host $port}} s]
    }

    if {$conStat} {
	# Something went wrong while trying to establish the connection. Clean
	# up after events and such, but DON'T call the command callback (if
	# available) because we're going to throw an exception from here
	# instead.
	Finish $token "" 1
	cleanup $token
	return -code error $s
    }
    set state(sock) $s

    # Wait for the connection to complete.

    if {$state(-timeout) > 0} {
	fileevent $s writable [list http::Connect $token]
	http::wait $token

	if {![info exists state]} {
	    # If we timed out then Finish has been called and the users
	    # command callback may have cleaned up the token. If so
	    # we end up here with nothing left to do.
	    return $token
	} else {
	    if {$state(status) eq "error"} {
		# Something went wrong while trying to establish the connection.
		# Clean up after events and such, but DON'T call the command
		# callback (if available) because we're going to throw an
		# exception from here instead.
		set err [lindex $state(error) 0]
		cleanup $token
		return -code error $err
	    } elseif {$state(status) ne "connect"} {
		# Likely to be connection timeout
		return $token
	    }
	    set state(status) ""
	}
    }

    # Send data in cr-lf format, but accept any line terminators

    fconfigure $s -translation {auto crlf} -buffersize $state(-blocksize)

    # The following is disallowed in safe interpreters, but the socket is
    # already in non-blocking mode in that case.

    catch {fconfigure $s -blocking off}
    set how GET
    if {$isQuery} {
	set state(querylength) [string length $state(-query)]
	if {$state(querylength) > 0} {
	    set how POST
	    set contDone 0
	} else {
	    # There's no query data.
	    unset state(-query)
	    set isQuery 0
	}
    } elseif {$state(-validate)} {
	set how HEAD
    } elseif {$isQueryChannel} {
	set how POST
	# The query channel must be blocking for the async Write to
	# work properly.
	fconfigure $state(-querychannel) -blocking 1 -translation binary
	set contDone 0
    }

    if {[catch {
	puts $s "$how $srvurl HTTP/1.0"
	puts $s "Accept: $http(-accept)"
	if {$port == $defport} {
	    # Don't add port in this case, to handle broken servers. [Bug
	    # 504508]
	    puts $s "Host: $host"
	} else {
	    puts $s "Host: $host:$port"
	}
	puts $s "User-Agent: $http(-useragent)"
	foreach {key value} $state(-headers) {
	    set value [string map [list \n "" \r ""] $value]
	    set key [string trim $key]
	    if {$key eq "Content-Length"} {
		set contDone 1
		set state(querylength) $value
	    }
	    if {[string length $key]} {
		puts $s "$key: $value"
	    }
	}
	if {$isQueryChannel && $state(querylength) == 0} {
	    # Try to determine size of data in channel. If we cannot seek, the
	    # surrounding catch will trap us

	    set start [tell $state(-querychannel)]
	    seek $state(-querychannel) 0 end
	    set state(querylength) \
		    [expr {[tell $state(-querychannel)] - $start}]
	    seek $state(-querychannel) $start
	}

	# Flush the request header and set up the fileevent that will either
	# push the POST data or read the response.
	#
	# fileevent note:
	#
	# It is possible to have both the read and write fileevents active at
	# this point. The only scenario it seems to affect is a server that
	# closes the connection without reading the POST data. (e.g., early
	# versions TclHttpd in various error cases). Depending on the platform,
	# the client may or may not be able to get the response from the server
	# because of the error it will get trying to write the post data.
	# Having both fileevents active changes the timing and the behavior,
	# but no two platforms (among Solaris, Linux, and NT) behave the same,
	# and none behave all that well in any case. Servers should always read
	# their POST data if they expect the client to read their response.

	if {$isQuery || $isQueryChannel} {
	    puts $s "Content-Type: $state(-type)"
	    if {!$contDone} {
		puts $s "Content-Length: $state(querylength)"
	    }
	    puts $s ""
	    fconfigure $s -translation {auto binary}
	    fileevent $s writable [list http::Write $token]
	} else {
	    puts $s ""
	    flush $s
	    fileevent $s readable [list http::Event $token]
	}

	if {! [info exists state(-command)]} {
	    # geturl does EVERYTHING asynchronously, so if the user calls it
	    # synchronously, we just do a wait here.

	    wait $token
	    if {$state(status) eq "error"} {
		# Something went wrong, so throw the exception, and the
		# enclosing catch will do cleanup.
		return -code error [lindex $state(error) 0]
	    }
	}
    } err]} {
	# The socket probably was never connected, or the connection dropped
	# later.

	# Clean up after events and such, but DON'T call the command callback
	# (if available) because we're going to throw an exception from here
	# instead.

	# if state(status) is error, it means someone's already called Finish
	# to do the above-described clean up.
	if {$state(status) ne "error"} {
	    Finish $token $err 1
	}
	cleanup $token
	return -code error $err
    }

    return $token
}

# Data access functions:
# Data - the URL data
# Status - the transaction status: ok, reset, eof, timeout
# Code - the HTTP transaction code, e.g., 200
# Size - the size of the URL data

proc http::data {token} {
    variable $token
    upvar 0 $token state
    return $state(body)
}
proc http::status {token} {
    if {![info exists $token]} { return "error" }    
    variable $token
    upvar 0 $token state
    return $state(status)
}
proc http::code {token} {
    variable $token
    upvar 0 $token state
    return $state(http)
}
proc http::ncode {token} {
    variable $token
    upvar 0 $token state
    if {[regexp {[0-9]{3}} $state(http) numeric_code]} {
	return $numeric_code
    } else {
	return $state(http)
    }
}
proc http::size {token} {
    variable $token
    upvar 0 $token state
    return $state(currentsize)
}
proc http::meta {token} {
    variable $token
    upvar 0 $token state
    return $state(meta)
}
proc http::error {token} {
    variable $token
    upvar 0 $token state
    if {[info exists state(error)]} {
	return $state(error)
    }
    return ""
}

# http::cleanup
#
#	Garbage collect the state associated with a transaction
#
# Arguments
#	token	The token returned from http::geturl
#
# Side Effects
#	unsets the state array

proc http::cleanup {token} {
    variable $token
    upvar 0 $token state
    if {[info exists state]} {
	unset state
    }
}

# http::Connect
#
#	This callback is made when an asyncronous connection completes.
#
# Arguments
#	token	The token returned from http::geturl
#
# Side Effects
#	Sets the status of the connection, which unblocks
# 	the waiting geturl call

proc http::Connect {token} {
    variable $token
    upvar 0 $token state
    global errorInfo errorCode
    if {[eof $state(sock)] ||
	[string length [fconfigure $state(sock) -error]]} {
	    Finish $token "connect failed [fconfigure $state(sock) -error]" 1
    } else {
	set state(status) connect
	fileevent $state(sock) writable {}
    }
    return
}

# http::Write
#
#	Write POST query data to the socket
#
# Arguments
#	token	The token for the connection
#
# Side Effects
#	Write the socket and handle callbacks.

proc http::Write {token} {
    variable $token
    upvar 0 $token state
    set s $state(sock)

    # Output a block.  Tcl will buffer this if the socket blocks
    set done 0
    if {[catch {
	# Catch I/O errors on dead sockets

	if {[info exists state(-query)]} {
	    # Chop up large query strings so queryprogress callback can give
	    # smooth feedback.

	    puts -nonewline $s \
		    [string range $state(-query) $state(queryoffset) \
		    [expr {$state(queryoffset) + $state(-queryblocksize) - 1}]]
	    incr state(queryoffset) $state(-queryblocksize)
	    if {$state(queryoffset) >= $state(querylength)} {
		set state(queryoffset) $state(querylength)
		set done 1
	    }
	} else {
	    # Copy blocks from the query channel

	    set outStr [read $state(-querychannel) $state(-queryblocksize)]
	    puts -nonewline $s $outStr
	    incr state(queryoffset) [string length $outStr]
	    if {[eof $state(-querychannel)]} {
		set done 1
	    }
	}
    } err]} {
	# Do not call Finish here, but instead let the read half of the socket
	# process whatever server reply there is to get.

	set state(posterror) $err
	set done 1
    }
    if {$done} {
	catch {flush $s}
	fileevent $s writable {}
	fileevent $s readable [list http::Event $token]
    }

    # Callback to the client after we've completely handled everything.

    if {[string length $state(-queryprogress)]} {
	eval $state(-queryprogress) [list $token $state(querylength)\
		$state(queryoffset)]
    }
}

# http::Event
#
#	Handle input on the socket
#
# Arguments
#	token	The token returned from http::geturl
#
# Side Effects
#	Read the socket and handle callbacks.

proc http::Event {token} {
    variable $token
    upvar 0 $token state
    set s $state(sock)

    if {$state(state) eq "header"} {
	if {[catch {gets $s line} n]} {
	    return [Finish $token $n]
	} elseif {$n == 0} {
	    variable encodings
	    set state(state) body
	    if {$state(-binary) || ![string match -nocase text* $state(type)]
		    || [string match *gzip* $state(coding)]
		    || [string match *compress* $state(coding)]} {
		# Turn off conversions for non-text data
		fconfigure $s -translation binary
		if {[info exists state(-channel)]} {
		    fconfigure $state(-channel) -translation binary
		}
	    } else {
		# If we are getting text, set the incoming channel's encoding
		# correctly. iso8859-1 is the RFC default, but this could be
		# any IANA charset. However, we only know how to convert what
		# we have encodings for.
		set idx [lsearch -exact $encodings \
			[string tolower $state(charset)]]
		if {$idx >= 0} {
		    fconfigure $s -encoding [lindex $encodings $idx]
		}
	    }
	    if {[info exists state(-channel)] && \
		    ![info exists state(-handler)]} {
		# Initiate a sequence of background fcopies
		fileevent $s readable {}
		CopyStart $s $token
		return
	    }
	} elseif {$n > 0} {
	    if {[regexp -nocase {^content-type:(.+)$} $line x type]} {
		set state(type) [string trim $type]
		# grab the optional charset information
		regexp -nocase {charset\s*=\s*(\S+)} $type x state(charset)
	    }
	    if {[regexp -nocase {^content-length:(.+)$} $line x length]} {
		set state(totalsize) [string trim $length]
	    }
	    if {[regexp -nocase {^content-encoding:(.+)$} $line x coding]} {
		set state(coding) [string trim $coding]
	    }
	    if {[regexp -nocase {^([^:]+):(.+)$} $line x key value]} {
		lappend state(meta) $key [string trim $value]
	    } elseif {[string match HTTP* $line]} {
		set state(http) $line
	    }
	}
    } else {
	if {[catch {
	    if {[info exists state(-handler)]} {
		set n [eval $state(-handler) {$s $token}]
	    } else {
		set block [read $s $state(-blocksize)]
		set n [string length $block]
		if {$n >= 0} {
		    append state(body) $block
		}
	    }
	    if {$n >= 0} {
		incr state(currentsize) $n
	    }
	} err]} {
	    return [Finish $token $err]
	} else {
	    if {[info exists state(-progress)]} {
		eval $state(-progress) \
			{$token $state(totalsize) $state(currentsize)}
	    }
	}
    }

    if {[eof $s]} {
	Eof $token
	return
    }
}

# http::CopyStart
#
#	Error handling wrapper around fcopy
#
# Arguments
#	s	The socket to copy from
#	token	The token returned from http::geturl
#
# Side Effects
#	This closes the connection upon error

proc http::CopyStart {s token} {
    variable $token
    upvar 0 $token state
    if {[catch {
	fcopy $s $state(-channel) -size $state(-blocksize) -command \
	    [list http::CopyDone $token]
    } err]} {
	Finish $token $err
    }
}

# http::CopyDone
#
#	fcopy completion callback
#
# Arguments
#	token	The token returned from http::geturl
#	count	The amount transfered
#
# Side Effects
#	Invokes callbacks

proc http::CopyDone {token count {error {}}} {
    variable $token
    upvar 0 $token state
    set s $state(sock)
    incr state(currentsize) $count
    if {[info exists state(-progress)]} {
	eval $state(-progress) {$token $state(totalsize) $state(currentsize)}
    }
    # At this point the token may have been reset
    if {[string length $error]} {
	Finish $token $error
    } elseif {[catch {eof $s} iseof] || $iseof} {
	Eof $token
    } else {
	CopyStart $s $token
    }
}

# http::Eof
#
#	Handle eof on the socket
#
# Arguments
#	token	The token returned from http::geturl
#
# Side Effects
#	Clean up the socket

proc http::Eof {token} {
    variable $token
    upvar 0 $token state
    if {$state(state) eq "header"} {
	# Premature eof
	set state(status) eof
    } else {
	set state(status) ok
    }
    set state(state) eof
    Finish $token
}

# http::wait --
#
#	See documentation for details.
#
# Arguments:
#	token	Connection token.
#
# Results:
#        The status after the wait.

proc http::wait {token} {
    variable $token
    upvar 0 $token state

    if {![info exists state(status)] || [string length $state(status)] == 0} {
	# We must wait on the original variable name, not the upvar alias
	vwait $token\(status)
    }

    return [status $token]
}

# http::formatQuery --
#
#	See documentation for details. Call http::formatQuery with an even
#	number of arguments, where the first is a name, the second is a value,
#	the third is another name, and so on.
#
# Arguments:
#	args	A list of name-value pairs.
#
# Results:
#	TODO

proc http::formatQuery {args} {
    set result ""
    set sep ""
    foreach i $args {
	append result $sep [mapReply $i]
	if {$sep eq "="} {
	    set sep &
	} else {
	    set sep =
	}
    }
    return $result
}

# http::mapReply --
#
#	Do x-www-urlencoded character mapping
#
# Arguments:
#	string	The string the needs to be encoded
#
# Results:
#       The encoded string

proc http::mapReply {string} {
    variable http
    variable formMap

    # The spec says: "non-alphanumeric characters are replaced by '%HH'". Use
    # a pre-computed map and [string map] to do the conversion (much faster
    # than [regsub]/[subst]). [Bug 1020491]

    if {$http(-urlencoding) ne ""} {
	set string [encoding convertto $http(-urlencoding) $string]
	return [string map $formMap $string]
    }
    set converted [string map $formMap $string]
    if {[string match "*\[\u0100-\uffff\]*" $converted]} {
	regexp {[\u0100-\uffff]} $converted badChar
	# Return this error message for maximum compatability... :^/
	return -code error \
	    "can't read \"formMap($badChar)\": no such element in array"
    }
    return $converted
}

# http::ProxyRequired --
#	Default proxy filter.
#
# Arguments:
#	host	The destination host
#
# Results:
#       The current proxy settings

proc http::ProxyRequired {host} {
    variable http
    if {[info exists http(-proxyhost)] && [string length $http(-proxyhost)]} {
	if {![info exists http(-proxyport)] || \
		![string length $http(-proxyport)]} {
	    set http(-proxyport) 8080
	}
	return [list $http(-proxyhost) $http(-proxyport)]
    }
}

# Local variables:
# indent-tabs-mode: t
# End:
������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* 
 * tclAppInit.c --
 *
 *	Provides a default version of the main program and Tcl_AppInit
 *	procedure for Tcl applications (without Tk).
 *
 * Copyright (c) 1993 The Regents of the University of California.
 * Copyright (c) 1994-1997 Sun Microsystems, Inc.
 * Copyright (c) 1998-1999 by Scriptics Corporation.
 *
 * See the file "license.terms" for information on usage and redistribution
 * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
 *
 * RCS: @(#) $Id: tclAppInit.c,v 1.11 2002/05/31 22:20:22 dgp Exp $
 */

#include "tcl.h"

#ifdef TCL_TEST

#include "tclInt.h"

extern int		Procbodytest_Init _ANSI_ARGS_((Tcl_Interp *interp));
extern int		Procbodytest_SafeInit _ANSI_ARGS_((Tcl_Interp *interp));
extern int		TclObjTest_Init _ANSI_ARGS_((Tcl_Interp *interp));
extern int		Tcltest_Init _ANSI_ARGS_((Tcl_Interp *interp));
#ifdef TCL_THREADS
extern int		TclThread_Init _ANSI_ARGS_((Tcl_Interp *interp));
#endif

#endif /* TCL_TEST */

#ifdef TCL_XT_TEST
extern void		XtToolkitInitialize _ANSI_ARGS_((void));
extern int		Tclxttest_Init _ANSI_ARGS_((Tcl_Interp *interp));
#endif

/*
 *----------------------------------------------------------------------
 *
 * main --
 *
 *	This is the main program for the application.
 *
 * Results:
 *	None: Tcl_Main never returns here, so this procedure never
 *	returns either.
 *
 * Side effects:
 *	Whatever the application does.
 *
 *----------------------------------------------------------------------
 */

int
main(argc, argv)
    int argc;			/* Number of command-line arguments. */
    char **argv;		/* Values of command-line arguments. */
{
    /*
     * The following #if block allows you to change the AppInit
     * function by using a #define of TCL_LOCAL_APPINIT instead
     * of rewriting this entire file.  The #if checks for that
     * #define and uses Tcl_AppInit if it doesn't exist.
     */

#ifndef TCL_LOCAL_APPINIT
#define TCL_LOCAL_APPINIT Tcl_AppInit    
#endif
    extern int TCL_LOCAL_APPINIT _ANSI_ARGS_((Tcl_Interp *interp));

    /*
     * The following #if block allows you to change how Tcl finds the startup
     * script, prime the library or encoding paths, fiddle with the argv,
     * etc., without needing to rewrite Tcl_Main()
     */

#ifdef TCL_LOCAL_MAIN_HOOK
    extern int TCL_LOCAL_MAIN_HOOK _ANSI_ARGS_((int *argc, char ***argv));
#endif

#ifdef TCL_XT_TEST
    XtToolkitInitialize();
#endif

#ifdef TCL_LOCAL_MAIN_HOOK
    TCL_LOCAL_MAIN_HOOK(&argc, &argv);
#endif

    Tcl_Main(argc, argv, TCL_LOCAL_APPINIT);

    return 0;			/* Needed only to prevent compiler warning. */
}

/*
 *----------------------------------------------------------------------
 *
 * Tcl_AppInit --
 *
 *	This procedure performs application-specific initialization.
 *	Most applications, especially those that incorporate additional
 *	packages, will have their own version of this procedure.
 *
 * Results:
 *	Returns a standard Tcl completion code, and leaves an error
 *	message in the interp's result if an error occurs.
 *
 * Side effects:
 *	Depends on the startup script.
 *
 *----------------------------------------------------------------------
 */

int
Tcl_AppInit(interp)
    Tcl_Interp *interp;		/* Interpreter for application. */
{
    if (Tcl_Init(interp) == TCL_ERROR) {
	return TCL_ERROR;
    }

#ifdef TCL_TEST
#ifdef TCL_XT_TEST
     if (Tclxttest_Init(interp) == TCL_ERROR) {
	 return TCL_ERROR;
     }
#endif
    if (Tcltest_Init(interp) == TCL_ERROR) {
	return TCL_ERROR;
    }
    Tcl_StaticPackage(interp, "Tcltest", Tcltest_Init,
            (Tcl_PackageInitProc *) NULL);
    if (TclObjTest_Init(interp) == TCL_ERROR) {
	return TCL_ERROR;
    }
#ifdef TCL_THREADS
    if (TclThread_Init(interp) == TCL_ERROR) {
	return TCL_ERROR;
    }
#endif
    if (Procbodytest_Init(interp) == TCL_ERROR) {
	return TCL_ERROR;
    }
    Tcl_StaticPackage(interp, "procbodytest", Procbodytest_Init,
            Procbodytest_SafeInit);
#endif /* TCL_TEST */

    /*
     * Call the init procedures for included packages.  Each call should
     * look like this:
     *
     * if (Mod_Init(interp) == TCL_ERROR) {
     *     return TCL_ERROR;
     * }
     *
     * where "Mod" is the name of the module.
     */

    /*
     * Call Tcl_CreateCommand for application-specific commands, if
     * they weren't already created by the init procedures called above.
     */

    /*
     * Specify a user-specific startup file to invoke if the application
     * is run interactively.  Typically the startup file is "~/.apprc"
     * where "app" is the name of the application.  If this line is deleted
     * then no user-specific startup file will be run under any conditions.
     */

#ifdef DJGPP
    Tcl_SetVar(interp, "tcl_rcFileName", "~/tclsh.rc", TCL_GLOBAL_ONLY);
#else
    Tcl_SetVar(interp, "tcl_rcFileName", "~/.tclshrc", TCL_GLOBAL_ONLY);
#endif
    return TCL_OK;
}
����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������%���.���Ä-���..��%��èi486-unknown-linux-uclibc�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������%���.���%���..��%��è4.3.5���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������%���.���%���..��%���
crtbegin.o��%���	crtendS.o���%���libgcc_eh.a�%���crtprec32.o�%���libgcc.a%���
install-tools���#%���	libgcov.a���$%���include�<%���
include-fixed���R%���fincludeS%���crtprec80.o�T%���crtbeginS.o�U%���crtend.oV%���crtbeginT.o�W%���
crtfastmath.o���X%��Àcrtprec64.o�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ELF����������������������”������4�����(���U‰åSƒì€=�����uH¸����-����ÁøXÿë
@£���ÿ…����¡���9Ørê¸����…Àtƒìh����èüÿÿÿƒÄÆ����‹]üÉÃU‰åƒìè����ZÂ���¸����…ÀtRj�h���h����èüÿÿÿƒÄƒ=�����t¸����…Àt
ƒìh����ÿЃÄÉÃ������ÿÿÿÿÿÿÿÿèüÿÿÿèY����GCC: (Buildroot 2011.02) 4.3.5��.symtab�.strtab�.shstrtab�.rel.text�.data�.bss�.ctors�.dtors�.eh_frame�.jcr�.rel.fini�.rel.init�.comment�.note.GNU-stack������������������������������������������������������4���®���������������������	�����������8�����������������%�������������ä���������������������+�������������è��� ������������������0�������������è���������������������7�������������ì���������������������>�������������ð����������������������H�������������ð����������������������Q�������������ð���������������������M���	�����������È��������	���������[�������������õ���������������������W���	�����������Ð�����������������a������0�������ú��� �����������������j���������������������������������������������������z��������������������������������d��À��������������	��������������$�����������������������������������������������ñÿ��������������������������������������������������������������������������������������������������������������(���������������������������;�������������H�������������^������������m������������������������	�{���]���������‡����������������������������������������������������
�“������������ �������������­����������� ���Ë��������������á����������� ���ý����������� ����crtstuff.c�__CTOR_LIST__�__DTOR_LIST__�__EH_FRAME_BEGIN__�__JCR_LIST__�__do_global_dtors_aux�completed.5145�dtor_idx.5147�frame_dummy�object.5167�__dso_handle�__DTOR_END__�__deregister_frame_info_bases�_GLOBAL_OFFSET_TABLE_�__register_frame_info_bases�_Jv_RegisterClasses����	���������������$�����+�����0�����9�����E���	��J�����S�����k���
��p�����|��������	��†����������—�����£�������������������������������������������������������ELF����������������������������4�����(��
�U‰åVSè����[Ã���³üÿÿÿëÿЃî‹ƒøÿuô[^]Ã�������������������èüÿÿÿ�GCC: (Buildroot 2011.02) 4.3.5��.symtab�.strtab�.shstrtab�.rel.text�.data�.bss�.ctors�.dtors�.eh_frame�.jcr�.rel.init�.comment�.note.GNU-stack���������������������������������������������������������4���)���������������������	����������������������������%�������������`����������������������+�������������`����������������������0�������������`���������������������7�������������d���������������������>�������������h���������������������H�������������l���������������������Q�������������p���������������������M���	�����������$��������	���������W������0�������u��� �����������������`��������������•������������������������������������•���p��������������������������������ˆ�� ��������������	��������������¨��l����������������������������������������������ñÿ����������������������������������������������������������������������������������������������������������������������������'�������������3��������������������������	�����������������������������I������������V���������������crtstuff.c�__CTOR_END__�__FRAME_END__�__JCR_END__�__do_global_ctors_aux�__DTOR_END__�_GLOBAL_OFFSET_TABLE_�
���
�����	�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������!<arch>
/               1326314985  0     0     0       952       `
���%��P��P��P��P��P��P��P��P��P��P��P��P��P��P��P��P��P��P��òÄ��òÄ��òÄ��òÄ��òÄ��òÄ��òÄ��òÄ��òÄ��òÄ�“l�“l�“l�“l�“l�“l�¤À�ÍÜ�ÍÜ_Unwind_GetCFA�_Unwind_GetIP�_Unwind_GetIPInfo�_Unwind_SetIP�_Unwind_GetLanguageSpecificData�_Unwind_GetRegionStart�_Unwind_GetDataRelBase�_Unwind_GetTextRelBase�_Unwind_DeleteException�_Unwind_SetGR�_Unwind_GetGR�_Unwind_FindEnclosingFunction�_Unwind_Backtrace�__frame_state_for�_Unwind_Resume�_Unwind_ForcedUnwind�_Unwind_RaiseException�_Unwind_Resume_or_Rethrow�__register_frame_info_bases�__register_frame_info�__register_frame_info_table_bases�__register_frame_info_table�__register_frame_table�__register_frame�_Unwind_Find_FDE�__deregister_frame_info_bases�__deregister_frame_info�__deregister_frame�__gnat_default_lock�__gnat_default_unlock�__gnat_install_locks�__gthread_active_p�__gthread_mutex_lock�__gthread_mutex_unlock�__gcc_personality_v0�__emutls_register_common�__emutls_get_address�//                                              24        `
unwind-dw2-fde-glibc.o/
unwind-dw2.o/   1326314882  500   100   100644  60984     `
ELF����������������������,±������4�����(���U‰åWVƒì‰Ç‰Uô1É1öŠG¶Â‰EðƒàÓà	ƃÁ„Òxéƒùw
öEð@tƒÈÿÓà	Æ‹Eô‰0‰øZY^_]ÃU‰å‹E‹@H]ÃU‰å‹E‹@L]ÃU‰å‹M‹A`Áè‹U‰‹AL]ÃU‰å‹U‹E‰PL]ÃU‰å‹E‹@P]ÃU‰å‹E‹@\]ÃU‰å‹E‹@X]ÃU‰å‹E‹@T]ÃU‰åƒì‹U‹B…Àt
QQRjÿЃÄÉÃU‰åWVSƒì,è����[Ã���‹uˆU׶҉UØ€}×ÿt`ƒâpƒú t&…Òt2ƒú…É���ë'ƒú@tƒúPtƒú0…´���ë‹@Të‹@Xë‹@\‰EÜëÇEÜ����€}×PuFƒàü‹‰MЍpé¯���ÇEÜ����‰uà‹E؃àƒøwk‹„ƒ����Øÿà‹‰EÐëJ1ÿÇEÐ����ŠF‰Ðƒà‰ùÓà	EЃÇ„Òxêë=Uð‰ðè^þÿÿ‰Æ‹Eð‰EÐë)·ë¿‰UЃÆ닉MЃÆ닉EЃÆëèüÿÿÿƒ}Ð�t$ƒeØpƒ}Øu‹Uà‰UÜ‹MÜMЀ}×�y‹EЋ�‰EЋE‹UЉ‰ðƒÄ,[^_]ÃU‰åSƒìè����[Ã���‰Áƒú
€¼���tèüÿÿÿÆDl‹E‰‘X[]ÃU‰åVSè����[Ã���‹U‹E‹uƒø%ŠŒ���öBc@t€|l�t‰4‚ë‹‚€ùu‰0ëèüÿÿÿ[^]ÃU‰åVSƒìè����[Ã���‹M‹Uƒú&Š„���ˆE÷‹4‘öAc@t	‰ð€|l�u€}÷u‹ëèüÿÿÿƒÄ[^]ÃU‰åWVSì<��è����[Ã���‰Ç‰•Ðþÿÿ‹E‰…èþÿÿÇ…Ôþÿÿ���E艅ÌþÿÿéÀ��Š¶ðG< ‡Ã���<ƒg��<„��wa<
„S��w#<„K��w<ë)<„-��<	…��é%��<
„6��w<„!��<…n��é��<„!��<…Y��é��<„ú��w#<„¹��‚"��<„Ê��<…,��éù��<„Ç��‡‰��<„��<…	��é3��<Ow2<0sn<'w<$ƒ`��<"†X��é‹��<.‡q��<)ƒC��ép��<„Ø���w
<o†¶���éå���<”„W��w
<’…¥��éâ���<–„ƒ��<ñ…��ëƒî0éT��G¶QQÿµÌþÿÿP‹Eè;üÿÿ‰Ç‹uèër¶7ë¾7Gé(��·7ë¿7ƒÇé��‹7ƒÇé��‹7ƒÇé��1ö1ÉŠG‰ÐƒàÓà	ƃÁ„Òxíéè��Uì‰øèûÿÿ‰Ç‹uìéÔ��PPF°Pÿuèüÿÿÿ‰ÆƒÄé¼��1ö1ÉŠG‰ÐƒàÓà	ƃÁ„ÒxíPPVëҍUð‰øèËúÿÿ‰ÇPPFPë&1ö1ÉŠG‰ÐƒàÓà	ƃÁ„ÒxíUð‰øè úÿÿ‰ÇPPVÿuèüÿÿÿ‰Æuð듃½Ôþÿÿ�„|��‹•Ôþÿÿ‹´•äþÿÿé8��ƒ½Ôþÿÿ�„]��ÿÔþÿÿé=��¶‰Uð‹…ÔþÿÿH9=��G)Ћ´…èþÿÿéü��ƒ½ÔþÿÿŽ!��‹Ôþÿÿ‹´àþÿÿéÝ��ƒ½ÔþÿÿŽ��‹ÔþÿÿI‹´èþÿÿ‹•Ôþÿÿƒê‹„•èþÿÿ‰„èþÿÿ‰´•èþÿÿé¼��ƒ½ÔþÿÿŽÄ��‹µÔþÿÿN‰µàþÿÿ‹„µèþÿÿ‰…Øþÿÿ‹Ôþÿÿƒé‹µÔþÿÿƒî‹”µèþÿÿ‰•Èþÿÿ‹”èþÿÿ‹…àþÿÿ‰”…èþÿÿ‹…Èþÿÿ‰„èþÿÿ‹•Øþÿÿ‰”µèþÿÿéC��ƒ½Ôþÿÿ�„K��ÿÔþÿÿ‹Ôþÿÿ‹´èþÿÿ<thw<tM<…&��ëJ<#tb<”t
< …��ëMŠG<t"w
þÈ…��ë<t<…ó��ë¶6é·��·6é¯��‹6é¨��‰ðÁø1Æ)Æéš��÷Þé“��÷ÖéŒ��Ç…Üþÿÿ����1ÉŠG‰ÐƒàÓà	…ÜþÿÿƒÁ„ÒxéµÜþÿÿé^��ƒ½ÔþÿÿŽƒ��ƒ­Ôþÿÿ‹µÔþÿÿ‹´µèþÿÿ‰µÈþÿÿ‹•Ôþÿÿ‹Œ•ìþÿÿƒè<‡Q��¶À‹„ƒ4���Øÿà‹µÈþÿÿ!Îé��‹…Èþÿÿ™÷ù‰Æéô���‹µÈþÿÿ)Îéç���‹…Èþÿÿ™÷ù‰Öé×���‹µÈþÿÿ¯ñéÉ���‹µÈþÿÿ	Îé¼���‹…Èþÿÿ4é®���‹µÈþÿÿÓæé¡���‹µÈþÿÿÓîé”���‹µÈþÿÿÓþé‡���‹µÈþÿÿ1Îë};ÈþÿÿžÀë5;ÈþÿÿÀë*;Èþÿÿ”Àë;ÈþÿÿœÀë;ÈþÿÿŸÀë	;Èþÿÿ•À¶ðë8¿‰Eð|ëIƒ½Ôþÿÿ�tUÿÔþÿÿ¿‰EðƒÇ‹•Ôþÿÿƒ¼•èþÿÿ�t!Ç냽Ôþÿÿ?w)‹Ôþÿÿ‰´èþÿÿA‰Ôþÿÿ;½Ðþÿÿ‚4úÿÿƒ½Ôþÿÿ�uèüÿÿÿ‹µÔþÿÿ‹„µäþÿÿeô[^_]ÃU‰åSƒìè����[Ã���‹M€»���u
‰ö@c@uë	èüÿÿÿÆ@p�‰HX[]ÃU‰åWVSì¬���è����[Ã���‰…Tÿÿÿ‰•Pÿÿÿ½pÿÿÿ¹ ���‰Æó¥öEÓ@t	E€€}à�u‹E€…Àuƒì‹…Tÿÿÿ‹PH…pÿÿÿMðQècÿÿÿƒÄ‹•TÿÿÿöBc@tÆBp�‹…TÿÿÿÇ@����‹•Pÿÿÿ‹‚ ���ƒøtƒø…Œ���ë*VV‹…Pÿÿÿÿ°˜���…pÿÿÿPèüÿÿÿ‹•Pÿÿÿ‹’”���Ðë8‹…Pÿÿÿ‹°œ���1ÿ1ÉŠF‰ÐƒàÓà	ǃÁ„ÒxíQQ>j�…pÿÿÿP‰ðè•øÿÿ‰…XÿÿÿƒÄ‹…Xÿÿÿ‹•Tÿÿÿ‰BH1ÿ•pÿÿÿ‰•Lÿÿÿëèüÿÿÿ‹•Pÿÿÿ‹DúHƒø‡5��‹„ƒˆ���Øÿà‹•Pÿÿÿ‹ú‹•TÿÿÿöBc@tÆD:l�…XÿÿÿéŠ���‹•Pÿÿÿ‹ú€|Ü�tRRPÿµLÿÿÿèüÿÿÿéÐ���‹„…pÿÿÿëM‹…Pÿÿÿ‹4øÇ…\ÿÿÿ����1ÉŠF‰ÐƒàÓà	…\ÿÿÿƒÁ„ÒxéPP‹…\ÿÿÿÿµXÿÿÿÿµLÿÿÿ‰ðè®÷ÿÿƒÄ‹•TÿÿÿöBc@tÆD:l�‹•Tÿÿÿ‰ºëpƒì‹…Xÿÿÿ‹•PÿÿÿúëK‹…Pÿÿÿ‹4øÇ…`ÿÿÿ����1ÉŠF‰ÐƒàÓà	…`ÿÿÿƒÁ„ÒxéQQ‹…`ÿÿÿÿµXÿÿÿÿµLÿÿÿ‰ðè1÷ÿÿZP‰ú‹…TÿÿÿèLöÿÿƒÄGƒÿ…­þÿÿ‹•Pÿÿÿ€º»����t‹…TÿÿÿH`���€ë
‹•Tÿÿÿb`ÿÿÿeô[^_]ÃU‰åWV‰Æ‰×è=ýÿÿPPÿ·´���Vèüÿÿÿ‰FLƒÄeø^_]ÃU‰åè����YÁ���Ɓ���Ɓ���Ɓ���Ɓ���Ɓ
���Ɓ���Ɓ	���Ɓ���Ɓ���Ɓ���Ɓ���Ɓ���Ɓ���Ɓ���Ɓ
���Ɓ���]ÃU‰åSƒìè����[Ã���EðP‹EHPèüÿÿÿƒÄ1Ò…Àt‹Uø‰Ð‹]üÉÃU‰åWVSƒìLè����[Ã���‰E¨‰UÀ‹EÇ€�������ÇEÈ����Uð‰U°éB��‹E¨Š�ˆEÏÿE¨¶À‰ÂâÀ���ƒú@uƒà?‹U¯‚°���‰‚¤���é��ú€���u@ƒà?‰EÄ1ÿ1É‹u¨ŠF‰u¨‰ÐƒàÓà	ǃÁ„Òxç‹E¯¸¬���‹UÄÇDÐ���‰<ÐéÄ��úÀ���uƒà?‹MÇDÁ����é©��€}Ï/‡š��‹„ƒœ���ØÿàPP‹u¶–¸���EìPÿu¨‹Eèãòÿÿ‰E¨‹E쉆¤���ƒÄée��‹}¨¶‹U¯‚°���‰‚¤���G‰}¨éC��‹u¨·‹}¯‡°���‰‡¤���ƒÆéf��‹U¨‹‹u¯†°���‰†¤���ƒÂ‰U¨éÿ��ÇEÔ����1É‹}¨ŠG‰}¨‰ÐƒàÓà	EÔƒÁ„Òxæ1ÿ1É‹E¨Š@‰E¨‰ÐƒàÓà	ǃÁ„Òxç‹U¯º¬���‹MÔÇDÊ���éS��1ÿ1É‹u¨ŠF‰u¨‰ÐƒàÓà	ǃÁ„Òxçë1ÿ1É‹u¨ŠF‰u¨‰ÐƒàÓà	ǃÁ„Òxç‹EÇDø����éY��ÇEØ����1É‹u¨ŠF‰u¨‰ÐƒàÓà	E؃Á„Òxæ1ÿ1É‹E¨Š@‰E¨‰ÐƒàÓà	ǃÁ„Òxç‹UØ‹MÇDÑ���‰<Ñé��ƒ}È�t‹UÈ‹²���‰uÈë
ìÀ���T$ƒâð¹)���‰×‹uó¥‹E‰���éÈ��‹U‹’���‰Uй)���‹}‰Öó¥‹}ȉº���‰UÈéŸ��1ÿ1É‹E¨Š@‰E¨‰ÐƒàÓà	ǃÁ„Òxç‹U‰º˜���1ÿ1É‹u¨ŠF‰u¨‰ÐƒàÓà	ǃÁ„Òxç‹E‰¸”���ë&1ÿ1É‹u¨ŠF‰u¨‰ÐƒàÓà	ǃÁ„Òxç‹E‰¸˜���Ç€ ������é��1ÿ1É‹u¨ŠF‰u¨‰ÐƒàÓà	ǃÁ„Òxç‹E‰¸”���éñ��‹M¨‹U‰Šœ���Ç‚ ������1ÿ1É‹u¨ŠF‰u¨‰ÐƒàÓà	ǃÁ„Òxçþ‰u¨é´��1ÿ1É‹E¨Š@‰E¨‰ÐƒàÓà	ǃÁ„Òxç‹UÇDú���‹M¨‰ú1ÿ1É‹u¨ŠF‰u¨‰ÐƒàÓà	ǃÁ„Òxçë©1ÿ1É‹E¨Š@‰E¨‰ÐƒàÓà	ǃÁ„Òxç‹U°‹E¨èàîÿÿ‰E¨‹U‹‚¬���¯EðÇDú���é��1ÿ1É‹u¨ŠF‰u¨‰ÐƒàÓà	ǃÁ„Òxç‹E‰¸˜���‹U°‰ðè“îÿÿ‰E¨‹Eð‹UÇ‚ ������¯‚¬���‰‚”���éÍ��‹U°‹E¨ècîÿÿ‰E¨‹M‹¬���¯Eð‰”���é§��ÇEÜ����1É‹u¨ŠF‰u¨‰ÐƒàÓà	E܃Á„Òxæ1ÿ1É‹E¨Š@‰E¨‰ÐƒàÓà	ǃÁ„Òxç‹U¯º¬���‹MÜÇDÊ���‰<ÊéJ��1ÿ1É‹u¨ŠF‰u¨‰ÐƒàÓà	ǃÁ„Òxç‹U°‰ðèÄíÿÿ‰E¨‹U‹‚¬���¯EðÇDú���‰úé��1ÿ1É‹u¨ŠF‰u¨‰ÐƒàÓà	ǃÁ„Òxç‹EÇDø���‰4ø1ÿ1É‹u¨ŠF‰u¨‰ÐƒàÓà	ǃÁ„Òxçéøýÿÿ‹U1ÀÇ‚„������‰‚€���ƒÂƒÀƒø@uåé‘���1ÿ1É‹E¨Š@‰E¨‰ÐƒàÓà	ǃÁ„Òxç‹U‰zhëlÇEà����1É‹u¨ŠF‰u¨‰ÐƒàÓà	EàƒÁ„ÒxæÇE¬����1ÿ‹E¨Š@‰E¨‰Ðƒà‰ùÓà	E¬ƒÇ„Òxä‹}¬‹u¯¾¬���‹EàÇDÆ���÷߉<Æëèüÿÿÿ‹UÀ9U¨s‹u‹Ž¤���‹}‹G`ÁèGL9Á‚™ùÿÿeô[^_]ÃU‰åWVSƒìLè����[Ã���‰E¼‰U¨¹0���1À‰×ó«‹E¼Ç@h����Ç@P����‹PL…Ò„���QQƒÀTP‹M¼‹A`ÁèDÿPèüÿÿÿ‰EÀƒÄ…À…��‹u¼‹FLf8X¸uƒxwufxÍ€u‹FHHë.€8¸…­��x­���… ��fxÍ€…”��‹}¼‹GHˆ ���‹Q‹E¨Ç€ ������Ç€˜������‰Ð‹u¼+FH‹}¨‰‡”���ÇG���A,)ЉÇG���A )ЉGÇG���A()ЉGÇG���A$)ЉGÇG4���A)ЉG0ÇG<���A)ЉG8ÇG,���A)ЉG(ÇGD���A8)ЉG@LJ´������Ƈ»���1ÀéÓ��‹U¼‹B\‹M¨‰¤���‹EÀ+@ƒÀ‰EăÀ	‰EÜ1ÀƒÉÿ‹}Üò®÷Ñ‹UÄʍB	‰EØ‹MÄ€y	eu€y
hu‹B	‹u¨‰†¼���ƒÂ
‰U؃Á‰MÜ1öÇE¬����‹}ØŠG‰}؉Ѓà‰ñÓà	E¬ƒÆ„Òxä‹}¬‹u¨‰¾°���Uð‹EØèeêÿÿ‰E¬‹Eð‰†¬���‹EÄ€xu‹U¬¶‰†´���B‰U¬ë/ÇEÔ����1ö‹M¬ŠA‰M¬‰ÐƒàŠMÔÓà	ƃEÔ„Òxã‹}¨‰·´���‹E¨Æ€¹���ÿ1ö‹UÜ€:zu6ÇEÐ����1ö‹M¬ŠA‰M¬‰ÐƒàŠMÐÓà	ƃEЄÒxãu¬‹}¨Æ‡º���ÿEÜ‹EÜ@‰EàUì‰U°ëq<Lu‹M¬Š‹}¨ˆ‡¹���A‰M¬ëV<Ru‹U¬Š‹M¨ˆ¸���B‰U¬ë><Pu,‹E¬@‹}¬¶WWÿu°P‹E¼è3êÿÿ‰E¬‹Eì‹U¨‰‚¨���ƒÄë<Su‹M¨Æ»���ÿEà‹}àŠGÿ„Àu……öu‹u¬¸���…ö„ú���QQ‹UÄ‹Tÿu¨ÿu¼‰ðèòõÿÿ‹M¨Š¸���ƒÄ<ÿt6ƒàƒøt…Àtë!ƒøtƒøuë¸���ë¸���ë¸���ëèüÿÿÿ1À‹}ÀtGÇEÈ����‹E¨€¸º����t%ÇEÌ����1ÉŠF‰ÐƒàÓà	ẼÁ„Òxì‹UÌò‰UÈ‹M¨Š¹���<ÿt RR¶ÐEìPV‹E¼è2éÿÿ‰Æ‹Eì‹}¼‰GPƒÄƒ}È�u‰uÈPP‹UÀ‹Tÿu¨ÿu¼‹EÈèõÿÿ1ÀƒÄë¸���eô[^_]ÃU‰åWVSìÜ���è����[Ã���‰…ÿÿÿ‰Ö¹ ���1À‹½ÿÿÿó«‹E‹•ÿÿÿ‰BLÇB`���@•0ÿÿÿ‹…ÿÿÿè^ûÿÿ…Àtèüÿÿÿƒ»�����tWWƒ.��Pƒ����PèüÿÿÿƒÄ…Àty€»����upƃ���ƃ���ƃ���ƃ���ƃ
���ƃ���ƃ	���ƃ���ƃ���ƃ���ƃ���ƃ���ƃ���ƃ���ƃ
���ƃ���ƒìEðP‰ò‹…ÿÿÿè.ðÿÿÇEÐ���ÇEÈ���ÇEÄ����•0ÿÿÿ‹…ÿÿÿèAðÿÿ‹E‹½ÿÿÿ‰GLƒÄeô[^_]ÃU‰åWVì\��…xÿÿÿÿuUè™þÿÿƒÄ…¸þÿÿ‰…´þÿÿ…xÿÿÿ‹•´þÿÿè*úÿÿ‰Æ…Àtƒøu*PPÿu½xÿÿÿWÿUƒÄ…Àuƒþt‹•´þÿÿ‰øèpòÿÿ뺾���‰ðeø^_]ÃU‰åWVìÐ���‰Ç‰•,ÿÿÿ‹@‰…0ÿÿÿ‹G‰…4ÿÿÿ…8ÿÿÿ‰…(ÿÿÿ‹•(ÿÿÿ‹…,ÿÿÿè¥ùÿÿ‰Æ¸
���…öt
ƒþum¸���Qÿµ4ÿÿÿÿµ,ÿÿÿWÿwÿ7Pjÿ•0ÿÿÿƒÄ …ÀuEƒþtE‹Eà…Àt#RRÿµ,ÿÿÿWÿwÿ7j
jÿÐ‰ÆƒÄ ƒøt ƒøu‹•(ÿÿÿ‹…,ÿÿÿè¦ñÿÿérÿÿÿ¾���‰ðeø^_]ÃU‰åWVSìÌ���è����[Ã���‰…0ÿÿÿ‰×…4ÿÿÿ‰…,ÿÿÿ‹•,ÿÿÿ‰øèáøÿÿ‹WH‹0ÿÿÿ;Q”¶òÁæ…Àu?‹UÜ…Òt PPWQÿqÿ1‰ðƒÈPjÿÒƒÄ ƒøt"ƒøu…ötèüÿÿÿ‹•,ÿÿÿ‰øèñÿÿ뛸���eô[^_]ÃU‰åWVìP��‹u…xÿÿÿ‰…¬þÿÿ¹ ���1À‹½¬þÿÿó«ÇEØ���@‹E@‰Eč…¸þÿÿ‰…°þÿÿ‰Â‹…¬þÿÿè,øÿÿ…Àufƒ½Xÿÿÿt]1É‹½°þÿÿ‹DψD\<t<u	‹ωDŽëÇDŽ����AƒùuÙ‹…Lÿÿÿ‰F‹…Pÿÿÿf‰FX‹…lÿÿÿf‰FZ‹Eà‰F‹…tÿÿÿ‰Fë1ö‰ðÄP��^_]ÃU‰åWVSƒìè����[Ã���‰Eà‰UÜöBc@t
€zp�t‰ÐƒÀë‹UÜ‹B…Àuƒì‹MÜ‹QHEðP‰ÈèóìÿÿƒÄ1À‹Uà‹<‚‹MÜ‹4€|l�u$…ÿ•Â‹MÜ€|l�t„Òt€¼���u‰uì‰7ëèüÿÿÿ…öt„Òt9þt
¶Œ���ó¤@ƒøu¨‹Eàö@c@t
€xp�t‰ÂƒÂë‹Mà‹Q1À…ÒuPPjÿuÜèüÿÿÿ‹Uà+BH‹MÜAhƒÄeô[^_]ÃU‰åWVSRPì��è����[Ã���µlÿÿÿÿuU‰ðèèúÿÿ½ìþÿÿ¹ ���ó¥ƒÄ‹Eƒx�•ìþÿÿuè[ýÿÿë‹Eè„üÿÿƒøtèüÿÿÿ•ìþÿÿ…lÿÿÿèœþÿÿ‰Á‹…8ÿÿÿ‰D
‹Eì‹Uð‹]ô‹uø‹}üL
‹m�‰ÌÃU‰åWVSRPì ��…lÿÿÿ‰…äþÿÿÿuUèUúÿÿ½ìþÿÿ¹ ���‹µäþÿÿó¥‹E‹U‰B‹E‰BƒÄ½ìþÿÿ‰ú‹Eèêûÿÿƒøt‹]ô‹uø‹}üÉÉú‹…äþÿÿè�þÿÿ‰Á‹…8ÿÿÿ‰D
‹Eì‹Uð‹]ô‹uø‹}üL
‹m�‰ÌÃU‰åWVSRPìà��µlÿÿÿÿuU‰ðè½ùÿÿ½ìþÿÿ¹ ���ó¥ƒÄµ,þÿÿ…ìþÿÿ‰…$þÿÿ‰òèEõÿÿƒø„»���…À…®���‹…Ôþÿÿ…Àt&RRÿµ$þÿÿÿu‹Uÿrÿ2jjÿÐƒÄ ƒøtƒøu~…ìþÿÿ‰òèpíÿÿ띋}ÇG����‹…4ÿÿÿ‰Gµlÿÿÿ¹ ���‹½$þÿÿ󥋕$þÿÿ‹Eè§ûÿÿƒøu;…lÿÿÿ‹•$þÿÿè÷üÿÿ‰Á‹…8ÿÿÿ‰D
‹Eì‹Uð‹]ô‹uø‹}üL
‹m�‰Ìø���‹]ô‹uø‹}üÉÃU‰åWVSRPì��è����[Ã���‹Eƒx�uƒìPèüÿÿÿ‹]ô‹uø‹}üÉÃìµlÿÿÿ‰µäþÿÿÿuU‰ðèrøÿÿ½ìþÿÿ¹ ���ó¥ƒÄ½ìþÿÿ‰ú‹Eèúÿÿƒøtèüÿÿÿ‰ú‹…äþÿÿè8üÿÿ‰Á‹…8ÿÿÿ‰D
‹Eì‹Uð‹]ô‹uø‹}üL
‹m�‰ÌÃ���%��$�>���:;I��$�>��$�>�����:;��
�:;I8
��	I��
!�I/���I��&���
:;��(�
��:;��'���I��:;��'I��
�:;I8
���:;I��&�I��!�I���:;I��:;��
�:;I��
�:;I��&�I��:;���'��:;�� 
�I8
��!:;��"
�:;I8
��#
�:;I8
��$:;��%
�:;I��&
�:;I��'.�:;'I ��(.:;'I ��)�:;I��*.?:;'I ��+.?:;'I ��,�:;I��-�:;I��.4�:;I��/��0�1��1��24�:;I��34�1��4.:;' ��5.:;'I ��6���7.�:;' ��8.:;' ��9�:;I��:.:;'I@��;�:;I��<4�:;I��=.1@��>�1
��?.?:;'I@��@�:;I
��A.?:;'@��B�:;I
��C�:;I��D.:;'I@��E�:;I��F1XY��G1XY��H1XY��I1XY��J�1��KU��L4�1
��M4�1��N��O��P.:;'@��Q�:;I��R�:;I
��S.?:;'@��T4�:;I��U.?:;'I@��V4�:;I
��W
�:;��X4�:;I��Y4�:;I��Z4�:;I��[4�:;I��\U��]4�:;I
��^.:;'@��_1UXY��`.�1@��a�1XY��b4�:;I
��c4�:;I
���7���������›
��ž������Å������int�¬	��Ö7���ë��Ð��0��O��	
���
��½��w��û����Š7���G��’%�����”>���Ó��	^%���
(�����
)���#��	Z������
“������
*®���L���%���	S���ü���
“������
��„E��f���E����ù��	I��
;����ø��
����P��C��P������è��0��5��š��s��E��[����È���3��/����9�� ’��!u��"ò��#`��$j��%‹��&\���'ù��(Ê��){
��*„
��+.��,>��-ÿ��.»��/h��0s��1~��2‰��3”��4Ÿ��5ª��6µ��7À��8Ë��9F��:R��;^��<j��=v��>‚��?Ž��À�š��Á�¦��Â�²��Ã�r��Ä�~��Å�Š��Æ�–��Ç�¢��È�®��É�º��Ê�Æ��Ë�Ò��Ì�Þ��Í���Î�+��Ï�–	��Ð�¡	��Ñ�Ÿ��Ò�³	��Ó�¾	��Ô�É	��Õ�Ô	��Ö�ß	��×�ê	��Ø�õ	��Ù�Z��Ú�f��Û�r��Ü�~��Ý�Š��Þ�–��ß�¢��à�®��á�º��â�Æ��ã�Ù��ä�å��å�ñ��æ�ý��ç�	��è���é�!��ê�-��ë�9��ì�E��í�M��î�Y��ï�Ó��ð�ß��ñ�ë��ò�÷��ó���ô���õ���ö�'��÷�3��ø�?��ù�a��ú�n��û�{��ü�ˆ��ý�•��þ�¢��ÿ�¯��€¼��É��‚Ö��ƒ;��„H��…U��†b��‡o��ˆ|��‰‰��Š–��‹£��Œ°����Ž+��`
��_��‘��’¶��“/
��”3��•%��–‚��—]��˜i��™Ë��š9
��›#��œi��É��à¶��ðã��ñ%��à
��áÐ��âè��ãI���ä³���å��æ�
Œ��×
��­��À�Î��€(��À{���ï��Ô��è��ü��>��@��q���¾����	*��
��A��5��
��ú����‘����Z��Ý��¤��7��é��S��-ý��.=��/�S
��.7�����/%���©��37���¥��57���
��;v��ô¼��õ¼��ö¼��÷¼��ø¼��ù¼��ú¼��û¼��ü¼��ý¼��þ¼��ÿ¼���½��½��½��½��½��½��½��½��½��	½��
½��½��½��
½��½��½��½��½��½��½��½��½��½��½��½��½��½��½��½��½��½��½�� ½��!½��"½��#½��$½��%½��&½��'½��(½��)½��*½��+½��,½��-½��.½��/½��0½��1½��2½��3½��4½��5½��6½��7½��8½��9½��:½��;½��<½��=½��>½��?½��@½��A½��B½��C½��D½��E½��F½��G½��H½��I½��J½��K½��L½��M½��N½��O½��P½��Q½��R½��S½��T½��U½��V½��W½��X½��Y½��Z½��[½��\½��]½��^½��_½��`½��a½��b½��c½��d½�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������@€��ä���:	��œ��c��×��á
��Œ��Ç��ó
�����JA����U–��œ��­��€��­���³��’�� Sø��3��Z6��#�¢��[‹��#O��\
��#Y��]
��#�C��g%���ù�������€��=��%���ø��6��­��=��¡����C��5��€yÍ��reg�D,��#�cfa�E¡���#Hra�F¡���#LE��G¡���#PŸ��H†��#T@��M
��#`�P
��#d»��Q
��#hF��R<��#l�4��˜Ø��Þ��€��ó��=��¡������Àþ����€��(��%���ø��6��­��=���!��>���,��Z���¿��+w����—È��#�¬��˜½��#Ç��™2	��#�}��¿��@��ø��\½����]¡���#�¡��^¡���#‹��_¡���#�4	��p%���U��q7�����tL���ß��#	����ŽÈ��#���½��#ã��Ó��#Ö��‘#	��#	�	L���2	��“����	L���A	��“����fde�œ@����/£���
/	��reg�
0
����
1��exp�
2	���‡	��L���
4¹	��(	���‚���Ÿ��À��O��°���
.Þ	��loc�
3W	��#�how�
;Œ	��#�
Fù	��P
���4���d���}��¤
-_
��reg�
<_
��#���
?o
��#þ��
C��#”õ��
D
��#˜ˆ��
E	��#œ8��
JÞ	��# �	¹	��o
��
“����ù	��À
)!��#��
Kù	��#�pc�
N¡���#¤û��
Qó��#¨i
��
R��#¬Æ��
S
��#°È��
T
��#´ì���
UL���#¸¹��
VL���#¹	��
WL���#ºu��
XL���#»Ò��
Y¡���#¼�L��
Zu
��	¡���<��
“����	E���L��
“����ñ��\ž��p�]¡���u2�^S���u4�_7���u8�`v���s2�ah���s4�b%���s8�co����7��"Á��~��#%���7��$¡����Ê��%ž��@ñ��t
��Aˆ���#�å���B}���#�G$��%��H%���#�y��I%���#Ç��JÁ��#�OW��t
��Pˆ���#�å���Q}���#Ç��RÁ��#�W¦��t
��Xˆ���#�å���Y}���#õ��Z%���#¿��[–���#—��\–���#�a½��Q��b¡���#��gâ����h>���#�/��i%���#�t;8
��Å��<8
����CÌ��c��Kñ��_rt�S$��ó��]W��µ��c¦��Ö��j½���	%���H
��
“����6��€4
��`��5%���#�ï��6%���#ˆ��8%���#!��kâ��#�
����7���†��v���[��0þ
��Ç��•
��#�ˆ	��•
��#¤�� 
��#k��!•
��#��&þ
��#�	•
����
“����À��
87��ý��97��#�*��:S���#�	S���G��
“����Ç��=~��ý��>7��#�*��?S���#��@ì���#
�ç��C™��m��D™��#��	Z���©��
“����0\È��˜��]È��
��^«
���	Z�����
“����R��pGÒ��cw�IZ���#�sw�JZ���#tag�KZ���#��LZ���#��MZ���#u��NZ���#1
��OZ���#_st�PÒ��#û��QS���#l/��RS���#nÊ��Uâ��#pM
��VZ���#ˆ���WZ���#Œ��Xò��#@��Y��#��Z��# ©��#À�	��â��
“����	Z���ò��
“����	G����
“����	~����
“����	Z���"��
“���+�€��Xh±��gs�iS���#�g��iS���#fs�jS���# ��jS���#es�kS���#ü��kS���#
ds�lS���#C���lS���#edi�mZ���#esi�nZ���#ebp�oZ���#esp�pZ���#ebx�qZ���# edx�rZ���#$ecx�sZ���#(eax�tZ���#,Y��uZ���#0err�vZ���#4eip�wZ���#8cs�xS���#<º��xS���#>S��yZ���#@��zZ���#Dss�{S���#Hë��{S���#JÂ��|±��#L—��}Z���#Pcr2�~Z���#T�Ø��g��3î��s��4¡���#�(
��5%���#´��6,���#�Â��7·��Ü��%�����%��	ù����
“����®��
VH��ý��W7��#�*��XS���#�U��p\Ñ��cw�]Z���#�sw�^Z���#tag�_Z���#��`Z���#��aZ���#u��bZ���#1
��cZ���#_st�dÑ��#û��eZ���#l�	��á��
“����¿��iì��H��Xm3��w��n��#���qá��#L—��rZ���#Pcr2�sZ���#T�J��tò��W��äxŸ��§��yZ���#�8��zŸ��#–��{î��#Ù��|3��#]��}Õ���#l…��~H��#t�>��!´��pŸ+��"cfa� ¡���#�#Ò��¡¡���##þ��¢>���##»��£>���##E��¤+��##õ��¥S���#X#È��¦S���#Z#ï��§<��#\�	>���;��
“����$Ý]��%ptr�Ý ��&+��Ý
���Ù��Ý;��'Ê��Õ%���(„��–
��“��)&��•=���(y��‡
��°��)&��†=���*7��Ã
��Î��)&��Â=���+j��L ��î��,&��K=���+��F ����,&��E=���+ä��4 ��.��,&��3=���({��‰	��u��-p�ˆ	��-val�ˆu��.Î��Š7���.º��‹L���.E��Œ4���4��(ó��k ��À��)«��jL���)&��j=��/­��0á���/¸��0���10!����(Ü��¼	��£��)«��ºL���) ��º ��-p�»	��-val�»£��ñ��¾O��ptr�¿¡���u2�ÀS���u4�Á7���u8�Âv���s2�Ãh���s4�Ä%���s8�Åo����2u�È©��.E��É+��/r��2a�Í+���/•��10H��0?��13S��3^��3i�����12tmp�å(���� ��¯��ñ��û��(��k¡���Ý��-p�kü���2up�kÝ���ã��ñ��L��(%��n%�����-p�nü����(��q%���"��-p�qü����(W��t%���G��-p�tü���2up�tÝ���(O��w%���l��-p�wü���2up�wÝ���(í��z7���‘��-p�zü���2up�zÝ���(å��}%���¶��-p�}ü���2up�}Ý���(U��€Z���Û��-p�€ü���2up�€Ý���(M��ƒZ������-p�ƒü���2up�ƒÝ���4
��ó4��)&��ò=��)��ò%���-p�ò¡���10‡����(Ô���è¡���c��)&��ç=��)��ç%���10‡����(i��»¡���‹��)&��º=��)��º%����5Ï
��
%���¶��,&��=��,��%����4x��Ú��)&��Œ=��-val�Œ%����(š���{€����)&��y=��-fs�z��2pc�|à���2sc�}‡��.¤��~>���1i��pŠt��sig�‹%���#�À��Œ��#puc�¡���#$��ŽH
��#uc�>��#Œ�2rt_�“����!��"��H
�� ��(õ��¢´��´��-f�¡w���º��ß��Þ��(›��¨Þ��Þ��-f�§Þ���ä��A	��(e��N7�����)«��ML����5ã��‹%���2��,%��Š2��,‹��Š
��6�L	��7s
��Š8Æ��vh��,&��u=��9fs�u���5¥
��� ��Ž��,&��ÿ=��10Â����:@
��Ÿ	������G�������ô��;p�ž	��,���;val�žô��J���<Î�� 7���i���<º��¡L���|���<E��¢4������(��=°��G���R���¢�����>Â��‘��?}�� ��R���]���Î���F��@&��=��‘��?�� ��]���s���ú���ƒ��@&��=��‘�@X	��æ���‘�Az	��(s������&��¼��@&��'=��‘�Bval�' ��‘�?Ù��.¡������Œ���R��ê��@&��-=��‘��=��Œ���—���~����>!��‘��=î��—���¢���ª��&��>��‘��=Î��¢���­���Ö��D��>á��‘��AZ��­���É�����o��Cexc�­��.���Dg	��	��É�����Y��ã��E&��=��…��E«��L���Ï��Cp�	��î��Bval�£��‘F{��ê���7��/��0—��0Œ��GÎ����#��w���0;���Gî��#��(��y��0���H��(��0��{0ÿ����IÀ��7����0ð��0ç��JÜ��
��0Ñ��K����LO��u`MX��9��N€��˜��¶��H.��€��˜��Þ0H��0?��O€��˜��MS��¡��M^��Ê��3i�����N=��W��Í��Mh��þ���O¤��¬��M–��������PV��ÿ��I��<��(��Q&��ý=��h��Q��ý%���‘��Rval�þ
��‘��S–��ËI��–��¯��‰��Q&��Ê=��Û��Q��Ê%�����;val�Ê
��0��.	��Ì%���Tptr�Í¡���[���U
��ž
��–��ç��y��ß��Q&��=��¥��Q��%���Ï��.	��Ÿ%���Tptr� ¡���ù���D�
��¹
���	����!"��Eb
��·	��8��EÈ
��·	��V��E&��¸=��v��Ek
��¸
��¢��V_��º!"��‘à}V��»%���uÔ}W€��OO��è��Xop�Â��Â��YE��Ã
��Ç��Zreg�Ä4��[Ô��Ä4��Y��Å(��	��Vê��Å(��ul\���Ü��V"��ó ��uh�FÛ��½��¿�� ��0ì��O½��¿��3õ����F.��Ë��ã��E ��0H��0?��OË��ã��MS��D	��M^��m	��3i����F.����&��E‰ ��0H��0?��O��&��MS��%
��M^��C
��Mi��l
����F.��C��V��mÍ ��0H��0?��OC��V��MS��Š
��M^��
��Mi��»
����Nî��,��é ��Xt�‰
��Î
���N,��¥�� !��]t1�“
��uØ}Zt2�“
��]t3�“
��uÈ}�Në��#��_!��Zptr�¶¡���I¶����#��Ã0Ç��O��#��3Ð�����F.��K��b��Ö£!��0H��0?��OK��b��MS��÷
��M^�� ��Li��uÜ}��Nm��“��Ñ!��Y��ò
��Ø��VÄ��ò
��uÈ}�FG��“��–��6ú!��0X��O“��–��3a����IG��®��±��?0X��O®��±��3a������	
��1"��
“���?�^��â	��P	����£"��E&��à=��-��Ccfa�à¡���K��E´��á£"��i��[	��ã%���_���0���ì0#��0��0
����]��^��ñP	����“��]%��E&��ð=��¿��Cfs�ð��ê��VÚ��òC��‘è~Xcfa�ó¡���

��Xi�ô>���,
��V´��]��‘hF4��ƒ	��•	��=#��0P��0E���F���·	��Ô	��
a#��0#��0��0
���Fc��ð	��

��€#��0��0t���N
��[
��ê#��Xexp�	��J
��Zlen�4��I.��*
��=
��0H��0?��O*
��=
��MS��~
��M^��‘
��Mi��¯
�����\H���`$��Xexp�Q	��Â
��Zlen�R4��Xval�S ��à
��I.����˜��U0H��0?��O��˜��MS��ó
��M^����Li��uà~���F���§
��Ã
��-„$��0#��0��0
���F4��æ
��ï
��7£$��0P��0E���Nï
��X��A%��Xexp�>	��$��Zlen�?4��Xval�@ ��B��F.������B %��0H��0?��O����MS��v��M^��‰��Li��uÜ~��I���9��X��E0#��0��0
����I¶��Ò��ý��]0Î��0Ã����^��k��.��§��±%��E&��j=��Ó��Cfs�j��ñ��Ic����!��p0��0t����`8��.��¯����?¦��:¡���¯��ã��;��&��Cpc�9¡���g��VŸ��;†��‘hXfde�<w��‡���^×��cã��Œ��š��Ž-��E	��_	��Æ��EQ��`	��æ��E&��a=����Cfs�b��=��V*���do
��uHO
��_��Y¶��uL���t��]reg�v4��uD[Ô��v4��[��w(��Yê��w(��µ��F.��e
��~
��~
'��0H��0?��Oe
��~
��MS��à��M^��	��Mi��'����NË
��ú
��''��Xpc� ��P���F.��i��‡��£j'��0H��0?��Oi��‡��MS��{��M^��Ž��Li��uT��F.��‡�� ��¤®'��0H��0?��O‡�� ��MS��¬��M^��¿��Mi��Ý����F.��¾��Ù��¬ò'��0H��0?��O¾��Ù��MS����M^��E��Mi��y����F.��Ý��ö��´6(��0H��0?��OÝ��ö��MS��­��M^��Ö��Mi��ÿ����N��\��Ó(��[‡��½4��F.����-��¾’(��0H��0?��O��-��MS��(��M^��;��Li��uX��I.��-��F��¿0H��0?��O-��F��MS��Y��M^��l��Mi��Š�����N\��—��ñ(��Y-��Èo
��³���N—��Ä��)��V“���Øo
��uP�F.��Ä��Ý��àR)��0H��0?��OÄ��Ý��MS��Ü��M^��ï��Mi��
����F.��ê����â–)��0H��0?��Oê����MS�� ��M^��T��Mi��ˆ����F.����+��èÚ)��0H��0?��O��+��MS��¼��M^��å��Mi������F.��G��`��î*��0H��0?��OG��`��MS��7��M^��`��Mi��‰����F.��ˆ��¡��öb*��0H��0?��Oˆ��¡��MS��²��M^��Û��Mi������F.��¯��È��û¦*��0H��0?��O¯��È��MS��-��M^��@��Mi��^����F.��Ý��ø��þê*��0H��0?��OÝ��ø��MS��q��M^��¥��Mi��Ù����F.��ü����.+��0H��0?��Oü����MS��
��M^�� ��Mi��>����F.��A��Z��
r+��0H��0?��OA��Z��MS��r��M^��…��Mi��£����F.��Á��ß��µ+��0H��0?��OÁ��ß��MS��Ì��M^��ß��Li��u\��F.��ß��ø��ù+��0H��0?��Oß��ø��MS��ý��M^����Mi��.����F.����2��&=,��0H��0?��O��2��MS��W��M^��j��Mi��ˆ����F.��`��y��/,��0H��0?��O`��y��MS��±��M^��Ä��Mi��â����F.��‹��©��3Å,��0H��0?��O‹��©��MS��õ��M^��)��Mi��]����F.��Ò��ë��A	-��0H��0?��OÒ��ë��MS��‘��M^��º��Mi��Ø����F.��ü����HL-��0H��0?��Oü����MS����M^����Li��u`��I.����;��I0H��0?��O��;��MS��2��M^��P��Li��u¬����5��\	��.��9cie�Z´��,&��Z=��9fs�[��Zaug�]	��Zp�^	��Zret�_	��[Ô��`4��[ê��a(��/.��[û��› ���/!.��0É��13Ò����/B.��0H��0?��13S��3^��3i����/c.��0H��0?��13S��3^��3i����10H��0?��13S��3^��3i�����D	��]€��Œ��Û��y��,1��E&��\=��¥��Cfs�\��Å��]fde�^w��u@Xcie�_´��å��Xaug�`	����Y¶��`	��#��Zend�`	��FÚ��õ�����q[/��0ö��0ë��Oõ�����M���ë��M
����M��=��O:��F��3t�����F™������yu/��0ª���FŽ-����Ì��zŸ0��0¸-��0¬-��0 -��K`���MÃ-��[��MÏ-��{��3Ù-��3å-��Mñ-��›��\���Õ/��M.��»���F.��h��„��n0��0H��0?��Oh��„��MS��ò��M^����Mi��.����F.��Ë��è��v]0��0H��0?��OË��è��MS��P��M^��p��Mi��Ž����I.����+��€0H��0?��O��+��MS��¡��M^��Á��Mi��ß������Fé��ú��9��…¹0��0ú���N\��x��1��Zi�‰4��I.��\��p��Š0H��0?��O\��p��MS��ò��M^����Mi��#�����O…��¥��YE�� ��C����^¤��‘Û��&��z��ý1��E&��=��¦��E]��¡���Æ��@��¡���‘�Zra�’¡���]fs�“!��‘¨~VK��”]��‘hY@��•€��ä��N7��Õ��ê1��F��7��U��¡Ù1��0$��0���a8��e��Õ��£�Vª�� L	�������?/��€��&��¥��
��u2��Eâ��Í��9��E¹
��¡���e��V&��C��‘ð~Y@��€��‘��OE��œ��]fs�$!��‘°}��:)��•€��¥��r��º��-3��;exc�“­��æ��Q&��”=�� ��b	��–��u°~b��—¡���u´~<@��˜€��$ ��<t��˜€��M ��OÊ��i��cfs�œ!��‘°~<,��%���k ��HB��N��i��¾0\��0P�����:s��-€��r����‰ ��ž3��;exc�+­��µ ��Q&��,=��Õ ��<@��.€��ó ��O’����cfs�2!��‘¬~<e��3%���'!����?e��²4����Ø��:!��4��EE��±¡���f!��E!���±4��†!��V&��³C��‘ð~]fs�´!��‘°}Xreg�µ%���±!���¥��DÏ��É>���Ø��Æ��Ï!��'5��EZ
��Ç=��û!��E¸��È=��"��Xi�Ê>���9"��VK��Ë]��‘hF4��ó����Ï‹4��0P��0E���N)��{��Ö4��Xc�Ô¡���W"��Xt�Õ¡���j"��OO��e��]w�Ú
��ulZp�Û ����F4������ïõ4��0P��0E���O£��¾��[¼��ñ¡���Ic��£��¯��ó0��0t�����SX��áÆ��a��}"��¥5��;exc�à­��©"��b���âC��‘ä~b��âC��‘ä}<@��ã€��É"��O+��D��<��ñ>���ç"��<®��ñ¡���ú"����Uˆ��Ê€��a��ý��
#��E6��;exc�È­��9#��Q	��É��Y#��Q��É¡���y#��b���ËC��‘ä~b��ËC��‘ä}<@��Ì€��™#��OË��Ú��<��Ø>���·#��<®��Ø¡���Ê