From 0364d180eb1d1b8067d1248ace49ca46c816e541 Mon Sep 17 00:00:00 2001 From: Zhanming Qi Date: Mon, 22 Apr 2013 20:34:09 +0800 Subject: [PATCH] add 04.4.md translate for ch 4.4 --- eBook/04.4.md | 324 ++++++++++++++++-- .../chapter_4/function_calls_function.go | 15 + eBook/examples/chapter_4/global_scope.go | 14 + eBook/examples/chapter_4/goos.go | 11 + eBook/examples/chapter_4/init.go | 6 + eBook/examples/chapter_4/local_scope.go | 12 + eBook/examples/chapter_4/user_init.go | 9 + eBook/images/4.4.2_fig4.1.jpg | Bin 0 -> 8835 bytes eBook/images/4.4.2_fig4.2.jpg | Bin 0 -> 11759 bytes eBook/images/4.4.2_fig4.3.jpg | Bin 0 -> 18082 bytes 10 files changed, 371 insertions(+), 20 deletions(-) create mode 100644 eBook/examples/chapter_4/function_calls_function.go create mode 100644 eBook/examples/chapter_4/global_scope.go create mode 100644 eBook/examples/chapter_4/goos.go create mode 100644 eBook/examples/chapter_4/init.go create mode 100644 eBook/examples/chapter_4/local_scope.go create mode 100644 eBook/examples/chapter_4/user_init.go create mode 100644 eBook/images/4.4.2_fig4.1.jpg create mode 100644 eBook/images/4.4.2_fig4.2.jpg create mode 100644 eBook/images/4.4.2_fig4.3.jpg diff --git a/eBook/04.4.md b/eBook/04.4.md index f3b489c..4c516a7 100644 --- a/eBook/04.4.md +++ b/eBook/04.4.md @@ -1,21 +1,305 @@ -##啊哦,亲,你看得也太快了。。。还没翻译完呢 0 0 -要不等到 ***2013 年 4 月 22 日*** 再来看看吧~~ - -这里还有一些其它的学习资源噢~ - - - [《Go编程基础》](https://github.com/Unknwon/go-fundamental-programming):已更新至 [第八课](https://github.com/Unknwon/go-fundamental-programming/blob/master/lecture8/lecture8.md) - - [《Go Web编程》](https://github.com/astaxie/build-web-application-with-golang) - -神马?你说你不想学习?那好吧,去逛逛论坛看看行情也行~ - -- [Golang中文社区](http://bbs.mygolang.com/forum.php) -- [Go语言学习园地](http://studygolang.com/) -- [Golang中国](http://golang.tc) - -#4.4 变量 - - -##链接 -- [目录](directory.md) -- 上一节:[常量](04.3.md) +#4.4 变量 + +##4.4.1 介绍 + +声明变量的一般形式是使用关键字 ***var***: *var identifier type* + +值得注意的是,类型是写在要标识的变量之后,着不同去几乎其他任何编程语言。为什么 Go 设计者选择了这个约定? + +首先,它消除了像在C语言式声明的一些模糊,如:在写 `int* a, b`; + +只有 a 是一个指针,而 b 不是。为了表示他俩都是指针,必须重复星号。(这个主题有一个很长的讨论,详见:) + +但是在 Go 语言中,他们可以同时声明,如: `var a, b *int` + +其次,这样从左到右,便于阅读。 + +一些例子: + + var a int + var b bool + var str string + +也可以写成: + + var ( + a int + b bool + str string + ) + +这种形式主要用于全局变量声明。 + +当一个变量被声明,根据它的类型自动包含默认值或 null : int 的默认值为 0,float 的默认值为 0.0,bool 的默认值为 false, string 的默认值为空的字符串`string("")`,指针的默认值为 nil,零值的结构体,等等: + +_所有变量在 Go 语言中都初始化._ + +变量的标识符命名遵循驼峰命名法(以小写字母开头,其后每个单词以大写字母开头),如: numShips,startDate。 + +但是如果变量要被导出,它必须以大写字母开头(可见性规则 §4.2)。 + +一个变量(常量,类型,函数)只作用于程序的一定范围,称为作用域。在函数外声明的变量(换句话说在顶层)是全局(或包)变量:他们在整个包内都是可见的。 + +在函数内声明的变量有本地作用范围:只能在函数内被调用,参数和返回值也一样。在第 5 章将遇到控制语句如 if 和 for;一个变量在这样的机构中被定义也只能在它内部被调用(构造范围)。大多数情况你可以将作用域理解为代码块(被`{ }`包围)内的变量声明。 + +当然,标识符必须唯一,在一个代码块中的一个标识符可以在它的内部代码块中重新声明:在这个代码块(惟独这里)内,重新声明名称相同的变量有更高的优先级,请小心使用,以避免 subtle 错误(见§16.1)。 + +变量可以在编译期得到他们的值(这被称为赋值,并且使用赋值操作符 `=`),当然,这个值在运行时也可以被计算和改变。 + +例子 + + a = 15 + b = false + +一般情况,当变量 a 和变量 b 是相同类型时,变量 b 可以赋值给变量 a 如: `a = b` + +声明和赋值(初始化)也可以同时进行,一般的格式如下: + +例子: + + var identifier [type] = value + var a int = 15 + var i = 5 + var b bool = false + var str string = “Go says hello to the world!” + +但是 Go 编译器足够智能得从一个变量的值推导出他的类型(动态的,也被称为动态类型推断,有点像脚本语言 Python 和 Ruby,但是只在运行时执行),所以如下的形式(忽略类型)也是正确的: + + var a = 15 + var b = false + var str = “Go says hello to the world!” + +或者 + + var ( + a = 15 + b = false + str = “Go says hello to the world!” + numShips = 50 + city string + ) + +当你想使变量的类型与推断不同时,这仍然是有用的,如:`var n int64 = 2` + +但是一个表达式如 `var a` 是不正确的,因为编译器没有 a 的类型线索。变量也可以在运行时计算表达式,如: + + var ( + HOME = os.Getenv("HOME") + USER = os.Getenv("USER") + GOROOT = os.Getenv("GOROOT") + ) + +这个 var 的语法主要用于全局级和包级,在函数中,它被这个短声明语法 `:=` 代替(见 § 4.4)。 + +下面这个例子展示了程序运行在那种操作系统上。它有一个本地的 string 变量调用 Getenv 函数(这用来取得环境变量)来自 os 包。 + +Listing 4.5—[goos.go](examples/chapter_4/goos.go): + + package main + import ( + "fmt" + "os" + ) + func main() { + var goos string = os.Getenv("GOOS") + fmt.Printf("The operating system is: %s\n", goos) + path := os.Getenv("PATH") + fmt.Printf("Path is %s\n", path) + } + +本例的输出根据本地环境变量的值,可能是: `The operating system is: windows`,或 `The operating system is: linux` 等。 + +这里的 Printf 被用于格式化输出(见 § 4.4.3)。 + +## 4.4.2 Value types and reference types + +内存在计算机程序看来,好比一堆箱子(也就是我们将如何写入它们),叫做单词写入。以目前的操作系统开发而言,所有单词具有相同的长度为32位(4字节)或64位(8字节);所有词都有确定的*内存地址*(以十六进制数表示)。 + +所有变量的基本(原始)类型,如int,float,bool,string,... 都是*值类型*,它们直接指向其内存中的值: + +![](images/4.4.2_fig4.1.jpg?raw=true) + +此外复合类型如数组(见第 7 章)和结构体(见第 10 章)也都是值类型。 + +当使用 `=` 将一个类型的值赋值给另一个变量:**j = i**,i的原始值的副本拷贝到内存中。 + +![](images/4.4.2_fig4.2.jpg?raw=true) + +变量i的内存地址是&i(见 §4.9),例如:这可能是0xf840000040。值类型的变量在栈中存储。 + +内存地址根据机器的不同会有所不同,甚至相同的程序在不同的机器上执行也会不同,因为每台机器可能有不同的存储器布局,并且位置分配也可能不同。 + +更复杂的数据类型,通常需要几个单词被视为引用类型。 + +一个引用类型的变量 r1 包含内存位置的地址(一个号码),这个地址存储着 r1 的值(或者是它的值的第一个词) + +![](images/4.4.2_fig4.3.jpg?raw=true) + +这个地址被叫做指针(这与写值不同,更多详情见 § 4.9)也只包含一个单词。 + +同一个引用类型指针指向不同的单词可以是连续的内存地址(内存布局被想成连续的)对计算来说是最有效的存储;或者这个词可以扩展,一个指向另一个。 + +当分配 r2 = r1, 只有引用(地址)被复制。 + +如果 r1 的值改变了,所有引用这个值(如 r1 和 r2)都指向了更改的内容。 + +在 Go 语言中,指针(见 § 4.9)是引用类型,slices(见第 7 章),maps(见第 7 章)和 channels (见第 13 章)也是引用类型。所引用的变量存储在堆中,进行垃圾收集,相比栈,有更大的内存空间。 + +## 4.4.3 打印 + +函数 Printf 在 fmt 包外也是可见的,因为它以大写字母 P 开头,主要用于打印输出到控制台。通常使用的格式化字符串作为第一个参数: + + func Printf(format string, list of variables to be printed) + +在 Listing 4.5 中,格式化字符串为: **"The operating system is: %s\n"** + +这个格式化字符串含有一个或更多的格式化标识符 `%..`, `..` 表示可以替换不同的值,如 **%s** 代表一个字符串值。**%v** 标识默认的格式化标识符。这些标识符的值从逗号之后顺序排列,如果有超过1个,它们之间用逗号分隔。这些 % 占位符的格式可以精细控制。 + +函数 **fmt.Sprintf** 与 **Printf** 的行为完全相同。但是只简单的返回格式化后的字符串:所以可以在你的程序中使用字符串包含变量值使用(例子,见 Listing 15.4-simple_tcp_server.go)。 + +函数 **fmt.Print** 和 **fmt.Println** 表现完全自动化使用格式化标识符 **%v** 进行格式化,在每个参数后添加空格,后者在最后添加一个换行符。所以 **fmt.Print("Hello:", 23)** 将输出:**Hello: 23** + +## 4.4.4 简短形式,使用 := 赋值操作符 + +忽略类型,关键字 var 在 § 4.4.1 最后一段中是非常多于的,我们可以简写为:**a := 50** 或 **b := false**。 + +a 和 b 的类型(int 和 bool)将被编译器推断出。 + +这是首选形式,但它只能在*函数内部使用,而不是在包的范围*。 操作符 := 将有效地创建一个新的变量,它也被称为初始化声明。 + +*提醒*:如果在这行之后写相同的代码块,如我们声明 a := 20,这是不允许的:编译器会给出错误提示 “**no new variables on left side of :=**”;但 a = 20 是可以的,因为这是给相同的变量一个新的值。 + +一个变量 a 被使用,但是没有定义,会得到一个编译错误:**undefined: a** + +声明一个*本地*变量,但是不使用它,也会得到编译错误;如变量 a 在如下的 main 函数中: + + func main() { + var a string = "abc" + fmt.Println(“hello, world”) + } + +将得到错误:**a declared and not used** + +当然,设置 a 的值也不是足够的,这个值必须被使用,所以 **fmt.Println("hello, world", a)** 会移除错误。 + +但是全局变量是允许这样的。 + +其他的简短形式为: + +同一类型的多个变量可以声明在一行,如:**var a, b, c int** + +(这是类型写在标识符后面的重要原因) + +多变量可以在同一行进行赋值,如:**a, b, c = 5, 7, "abc"** + +这假设了变量 a,b 和 c 都被声明了,否则应这样:**a, b, c := 5, 7, "abc"** + +右边的这些值以相同的顺序赋值给左边的变量,所以 a 的值是 5, b 的值是 7,c 的值是 "abc"。 + +这被称为*并行或同时赋值*。 + +使用两个变量,它可以被用来执行交换的值:**a, b = b, a** + +(在 Go 语言,这样省去了使用交换函数的必要) + +空标识符 _ 也被用于扔掉值,如值 5 在:**_, b = 5, 7** 被扔掉。 + +_ 实际上是一个只写变量,你不能得到它的值。这样做是因为一个声明的变量必须在 Go 语言中必须被使用,但有时你并不需要使用从一个函数得到的所有返回值。 + +多赋值也被用于当一个函数返回多于一个值,如这里 val 和一个错误 err 被 Func1 这个函数返回:**val, err = Func1(var1)** + +## 4.4.5 初始函数 + +除了在全局声明中初始化,变量也可以在一个 init() 函数中初始化。这是一个特殊的函数名称 init(),它不能被调用,但在 package main 中自动在 main() 函数之前,或者自动在导入含有该函数的包之前执行。 + +每一个源文件都可以包含且只包含一个 init() 方法。初始化总是单线程的,并且包依赖关系保证其正确的执行顺序。 + +一个可能的用途是在真正执行之前,检验或修复程序状态的正确性。 + +例子: Listing 4.6—[init.go](examples/chapter_4/init.go): + + package trans + import "math" + var Pi float64 + func init() { + Pi = 4 * math.Atan(1) // init() function computes Pi + } + +在它的 init() 函数中,变量 Pi 被计算初始值。 + +程序在 Listing 4.7 [user_init.go](examples/chapter_4/user_init.go) 中导入了包 trans (在相同的路径中) 并且使用 Pi: + + package main + import ( + "fmt" + "./trans" + ) + var twoPi = 2 * trans.Pi + func main() { + fmt.Printf("2*Pi = %g\n", twoPi) // 2*Pi = 6.283185307179586 + } + +init() 函数也经常被用在当一个程序开始之前,一个 backend() goroutine 需要被执行,如: + + func init() { + // setup preparations + go backend() + } + +*练习*:推断以下程序的输出,并解释你的答案,然后编译并执行它们。 + +练习 4.1: [local_scope.go](examples/chapter_4/local_scope.go): + + package main + var a = "G" + func main() { + n() + m() + n() + } + func n() { print(a) } + func m() { + a := "O" + print(a) + } + +练习 4.2: [global_scope.go](examples/chapter_4/global_scope.go): + + package main + var a = "G" + func main() { + n() + m() + n() + } + func n() { + print(a) + } + func m() { + a = "O" + print(a) + } + +练习 4.3: [function_calls_function.go](examples/chapter_4/function_calls_function.go) + + package main + var a string + func main() { + a = "G" + print(a) + f1() + } + func f1() { + a := "O" + print(a) + f2() + } + func f2() { + print(a) + } + + +##链接 +- [目录](directory.md) +- 上一节:[常量](04.3.md) - 下一节:[基本类型和运算符](04.5.md) \ No newline at end of file diff --git a/eBook/examples/chapter_4/function_calls_function.go b/eBook/examples/chapter_4/function_calls_function.go new file mode 100644 index 0000000..12ebdab --- /dev/null +++ b/eBook/examples/chapter_4/function_calls_function.go @@ -0,0 +1,15 @@ +package main +var a string +func main() { + a = "G" + print(a) + f1() +} +func f1() { + a := "O" + print(a) + f2() +} +func f2() { + print(a) +} \ No newline at end of file diff --git a/eBook/examples/chapter_4/global_scope.go b/eBook/examples/chapter_4/global_scope.go new file mode 100644 index 0000000..5b1ff29 --- /dev/null +++ b/eBook/examples/chapter_4/global_scope.go @@ -0,0 +1,14 @@ +package main +var a = "G" +func main() { + n() + m() + n() +} +func n() { + print(a) +} +func m() { + a = "O" + print(a) +} \ No newline at end of file diff --git a/eBook/examples/chapter_4/goos.go b/eBook/examples/chapter_4/goos.go new file mode 100644 index 0000000..e9fb59c --- /dev/null +++ b/eBook/examples/chapter_4/goos.go @@ -0,0 +1,11 @@ +package main +import ( + "fmt" + "os" +) +func main() { + var goos string = os.Getenv("GOOS") + fmt.Printf("The operating system is: %s\n", goos) + path := os.Getenv("PATH") + fmt.Printf("Path is %s\n", path) +} \ No newline at end of file diff --git a/eBook/examples/chapter_4/init.go b/eBook/examples/chapter_4/init.go new file mode 100644 index 0000000..e90c61f --- /dev/null +++ b/eBook/examples/chapter_4/init.go @@ -0,0 +1,6 @@ +package trans +import "math" +var Pi float64 +func init() { + Pi = 4 * math.Atan(1) // init() function computes Pi +} \ No newline at end of file diff --git a/eBook/examples/chapter_4/local_scope.go b/eBook/examples/chapter_4/local_scope.go new file mode 100644 index 0000000..7fd3aea --- /dev/null +++ b/eBook/examples/chapter_4/local_scope.go @@ -0,0 +1,12 @@ +package main +var a = "G" +func main() { + n() + m() + n() +} +func n() { print(a) } +func m() { + a := "O" + print(a) +} \ No newline at end of file diff --git a/eBook/examples/chapter_4/user_init.go b/eBook/examples/chapter_4/user_init.go new file mode 100644 index 0000000..fc59361 --- /dev/null +++ b/eBook/examples/chapter_4/user_init.go @@ -0,0 +1,9 @@ +package main +import ( + "fmt" + "./trans" +) +var twoPi = 2 * trans.Pi +func main() { + fmt.Printf("2*Pi = %g\n", twoPi) // 2*Pi = 6.283185307179586 +} \ No newline at end of file diff --git a/eBook/images/4.4.2_fig4.1.jpg b/eBook/images/4.4.2_fig4.1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..44195cc16f555805903f0bac438504f46f6eb607 GIT binary patch literal 8835 zcmeHscT|&2x9>xf-kX#FN|hplC@3XZXd)mWpddsAq=sGs1VRyz8j2JF=|zkXktQ`D zO^Wi;r4vAqo*={sAvt)?z32VDZ=Ji=x#zF@$DL>PTF*Q)v)BI3JbTaHvnk&wO900m zT?1W!ii!$&eEI;CS>P5xLrwjso)+5EO2FChY zet?#fj_aJ#jWgV)Pw3Bk^C(B87BPt5tm))68^K9je(Dp+$i&BgRzOfvN?PWEtjd+E zs%qD+-@2`%tEX>p$Nav9rPYIn*7gpL&zziHTz&og0|H?|!BNknV`5*##iyme%*f2j zew9;PQd(AC@uu?ahuXUOhQ^Og&7ZoudwTmm_YaJYjZaKYeVd-aF0ZV9Ut9mNv5DXR zd2mShMf`pA2NxAU^B=JO6WPDu;ylGgO-oBdOaBKK6?Nb#(Qwkzol`o)b;FeYi8uFo z

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 literal 0 HcmV?d00001 diff --git a/eBook/images/4.4.2_fig4.2.jpg b/eBook/images/4.4.2_fig4.2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5b2d3c44a384b67c75617e4871898c3f5d648f7e GIT binary patch literal 11759 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 Ar2qf` literal 0 HcmV?d00001 diff --git a/eBook/images/4.4.2_fig4.3.jpg b/eBook/images/4.4.2_fig4.3.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d28332e090545cb7897f3e92ef6fb9e042aadee8 GIT binary patch literal 18082 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%0AMwSCX+F1adh2ELL#X}b`=djAtb^I|&# zmlnc!THbJtT1kWtU)Yvi%bktI+{3Y8qP*eff2G+*WR^StgY|+7O{pakO;b4T;8J{? zWQDbvg}zQm66j$r=Cyc;PqFdhwlnGHW_kx`iih2X$z$u*;1loqum(z@<0(J316^OnjJx691YU;Sm@L1SnLwd0;?;5VaxZ& z_|k7XC(;h`ylKiv3|Cym)b7SMKU(mBEa*hOKKNA&!t1M9uqFo#Psx6VrAvzBT!`g8 zIddb+L`7XLTERH59aS@d*itiEw8Ht;aK{wANBUO9|NP1PJVp2(Tx#3AwA-#>_r7Iv z9N%by(doMQNuI5NVXb6q9U%j&W7Cnq0s5z^F}lx6t8 z#^U873Ot_H(4d`br3xV)|Flw|@XkjTIiCF=fvtQTT+>fs%4e{F_yFQgNDU&5}uygEbyKK_6o ze-jJ44%eU0Z^veSOg?6<-N4Glk%4;CHt0)Q2%H1|V|@31)ch~B@`=a1XNc83l~^o% zT>kKYlPd2MXx^9XW7a^V}!O`a*yy|YfRg;QY=+C_7D(hrkXq#es{S_HdyO)p| z>Cgy@Dx%v)-};XD)s`5cE%{w^JoB!N4R}4(>d@C0XKM@Ys?w&R=TI5a<+9ZK16n@= zihltWJY6V;W>uWY#5WFD*vPi=!l^FCrh2^tSIm@cd0ed*#JE$^nn?yO5TGZ^sPATD z8t7B>$6ph{8mFuR-6FJ4)!ddU+3?@gU)W$tsN6Qid~5!DZ#>fH%s=Vp8{{TFGnA9! zige~`>mdlaieM`z+OENRJL|Ie6Rh}ua(neYS!H-lf>|bR+x&=rj=ApG&mf98LQB~1 zV8-i-2L}gq^-&w~%Lipvr{)R`0&@AAe3?|_JY6dSBc{pC1(pr?&5jVQi zbuCBKxLc6+O%v5%?1!x&13Wk{=^m^<)iEPo{T7{?v?MyLyeS1>@ zW;TdTz2NyBpbg@~-*m#7wolkzeP6N3-}n0Hg?;!~Uz37)uc(2f1@m?6&yIzf_{mDm z+_<`ZBJ_B3L%D*43P;JRv)#g%Vr>T&yUG`gZ|`>4&c(<@AkU7;BpWK_u>2^MYC0a& zH{p8s@Z8Pi^N3$Wulc2=Y&r}+z|O^NIH$E9VzaA&qstnqPVpjq&!p8-3ty^}&dn{z zUz|U5G%l7bANo#|#{1BHOQ2p4;i?%|lyxx~xo8A2P;|J^%PEm#rPj&$@Fkr&!-3+2 zna+d!<>Rd7{G@7%6QBQx0%M*H+&y3-19lXbd~m$X@}JHqI49Rv{B&3StF8d?Fam60vShvir4FMQwW<)>Y`{4Rq2UW`>5d~MP zEbZ~fsl8!8F@R{+UI06fRm#*#s;L(BID0JCrR1DfxlPkK%ZKP`@J+c(%OG8mg-SZr z^SDZw#zOZs!g8C3**M+dY-*4N3^P8`EZJtnXELO(aPxdu;t#ppm>2C5nw-Z)36}(Y zY&Z{W_ZvSoR&JhqOZq9vn>$Tw@; z%5ypYz4EqS4O!g{|K6zm&A6G_ixS*|oF+gnn5oiE)HyX}p?q|I>>&%Y^-x;)xX~u; zi52kbhyK!qup3!p3nDd8B3JSPyps%6yJ;wjU@L-*u8j6=W$dqKhwhn%)`(?^0c^Yc z03j6-(Z7c=tBu$ghwXTL(h{?{y)ZNy8(}4QPS4BYF4aH6$W;$ko0hU!@N9-Wb60S* zX$#ZhS^DE^RxR=4N*-$~ETVuZlB!{7$cBF)rdE#C&CETZ4q50H@U-BLUs}CcJ5ws* zqv|=*=pWc#%RNs~Gd4f%wY&uv4hU$oV@L>MxWPL`l(^JOlPQmr9ei zD)F6QGH?a;9lBt?GfWgXWy>w9OwY&FM-c4@uK25_toZbHJALBi;?oj!RSWRD+)IIQ znQGCL+gc&d7^quS4o^iE{az8Zi-KPn;jChcFdiwLHqByfRyhp8X<`MO8OmTN%;d|I&z-##!r?u5Lr9!V( zJWXzi80v>y#@}AjOS6jUv=wW-XTjtqmu&X>YtkF~*w*cwD5v8WS$gGw_gm`((ohy? zyjE^%w46F9$%t*I zXx;Tx2?kK6LjB$;d?9ols!HOfI1suBiTr=z4*t>IulmOmO0@BZUf|*yo8eX(o|)+r zYH2pKH*k7bgt(Pt3b5G%sfc5}B{m{w{ro^XQ}?h!u=&!Wa&#~6;;`Cf-X_e2CAW7X zaucdX!fbQ}{u!|D!=Ihkjud95})e?PDBuu3-GF%Bm3$c-&o}IN9K(nM$-2f1g{r;D+wK>vc31;si1o@ za@$E=v$l(uAMuAV#l}mWQpgyB?gT015yedlOV}20I6jUfkr@AQF{B|%44(ZCzB`}y z_a=Xc7&1`n0bg4cA>bwc-sTVE1OK=Fpue?{`a}2pz5D;7U(nq+oV!270n3c7TCi*r zU*ig(U;vdYc&+Oba9313e?A#d7(c%rAjU_cH=h`|5NyBD7nlO8kJuV`Ne0}=0C&5F zd3X0MkBS1Pi~ZwGwH7QL{_9OYTm@P4rL(#|gn;gmPDPgAfx?L>(C?aKUJ-6J9~^7% zVHTDxOzmdndZT@KrRz!fXpGmV<6X|rMeS8{%&*oSNJvoeU2eQLK?XR~EU~1cHVn%F z8DQ^Ql;d+i&$` zEE-&d_iJx-I*t2@ot?`2dBm7uE9O6%VxF(GT{tMbi(kR^b}M1Hg5+>63+2f8%F1;s z`E~xZNTfh^&6R@3+pA{{KHt`_{4Smla?SacF3)D*(cFVpc<&y|gHJ88N4jL7^5-B{ zE+)unkxdX*`E9s9D!ZN9D1Orj7gC(d#Pn{557A3ya3M}iO6gX%gx43L$v*!=;`!ch zw}y#K*zwPED&r1D;65GG$T(!e6z^$?QxCl6_*nKgPJ(Y~2WNk@kiZRFvL32H%D(vO z@v&NqP|huDGPiT$X0W!#{P|KS88BwJNfLbY1v)wMbxsm*jdkyCBgqV28TOGDh$;TL zxH<>Ba{hsV1ifQo#s!uB73#tCVd2fRK)F6*9jQWTgo4CFTNy^EdpB2!xP<{H72k&WyXs@h9+g zLkg@vV2g+5!qRSI!^5*Nn0`Z{S zP-i!)#EJSOK|LS!&Ur%31`jIHFA&3 zG}HVe!h8gike}8fwSGiVxC=gEv66ylO=8?Aybpcf(5vkbzZ6nEjf+dl-U$?HiygrG zUdJ>pKQxdlhG-ewrvrrCBTa)o7p%3RrV_eB zuB9zGBsALzXB^7>LeCP6+`Lxp+j#m5;(d=Zx(SBT3(zUTp(?(V@R$8ZN~rcJSUjZ1 zXIoq8BuHKBXMWH!dstP(qjiTNQ$&z>4u0)+aNWcSlh+z4EG9cXx6$PC7>v4r)FK`W^4LtXRTqB zs2uFU6E&gVFuIhIZcPR>nb;Yg_O-uvdRVx^`_yaS(z=Qa+{GM>o1U_ih@Vw-S;K!q zISj2oU%G1Tvw~M31Eza5H5#gTH@`(W>P-w?kZC#IqLXKi^D|ZNT-_Go> zkf%wu^u)!AqVs)s9_<~p^?c(ujaDeYx@lMNgC)JAh9)F4AV_ z;BW7m;@+bB3*^BVw`8|8>pF9HS__)z-=n@7pV<;H6?iLXjjpu{)a|Wt2x>sh2XJO) z5=RJmKY|JZ7f@%2+SvG-BIWj7gi>1ax^$j>Pw~~l!(M4O@u=!Hu8xE?&WB>BKlJIN zV)wXeJ`Fb8EwZtJwHK9fELo`B&EF4TFS<{xBk~D4J%};$o6s%pOC7g*6vW=%ox3kx z|2+BNfOC2dgGFOZGf78*(QeR<6Wf6mXoGEc9~s~REnJyEJyv%gxrZ(9ER6Mmv-L8k zbH6Gyy2aqPX2(6#Sg9ZR+vk*Z&Cg zFvkuRA8ReZzII7auh~#+c|r`R_UzAe_|_WM!F=>7U#xcLoXiR8RfG z8-w02W>U6qnqzz-ZgEjo?=TVHTLO!p`J6^#H)Z~e{2Z0#n~LU~e@&=*wRgH`qBo~> zh_h`IJg57no&UA|(%ljSEdY1}zQq#MKU>*IeIm>nXQs+D&SIU@a(;43W5hI^X1>q_ z{ce5YSr|6Cd@}KANC)6F`=1l8n8j=cH_}yP9pb?5O3fE=lj;|Nr{gtOeR~8R&d|v%OthM@I9Tt}fUFxhIOKl~g`{54@8g4NkXg~wS;UoN&{d-+`HJfND;+9MbzCs-N z*GwLGErr+6NDiUg=}xo5_n@_5Xdeh)^2bU1-`_`1wf9+382aAn;&o@qm(*thl#vf8 ze9#}R@BhgExd;D$m;*~1l0gpG$~HI~+!O!pWbLn^cACKN-kTX;mc(8vzjF+JF9v}5 z#LqO{I_@Pg@_G?2!mwEx9-#dS{`acju@L9lk0r)h2kIggrytcsawoOma5BJfHuLp> zAjA(8j=b}l=fXu7rRlpInll}&dWsl5I7D{2F8T%2Y)8&==mS1>lV^qp!2CSHI=+pd zMZ7klAjbytGsQt8)WAg>d$w-blZX7B&A+d`DQV)=b^dmBRSnK6f5Tc$vLxtM+F>Ft zGb=G~MhnNMQ0k_bX=vo{7!M8#Wh{P9i5=&3+NQ%gDrhS-j-+-dY&jh7`$E?`;l@_> z+%_3tSq(VgT28OuzP=ErY=EO}V9hRb&*H=${7g-+j4G2|N*W&5|IR`Dq$QKXK$R{r zL!AXv*=c54>Jwem2<1lR2Dj9%SFIQoxuq$wTuNaU;#gF0zRi1Xo=ZKt^Y)k>+~QWpI1T8^l&-fk%OzUzs56&Cde<_2!`iY3D9v?_R&t|G-*^poIT~-g6L!-5xQ4 zxHgNF*JWHLjvUu)yikBBOqgfpvF>c?^O4@_%|Uw{a7Nh1W7HLnAvt9dJTrTC9qv|k z8Mj6u=Um#`J8TUmzRq~(1oNP)Hdj1nPpm3(JnMaVuBi=!^Q+_)23xx|wFFX{*hhuO z_C&TB%81u-w1wE|w$y->!f=_VKGPnCa@-k`=09$nKYth)IGANIAUU6W1z^6P`Yq{J z|Mi_=!Vz4Scu1H3py>)}_cu{lqa*i=X*7sW!8E+F@U@I0#Li?DdVT{^V55}j>Y~5$ z=*{q(5X&Pzb(3ohLbFVk@U(-Y2y_r7cKq^N67ITtrh6#{L&wzO3_U+JeOeMMk7-YT zTb-|37p(z)&X^o~P30zUKcoO_+Of+-)FA}m1FaFHCDS+Bfv!KWGw7SkGK1f_^?UZ6 zxPBui5c{U|6o*6`*_7#bpOSOurXkYCZ(KAhM&Eb%%{OfM%rk~=q(_j#phb5!5)-W< z4YP;2U{ztBvg}AzD;C=FfErJi=tvG3!;%QCu8_MXtWr$xby`cT_iBRP~WysMArjyDj{fighF78wPjO$w`px`ufpC3sUnigXX+&VGYx$Xi%u<+Z29#Q zleiLC?yfOfZp7dmm8*@PRFkocyMr4`mC-fk{Ln8hYZ!FX5=&uBD-%(9y!o<+-=Yv* zhp^1>3)ws!k$1(ad%pCo_43dsh@&4A4u67j{1VGW_q3|%HS}Fj(w1klmtBh&6Ha^UBsg@Gc)i^9 zWHm?O%@izPq5N{om&vC0ZDEW0mcYiqrO>Y`VlFpB)bJrpay)f;ZpG`i+2OKQN0vjY zp;wv^w71u#%H%FJezt0}QfZ^3G5651+b5x9JCc(}Dv8RAhw7IQdm_{!BN~FZzJiDx z?zlx+X-Wvg+U&D!YV7L$D~EShz{CV|jrs#~EOmrpjdItiwDD*yy-%E|^`ML*A-{U~ zz}Qg5oT+%$NKbg|ZLffeMW~G1_ima{>mMUXBqb1o_PJqll!wW{_ym#rv@t72$6q^S zC|wZ4u4XwOr>c!(ty+|0oo@Gf0daX0Dv^Bo4pdai8`yESyvZxJCIDh=Rm2A_u0%Y6Gyx)3CU8BFrY%R25Rr=loLaamO7%Oa@YWSj-{YI_d zIS_+JWMvd)?b%piG3MCT95pK}KH>*j9QiYeeknM@43zq_or50nM%#tvd{Zg$ulm~2 z10j&X5Ym*>ZoNt8#O)Fw%XD?c+N~hYX!~NFq%+mqH_FTjI=-^~KM-HBBJs5j(IFfo zK}HMHW2m76dgAvhjQ6nmPEKm2(r4(^!ssh+;mE)?6`Ycm7st=jeyaMlaU$9i$)Xf& zoIkQweS4_OQZH?7rbES9wVq2|DWd0sTk-Q2GSK6&r-`J*P9>wL(Si0>Yj3bQxh#(`b;~qLHy& zn>Ojnt%O9Vf_!~yb;@fURn>FxWzS1EMcyHd^Bc0pq05=sONB+l9((2cL?4IHO-}2G z4HU9IvX+h3RruPNn(Sh)Dg8$3;Deq@xO1uPWVELAS{%uh@1b(p)559?VZq|}@p1X< zz4_fPtD6((<||7kRl`5j>dnqF4;MS%yZ_bccsAwvj~l7Lbc}J~(DbUI8+z8~R=V`h z?rnwzRXdT+`t+JvS8IDNSl+lo@2GBLo!jkqn(Q}9k2Bs%>OM5+ra5;@jtP%z)-JbO zw+;~+4^j`LVel?35j!g$9c}j=+k1%;iRVY~2|j#fh?!VAhWt|gv}URE7*^92pcnSk zqrxW;S1AQVhF-R*_3g)z;yvxG*S zN1z^M-kmnDI;axEdM{DOCf2Kx9GbolIDHIyiuH?X<(ww!)sKrte!Bq{$gZ1_yp7;3 zwtCG^hvf0PEZwNY6qj^*&dlCx2^D|B7P>{$d0rQg5S85S zTD|G0qhD~#oeR@=ckhb6R&%cBvoEUte5g|5BP=PS0A{r}Is@Ur7ZnZ3Y?%dZ&U|zJ zaU6^Is9O;2d-s;l1x}>3y+b?(uBEO_*@_5_nVs7HfzU$Ro)a`+UJ_ncU|6B>A&gFOJ&;qt>lPrvR1``yXWX8 zNK7y^G+LN%+=F=iQ~eY&^UBUpRuGjS;)h3On?(bCq6kyJ%`-1~-A z1SNwZ45fD@{3E{lQuSx2M{m9^vzt_^w&05w;M6d1n^&913zU7lfCt^}nmF5yrK5`- z?o4OzCdSs>ID7Y|r>;8;ei(rrZ&+%or0IRM$a14|JcFe_MI%m)47lj=#T#6e9S8g9 z3i0;FhTV#_inBG59>9{2H)5LaWm8~3d%eP;|G~Lq%+@_XKNrLWN2L1k_|0*Eub|vy z%k9?Kb1t^UK4*OMbuBc^;A@|@n@-<$-m#+3QJV8g?*ue`X5U@9y%G+|X8c9s!*)j> z7&CP=LSOrgh9-AdOiEPOy1ksN2_iiXGnrlByFt8vA#)mo7Qa2L=CiQN;*OS!Qg9_| zi%;!mI+Hr|9Q`zgzn$|tj#_386?4lP3#uTtK%v=Cho2dxFT9Z?J2Eg(wei+kwh~X8 z)*nYzJ@ww)J+~PHG$xyjs8z~K7;#zqrs^+g>OcJWSr+-3btGQd{l_Bahh+M{(>+cmx1L)MBH@UqtMwf7M*?6K?_P<-CI_tE{W7gvORGR znB`i&g`)VBl=Mq?63;8^!DhXJbq&!h0VB3^4<@B16+7~dyl!Gvb39+xJ~A!W!)Y%a z?7pNVZm51m!^3>w9CMJtSv%U#>3vK(%>Iu=vc1mD@FlDMh;{K?8ZO&~TK+cN-LXAk z_kkRX?*+(pYfl!H1nBIeQ_~2Kv5gMIDBET<(0*g-0r|ZJikC_0yoL}c44;apFNm*z`%7SR=SuuGK^JT zoq^`zL?leQGhL{A`xwVKuKxHNI1*bBUi~di!mhv|UtSluDf2PRx@bW0;IiH`C+@vt zs=ua9zLEhyUzLG6_Z2xf8f}%?q{JHVW5|Nd1C?2s-U=eReJH@AdM|+gl zJ_GYk${*|JSkw5-vqDxy!bz;y?x?3%ySv!Ju$Z8`jg47$hI??jm`%th`D?Lluqrjf ztoxeO`uUEs{r3stTLkRqpi5ZU{y4!)--eg&HIK@A*Cq$J4faWT*PE*x>&nw=UjD4# zChI2baJe#28lJrrZ1ch|8Pas@U_}X3HVbMm;*{HtFXKK{F5TC-49ouZdj_osl}A^k z9*$#ml94QZAIcC0F3^mm=K;(xhb>3-a!i*$eBlbt7dL8O>S!Hr+7}Da;O%$72>yh&ho7#W;1j+7^)h zXyNcq{`fZOyW00C=60_(?ZhyB^(Z>TBI@ZZe{Tn>rmJP)PE9<)a^jAyZ**a9*zg>W z1$W!D^YHS%rLOo($OO@DK}e)KOJGzDw8)|%WUY&eYJcIPa#_s&i^}qIDw^l?-^(iL zf@HB1p&XNLRu&4WpHI{0mdskRNU%psM{ct1O(oAX?rP3^bs8a(R#MSHgcE-#$W#G_lJWVIJ~VWDf1O>s#^ z2}sXttj`?W`uo3ZTM>o0CbnE~E|!CG58sC{z&@>1*0vbms}&Y%@qAMMF8)&JfK)f5 z3K?*n7_T*tSuwLqHtkbd!7CRQmiWl|_x2AA<) zWP22KRWXjbqp>0>&9|{7^Q(EH-ZQhe)l~J5)Ngs0L(vmfSif)*H}OjKu*W_n#C8+y z=C>THNPTFmcDb>CW#!x>Lvht;sq0PRG!v5wW+HycgbI)b7`#TwihDWTltJ=@wpycl z?NH}eM9@+M1MEPz91wH|XA;g9qruf0=a)Y_R~|L$vEPuNc-iQaX8GPV&8DyOE?JuD zBGHNoug59Sr^e+?65WWmkhp0x_Vn98#X8#CO6e$e@cX5NesmV(36|FD3oFB!)|lMt zw>OJ#*_ZBmG#!n#c6J3JMJE2L9`nW8Q_G^XPjsx%s0p$v^a~fPSSm@PkeGi z;fmztx`%AcKVq9qA1t-_Qj);ju%e5QUlaV4R2$czM-Um~D{q426F2yE2KeOOMW%dS zK7LOf&mcyq)@${ zep@$jCXdH87p?%XU6xmNEDW+v$NLK`qQWWr5;I=fx*COJEiE@Wv^t#7?|UJV$X_=j zY*|+u*!W~g@hF&Upm%4FQdrx)>xRKjVlsdKuE4>){Y@G1S_BhHU5p0rus4k3q`UJl zb#U4ard4(sOt7)M{q}kaa6$C+(Z%aM52?BnVRB|zo_13NhMg#lD{Q~@z%~`RC>;mB zgQG>}m3Q!$m(6pAi%YZz1^OO8NzhcOtSu^k(C}$>yj+3gp|0xQynh|B5?KS5R@^g& zVDy$>kj_*OQYHrD{kDY`4mmbgcV6^5b}~lnj*Q6yJ=5pwy$@f8Jbl9g19hrD9%+Nu zrL}tm+P(KKXWVSJjd(9y=(7iA`jjH{*p2N+ndUsl4Rq_f+`{eRL)2pWsUhL2`t~0l zMtco}{@{RjFvCM|j_m8*tyH;M~;o!BRjQmyeXyX0>j$1ySQx0ST3V zTRUPl2a?U8VtaQUrVqwGGA4VU2UKP{B(`$&+}D>QJ6mtytH;w(5qZOEYztG|d)?-c z{r3kMdA#&NDSXivWiKB0$h6USp}rZQxx*_p z*vfDp0Xc3MB|H4vwO@(9QaQ>d7`(@OSue*5b`*8X>;QLfWTo`N624i9)O2@%BCJsy z-uIi$usb7dck%X1HeW_sF|^6S=Ob_E7u?U)2kh`$H@;RDpj>R0p<%-GwOQSFN1!s^ zfvTz*b|&8-H}g_e*zF7r5i{p>HQTlzL#2&PNdF$cV|6iMdFO{UbM zbT|ASZ$!}?uto46Q-Jv}ynuZYdc=CnTV2AYP3rrk0s5Zh)hdp%CwvSa)*{;B&Vdy2 ze_i7m&gC^5q5vO*B^V)*8QM7Gc9|O5;DxQZ1r3|2Go_vz%0R$NjmX^3CVj1BV3^S8 zvtE@qcKOu*lmPmzR(TkPFVf)n6(T&EVHmNY+V_}=Zmd#N7Lr#M8rqZry~yd+_8=9g zewDrlf7L2k`}wq@Rl2uyGg@-A*5mR%p*QMmt@2Pu5}!Th0$m(a>}R=n15cHcYJ}O5 z-6@nN9)?pvK(Nf}=b^I0vP|yN1f_sMtO;9)&_$NG1_a8~3_!Vv!@NIOUxZcg6f<=} z_Mao%YEv2|z~cg-%sQgsDoQ?3`3fcG-GNjRGhQsop_7;DLrGVH)bP+EeBgt4(wv;& zuMxY)lAKf9i7_(A4znt2Qg}6CmCCAZxeKGRj~nVz#OqVEyJcLYHUiECA`cQ-nSxxPfe3a3dH*jIID2nz}Io#-i29hqmiqZ>PH?| zyCG!*`;g)T;hNp429t)RS@Jeg`7eTQQJ$FG0&Qdk46)W;19rs@6u^Fb+p=YmHmeVl zK#N{iH8&TEOeF&_(fE(n6W;f_^=nV|PI0ZRU`$WB!l1`&;dBNi%dGx5Xk?-Rckn4c z`#g!`7n-fB#c<8IAqLzMa~mJ|xZU{d_I=rMY;t(?s#UUQh~A`EX72}-5Pq#A4OAu9 zNq`D(S~VuyAXgJ}@$ouf==SC_o*(b6!<`@7JpZ8dO*bGL=~|#Tz^8Yd(i#AvxGL2X z9_JR1o%p~m@YKct$Xb1d2Bo~FaA8~5VXCm>mNKF?1I}%u3$ISQ`(^sm95_P<{C)ZT zbM~){JOUYB)NXvDQ?2~JPBihMOKigSu*f?t6Fv|y#I3xxbS#}kV|eB|;}eyuMyfS8 z@A0CqDJ{>F2FKImbC%$=S{3*U`00h)vK{D7WW_s0$;BohICBoeymv>#Q`AbeD)A*% z@uwhqtbHL){3}TYD;~Pt%p@HCLa}cy$0L^vIJPXCQg_M5o)z^yoB1G36Zq?l!IEc) z?+S9J)tc1mHVbvUYOh}ebuHNRfL9CzbM;&Nm*%Vg1clz@`DF%gyWVVeep87-$}M25 zrfWii&nXG~O7Mxx#dqiK`P^J=J;<$2TK%+s6iZ1qeOcaANS(|~GSIhviuX$as6 zi?gf_c*?{LKZJ0zt*xU4+0QoIev))k_GeV{-Vd&N);u~zbjYN=GIpaE%Q(M@hE8E9 z$whm;hhGknjb)*q=u{>dfO?aFiE&P=z2ZI#Gmb11?flk#)$6Fjf)dx9H*U z4a5R++vVGUb9)OgVd(I!Bc|D!IIFx*vMZTQIy|X|SpG1b}RoNN3G0CP06j!UxtG znq7L$?rppL)}xd;i^Mgnh0p{ke&OFqf7pP#675A3wj*ENDOmEv=jO^i>LeARO~)md zD9X;mMjCTCL$oWh>-1Q#{ybJj2I{6FCx>nF5_+sMb}EQL`5%PG_D{KTebbbWG6;)# z(5A}yN4+}|pcSJXKhxcH{2R1gXE21TgKbq?DpHS{D)g7TyF{_f-|Bn+zx0