From 1e4676b7b7b858af721f0112d9024da6dd257f88 Mon Sep 17 00:00:00 2001 From: Shikong <919411476@qq.com> Date: Sat, 11 Sep 2021 18:30:18 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- notes/1.1.工具命令.md | 55 + notes/1.入门篇.md | 766 +++++++ notes/10.基础总结.md | 0 notes/2.基础篇.md | 896 ++++++++ notes/3.运算符、流程控制篇.md | 457 +++++ notes/4.数组.md | 966 +++++++++ notes/5.Map篇.md | 400 ++++ notes/6.指针、函数.md | 1461 ++++++++++++++ notes/7.错误处理篇.md | 1797 +++++++++++++++++ notes/8.接口篇.md | 665 ++++++ notes/9.包.md | 336 +++ ...81eed92d771.png@942w_512h_progressive.webp | Bin 0 -> 15070 bytes ...3145c64476e.png@942w_261h_progressive.webp | Bin 0 -> 20770 bytes ...ee9e48b7c23c03ddbfa8b9d27c04ce.gif@1s.webp | Bin 0 -> 17880 bytes ...0e2c545ffa8.png@942w_624h_progressive.webp | Bin 0 -> 31996 bytes ...80e318aa9b8.png@942w_317h_progressive.webp | Bin 0 -> 15400 bytes ...31649a1a8c0.png@942w_566h_progressive.webp | Bin 0 -> 11958 bytes ...d2ce045dd0d.png@806w_260h_progressive.webp | Bin 0 -> 9908 bytes ...fd5360f1362.png@671w_615h_progressive.webp | Bin 0 -> 7228 bytes ...805097c970f.png@651w_483h_progressive.webp | Bin 0 -> 13318 bytes ...7cda333967e.png@938w_554h_progressive.webp | Bin 0 -> 21350 bytes ...c2b2b8e3265ac0a26d216.png@progressive.webp | Bin 0 -> 270 bytes ...cd8edc0fcdd.png@942w_270h_progressive.webp | Bin 0 -> 17080 bytes ...a776bc74f33.png@942w_773h_progressive.webp | Bin 0 -> 45820 bytes ...5fd41f368d7.png@942w_452h_progressive.webp | Bin 0 -> 19824 bytes ...68e2bbfacd1.png@942w_249h_progressive.webp | Bin 0 -> 22760 bytes ...601d4275669.png@942w_551h_progressive.webp | Bin 0 -> 23984 bytes ...f9cacecdb74.png@288w_446h_progressive.webp | Bin 0 -> 3624 bytes ...f0cb6437457.png@942w_479h_progressive.webp | Bin 0 -> 21764 bytes ...595264d532a.png@942w_411h_progressive.webp | Bin 0 -> 24430 bytes ...ceded6dab69.png@942w_354h_progressive.webp | Bin 0 -> 9692 bytes ...b3477c9256f8b09f361d3.png@progressive.webp | Bin 0 -> 298 bytes ...35aac9e5f95.png@908w_882h_progressive.webp | Bin 0 -> 15136 bytes ...bd39cfb6657.png@573w_330h_progressive.webp | Bin 0 -> 4302 bytes ...287b43838fb.png@590w_440h_progressive.webp | Bin 0 -> 6942 bytes ...95c14f7d0f9.png@669w_737h_progressive.webp | Bin 0 -> 9796 bytes ...0d65736a603.png@942w_399h_progressive.webp | Bin 0 -> 14290 bytes ...9dd9d674016.png@942w_410h_progressive.webp | Bin 0 -> 18702 bytes ...a052db46c90.png@942w_417h_progressive.webp | Bin 0 -> 9458 bytes ...100e0b52897.png@942w_447h_progressive.webp | Bin 0 -> 5926 bytes ...d5e8563960.png@906w_1031h_progressive.webp | Bin 0 -> 30674 bytes ...870a832d1d7.png@900w_624h_progressive.webp | Bin 0 -> 26824 bytes ...47a1a7aca30.png@894w_182h_progressive.webp | Bin 0 -> 3094 bytes ...e0b8f39b342.png@942w_447h_progressive.webp | Bin 0 -> 5794 bytes ...a067d23cf91.png@942w_459h_progressive.webp | Bin 0 -> 36690 bytes ...ad49a1f8d86.png@942w_566h_progressive.webp | Bin 0 -> 13568 bytes ...1504dddece8.png@942w_761h_progressive.webp | Bin 0 -> 20650 bytes ...fc984a7ce99.png@942w_590h_progressive.webp | Bin 0 -> 17498 bytes ...5810c6fa1f1.png@930w_558h_progressive.webp | Bin 0 -> 11872 bytes ...5485663654d.png@942w_741h_progressive.webp | Bin 0 -> 22122 bytes ...8e031e8962d.png@942w_515h_progressive.webp | Bin 0 -> 24880 bytes 51 files changed, 7799 insertions(+) create mode 100644 notes/1.1.工具命令.md create mode 100644 notes/1.入门篇.md create mode 100644 notes/10.基础总结.md create mode 100644 notes/2.基础篇.md create mode 100644 notes/3.运算符、流程控制篇.md create mode 100644 notes/4.数组.md create mode 100644 notes/5.Map篇.md create mode 100644 notes/6.指针、函数.md create mode 100644 notes/7.错误处理篇.md create mode 100644 notes/8.接口篇.md create mode 100644 notes/9.包.md create mode 100644 notes/assets/101eef1b4984a49abfc27a360911e81eed92d771.png@942w_512h_progressive.webp create mode 100644 notes/assets/13e14c6da60930aa4dad336ce26f83145c64476e.png@942w_261h_progressive.webp create mode 100644 notes/assets/205355dda9ee9e48b7c23c03ddbfa8b9d27c04ce.gif@1s.webp create mode 100644 notes/assets/27fe8a5dd8aa47fa49b7a5db789310e2c545ffa8.png@942w_624h_progressive.webp create mode 100644 notes/assets/33a21416936ef1c3c549919e0a87680e318aa9b8.png@942w_317h_progressive.webp create mode 100644 notes/assets/409d6915ad09c30f3dbfbf4c4b78931649a1a8c0.png@942w_566h_progressive.webp create mode 100644 notes/assets/41174379a6968c2226a0fc60f0b19d2ce045dd0d.png@806w_260h_progressive.webp create mode 100644 notes/assets/4626ccc778fa93883c3802e0849befd5360f1362.png@671w_615h_progressive.webp create mode 100644 notes/assets/478fe9a354e7c36e7cf403019faed805097c970f.png@651w_483h_progressive.webp create mode 100644 notes/assets/4a251c64e46b578d48f7bbd228aaa7cda333967e.png@938w_554h_progressive.webp create mode 100644 notes/assets/4aa545dccf7de8d4a93c2b2b8e3265ac0a26d216.png@progressive.webp create mode 100644 notes/assets/4c3bdce2b26e8bc3baf4eb341161acd8edc0fcdd.png@942w_270h_progressive.webp create mode 100644 notes/assets/5c060ab80e0342858f4e36fceec46a776bc74f33.png@942w_773h_progressive.webp create mode 100644 notes/assets/6430f2bbc96a68ddeb83b826ab9fc5fd41f368d7.png@942w_452h_progressive.webp create mode 100644 notes/assets/6a1c46098135c9607151fade0505268e2bbfacd1.png@942w_249h_progressive.webp create mode 100644 notes/assets/6ac4a9e0b61cd0685e7ca10670986601d4275669.png@942w_551h_progressive.webp create mode 100644 notes/assets/6b536e2396cd0da41aa7e26d9c1a2f9cacecdb74.png@288w_446h_progressive.webp create mode 100644 notes/assets/6d4bdcba8912f91f836f5f48691e2f0cb6437457.png@942w_479h_progressive.webp create mode 100644 notes/assets/6e1833b21e3963f9c14a547fe2771595264d532a.png@942w_411h_progressive.webp create mode 100644 notes/assets/6ea5df085af746954c716a7838370ceded6dab69.png@942w_354h_progressive.webp create mode 100644 notes/assets/71bf2cd56882a2e97f8b3477c9256f8b09f361d3.png@progressive.webp create mode 100644 notes/assets/775cbe23ce1a1ce9ea9cb5ac0290a35aac9e5f95.png@908w_882h_progressive.webp create mode 100644 notes/assets/7a1fa5379fa2bf8421544374b46a5bd39cfb6657.png@573w_330h_progressive.webp create mode 100644 notes/assets/85747a2e196b326742c407ae2a3f5287b43838fb.png@590w_440h_progressive.webp create mode 100644 notes/assets/861892fefa98d4bb566d1776b724995c14f7d0f9.png@669w_737h_progressive.webp create mode 100644 notes/assets/87cb44700a637253cb3fdb0a2fb2c0d65736a603.png@942w_399h_progressive.webp create mode 100644 notes/assets/8e2305d5dc1de204fa366cac4abac9dd9d674016.png@942w_410h_progressive.webp create mode 100644 notes/assets/9ca17bc7a667b9879a8fde110e5d6a052db46c90.png@942w_417h_progressive.webp create mode 100644 notes/assets/9df3291e8cba1df403b00f4dd67ca100e0b52897.png@942w_447h_progressive.webp create mode 100644 notes/assets/b83caffa0941d9b3c929e09be07098d5e8563960.png@906w_1031h_progressive.webp create mode 100644 notes/assets/bb07174f845a5c5495945a63f03d5870a832d1d7.png@900w_624h_progressive.webp create mode 100644 notes/assets/cbdb6330853dcdebe52b45d73111247a1a7aca30.png@894w_182h_progressive.webp create mode 100644 notes/assets/cd6e549aff74fe8aa8bc262566706e0b8f39b342.png@942w_447h_progressive.webp create mode 100644 notes/assets/da92a01501b0356acdde8107417b0a067d23cf91.png@942w_459h_progressive.webp create mode 100644 notes/assets/dbe8a06f8a3d61f2e167d7b3ee3c5ad49a1f8d86.png@942w_566h_progressive.webp create mode 100644 notes/assets/df0b4dfdfcd79b3a5c181b7f529c41504dddece8.png@942w_761h_progressive.webp create mode 100644 notes/assets/e0340a28184fc7c34680178c16c61fc984a7ce99.png@942w_590h_progressive.webp create mode 100644 notes/assets/e850cd44113c98ed6b73060c17c415810c6fa1f1.png@930w_558h_progressive.webp create mode 100644 notes/assets/f5e12e4882753fee5ba818396bd935485663654d.png@942w_741h_progressive.webp create mode 100644 notes/assets/fed8f7e698d83114c8224e3823c6f8e031e8962d.png@942w_515h_progressive.webp diff --git a/notes/1.1.工具命令.md b/notes/1.1.工具命令.md new file mode 100644 index 0000000..6aaa90a --- /dev/null +++ b/notes/1.1.工具命令.md @@ -0,0 +1,55 @@ +#### 0x00 Go工具命令 + +##### get 命令 + +该命令可以借助`代码管理工具`通过远程拉取或更新代码包及其依赖包,并自动`完成编译和安装`,整个过程类似安装App一样; + +目前支持的动态获取远程代码包的有`BitBucket、GitHub、Google Code 和 Launchpad`,所以为了 go get 命令能正常工作您需要安装与远程包仓库匹配的代码管理工具,如 `Git、SVN、HG` 等,由于它自动根据不同的域名调用不同的源码工具,对应关系如下: + +``` +BitBucket (Mercurial Git) +GitHub (Git) +Google Code Project Hosting (Git, Mercurial, Subversion) +Launchpad (Bazaar) +``` + + + +该命令内部实际上分成了两步操作: + +- 第一步是下载源码包假设远程包的路径格式 + + ``` + github.com/golang/go + ``` + + ``` + #比如github网站的项目包路径都有一个共同的标准 + github.com - 网站域名:表示代码托管的网站,类似于电子邮件 @ 后面的服务器地址。 + golang - 作者或机构: 表明这个项目的归属,一般为网站的用户名,如果需要找到这个作者下的所有项目,可以直接在网站上通过搜索“域名/作者”进行查看。( 似于电子邮件 @ 前面的部分。) + go - 项目名称 :每个网站下的作者或机构可能会同时拥有很多的项目,图中标示的部分表示项目名称。 + ``` + +- 第二步是执行 go instal + +参数介绍: + +``` +$go get [options] +* -d 只下载不安装 +* -f 只有在你包含了 -u 参数的时候才有效,不让 -u 去验证 import 中已经获取了的包(`对于本地 fork 的包特别有用`) +* -fix 在获取源码之后先运行 fix,然后再去做其他的事情 +* -t 同时也下载需要为运行测试所需要的包 +* -u 下载丢失的包,但不会更新已经存在的包 +* -v 显示操作流程的日志及信息,方便检查错误 +* -insecure 允许使用不安全的 HTTP 方式进行下载操作 +``` + + + +基础实例: + +``` +#例如想获取 go 的源码并编译,然后他会编译安装到 GOPATH 目录中 +$ go get github.com/davyxu/tabtoy +``` \ No newline at end of file diff --git a/notes/1.入门篇.md b/notes/1.入门篇.md new file mode 100644 index 0000000..2a318da --- /dev/null +++ b/notes/1.入门篇.md @@ -0,0 +1,766 @@ +**目录一览:** + +- 0x00 前言简述 + +- - What,什么是Go语言? + - Why,为啥要用Go语言? + - How,Go语言发展前景? + +- 0x01 Go语言开发环境搭建 + +- - Hello World + - Http Web Server + - Echo 类似命令程序 + - (1) Ubuntu桌面版 + - (2) 开发编辑器 + - 版本平台 + - 开发环境 + - Let,Go + +- 0x02 Go 项目结构 + +- - (1)适合个人开发者 + - (2)适合企业开发场景 + - (3)目前流行的项目结构 + + + +![img](assets/4aa545dccf7de8d4a93c2b2b8e3265ac0a26d216.png@progressive.webp) + +# 0x00 前言简述 + +**为什么你应该学习Go语言?** + +> 世界上已经有太多太多的编程语言了,为什么又出来一个Go语言? +> 因为其编程语言的良好特性和Google公司强势推广以及以Go语言相关开源项目火爆, 比如 `etcd、kubernetes、Prometheus` 等项目, 其次是硬件性能提高则我们需要高性能的软件 + +- 1.参考 Golang 编程语言排行榜 : https://www.tiobe.com/tiobe-index + +![WeiyiGeek.2010-2021年Go编程趋势](assets/f5e12e4882753fee5ba818396bd935485663654d.png@942w_741h_progressive.webp) + +- 2.硬件限制(摩尔定律)已然失效 + +> 摩尔定律:当价格不变时,集成电路上可容纳的元器件的数目,约每隔18-24个月便会增加一倍,性能也将提升一倍。 换言之,每一美元所能买到的电脑性能,将每隔18-24个月翻一倍以上。 + +![WeiyiGeek.1975-2015年处理器集体管数量](assets/bb07174f845a5c5495945a63f03d5870a832d1d7.png@900w_624h_progressive.webp) + +从上面的图表可以看出,近十年单线程性能和处理器频率保持稳定。我们不能像之前一样把添加更多晶体管当成是解决方案,因为在较小规模上一些量子特性开始出现(如隧道效应),并且因为在同样小的空间里放置更多晶体管的代价非常昂贵,每1美元可以添加的晶体管数量开始下降。 + +制造商开始从其他方面提高处理器的性能, 但这中解决方案也有其自身的局限性。因为成本原因我们不能无限制的为计算机添加内核,也无法无限制的添加缓存来提高性能,因为缓存越大,取值的性能越低。 + + + +```shell +* 1.向处理器添加越来越多的内核,如四核和八核CPU。 +* 2.发明了超线程技术。 +* 3.为处理器添加了更多缓存以提高性能。 +``` + + + +Tips : 一旦我们没有办法在硬件上一直取得突破,我们只能提高软件的性能或者说我们需要高性能的软件。 + +如上所述,硬件制造商正在为处理器添加越来越多的内核以提高性能。所有数据中心都在这些处理器上运行,更重要的是,今天的应用程序使用多个微服务来维护数据库连接,消息队列和维护缓存。因此,开发的软件和编程语言应该可以轻松地支持并发性,并且应该能够随着CPU核心数量的增加而可扩展。 + + + +**发展历史** +描述: 大多数现代编程语言(如Java,Python等)都来自90年代的单线程环境。虽然一些编程语言的框架在不断地提高多核资源使用效率,例如 Java 的 Netty 等,但仍然需要开发人员花费大量的时间和精力搞懂这些框架的运行原理后才能熟练掌握。 + +- Go 于 2007年9月由于`罗伯特·格瑞史莫、罗勃·派克及肯·汤普逊于开始设计,[3]稍后伊恩·兰斯·泰勒(Ian Lance Taylor)、拉斯·考克斯(Russ Cox)`加入项目。 + +![WeiyiGeek.Go核心开发团队](assets/da92a01501b0356acdde8107417b0a067d23cf91.png@942w_459h_progressive.webp) + +- Go 于 2009年11月正式宣布推出,版本1.0在2012年3月发布,之后Go广泛应用于Google的产品以及许多其他组织和开源项目。 +- Go 于 2009年11月10日由Google发布推出,成为开放源代码项目,支持Linux、macOS、Windows等操作系统。2005 年 AMD 速龙发布第一款民用级多核处理器,所以当时多核处理器已经上市。 + +![WeiyiGeek.为现代软件工程而生的Go](assets/6d4bdcba8912f91f836f5f48691e2f0cb6437457.png@942w_479h_progressive.webp) + +Tips : 在2016年,Go 被软件评价公司TIOBE选为`"TIOBE 2016年最佳语言"`。 + +# What,什么是Go语言? + +描述:`Go(又称Golang[4]-Google-go-language)`是Google开发的一种`静态强类型`、`编译型`、`并发型`,并具有`垃圾回收功能、优良的并行设计`的编程语言, 其被誉为21世纪的C语言, 因为其Go的语法接近C语言,但对于变量的声明有所不同。 + +Go的并行计算模型是`以东尼·霍尔`的通信顺序进程(CSP)为基础,采取类似模型的其他语言包括`Occam`和`Limbo`,Go也具有这个模型的特征,比如通道传输,通过`goroutine`和通道等并行构造可以建造线程池和管道等。 + +- (1) 与 `C++` 相比 Go 并不包括如`枚举、异常处理、继承、泛型、断言、虚函数`等功能,但增加了`切片(Slice) 型、并发、管道、垃圾回收功能、接口等`特性的语言级支持以及支持垃圾回收功能。 +- (2) 不同于 Java,Go原生提供了关联数组(也称为`哈希表(Hashes)`或`字典(Dictionaries)`)。 + + + +**Goroutine 并行设计** +描述: + +透过Goroutine能够让程序以异步的方式运行,而不需要担心一个函数导致程序中断,因此Go也非常地适合网络服务。 + +假设有个程序,里面有两个函数: + +```go +func main() { + // 假設 loop 是一個會重複執行十次的迴圈函式。 + // 迴圈執行完畢才會往下執行。 + loop() + // 執行另一個迴圈。 + loop() +} +``` + + + +如此就不需要等待该函数运行完后才能运行下一个函数。 + +```go +func main() { + // 透過 `go`,我們可以把這個函式同步執行, + // 如此一來這個函式就不會阻塞主程式的執行。 + go loop() + // 執行另一個迴圈。 + loop() +} +``` + + + +**参考来源:** +Wiki 百科 : https://wiki.weiyigeek.top/w/index.php?search=go&title=Special:搜索&go=前往 +官方网站 : + +- https://golang.org/ +- https://golang.google.cn/ + +# Why,为啥要用Go语言? + +**Go 语言有何特点:** + +- 0.Go语言语法简单易学、代码风格统一`(自动格式化)`、支持垃圾回收功能、执行性能好、是企业级编程语言。 + +> Go 语言简单易学,学习曲线平缓,不需要像 C/C++ 语言动辄需要两到三年的学习期。 +> Go 语言的风格类似于C语言。其语法在C语言的基础上进行了大幅的简化,去掉了不需要的表达式括号,循环也只有 for 一种表示方法,就可以实现数值、键值等各种遍历。 +> Go 语言提供了一套格式化工具`go fmt`, 在开发环境或者编辑器在保存时,都会使用格式化工具进行修改代码的格式化,这样就保证了不同开发者提交的代码都是统一的格式。 + + + +- 1.Go语言让你用写Python代码的开发效率编写C语言代码 (`编程范型: 编译型,可平行化,结构化,指令式`)。 +- 2.Go语言从底层原生支持并发,无须第三方库、开发者的编程技巧和开发经验。 + +> Go语言的并发是基于 goroutine(`类似于线程,但并非线程`) 的。可以将 goroutine 理解为一种虚拟线程。Go 语言运行时会参与调度 goroutine,并将 goroutine 合理地分配到每个 CPU 中,最大限度地使用CPU性能。开启一个goroutine的消耗非常小(`大约2KB的内存`),你可以轻松创建数百万个goroutine。 +> goroutine的特点: + +\* 具有可增长的分段堆栈。这意味着它们只在需要时才会使用更多内存。 * 启动时间比线程快。 * 原生支持利用channel安全地进行通信。 * 共享数据结构时无需使用互斥锁。 + +- 3.Go语言性能强悍,同`C,C++`一样Go语言也是编译型的语言,它直接将人类可读的代码编译成了处理器可以直接运行的二进制文件,执行效率更高,性能更好。 + +解释型语言:Shell 语言、Python 语言、PHP 语言 编译型语言:C 语言、C++ 语言、Go 语言 + +![WeiyiGeek.编译型的语言](assets/dbe8a06f8a3d61f2e167d7b3ee3c5ad49a1f8d86.png@942w_566h_progressive.webp) + +由下图可以看出,Go 语言在性能上更接近于 Java 语言,虽然在某些测试用例上不如经过多年优化的 Java 语言,但毕竟 Java 语言已经经历了多年的积累和优化。Go 语言在未来的版本中会通过不断的版本优化提高单核运行性能。 + +![WeiyiGeek.常见编程语言运行性能比较](assets/6a1c46098135c9607151fade0505268e2bbfacd1.png@942w_249h_progressive.webp) + +数据来源:https://benchmarksgame-team.pages.debian.net/benchmarksgame/ + + + +**Go 语言的缺陷** + +Tips : Go 2.0 版本将支持泛型,对于断言的存在,则持负面态度,同时也为自己不提供类型继承来辩护。 + +# How,Go语言发展前景? + +目前Go语言已经⼴泛应用于人工智能、云计算开发、容器虚拟化、⼤数据开发、数据分析及科学计算、运维开发、爬虫开发、游戏开发等领域。 + +Go语言简单易学,天生支持并发,完美契合当下高并发的互联网生态,并且在多核并发上拥有原生的设计优势, 很多公司,特别是中国的互联网公司,即将或者已经完成了使用 Go 语言改造旧系统的过程。经过 Go 语言重构的系统能使用更少的硬件资源获得更高的并发和I/O吞吐表现。充分挖掘硬件设备的潜力也满足当前精细化运营的市场大环境。 + +所以当下程序开发者应该抓住趋势,要学会做一个领跑者而不是跟随者。 +国内Go语言的需求潜力巨大,目前无论是国内大厂还是新兴互联网公司基本上都会有Go语言的岗位需求。 + + + +**Go 在互联网企业应用以及使用它的公司:** + +- Go在百度内部应用(百度流量入口BFE、自动驾驶、百度只能小程序、百度APP) +- Go在腾讯内部应用(蓝鲸运维平台、微服务框架TarsGo、云平台) +- Go在知乎内部应用(知乎全站重构) + +![WeiyiGeek.应用Go语言的公司](assets/13e14c6da60930aa4dad336ce26f83145c64476e.png@942w_261h_progressive.webp) + +现在就开始你的Go语言学习之旅吧!人生苦短,let’s Go, 下面我们将进行Go开发环境安装实践。 + +# 0x01 Go语言开发环境搭建 + +描述: 本章节主要讲解安装Go语言及搭建Go语言开发环境。 + +Tips : Go语言1.11版本之后,开启go mod模式之后就不再强制需要配置GOPATH了。 +Tips : Go语言1.14版本之后,推荐使用go modules管理依赖,也不再需要把代码写在GOPATH目录下了,之前旧版本的教程戳这个链接。 + +**下载地址:** +Go官网下载 : https://golang.org/dl/ +Go官方镜像站(推荐):https://golang.google.cn/dl/ & https://studygolang.com/dl + + + +# 版本平台 + +描述: Windows平台和Mac平台推荐下载可执行文件版,Linux平台下载压缩文件版。 + +当前 2021年7月28日 22:43:15 最新版本为1.16.16版。 + +- Source: 源代码编译安装-https://dl.google.com/go/go1.16.6.src.tar.gz +- Binary: 二进制解压安装-https://dl.google.com/go/go1.16.6.linux-amd64.tar.gz + +Tips :由于时间的推移的1.16.6版本号可能并不是最新的,但总体来说安装教程是类似的,Go语言更新迭代比较快,推荐使用较新版本,体验最新特性。 + +**Windows** +描述: 此安装实例以 64位 Win10 系统安装 `Go 1.14.1` 可执行文件版本为例, 双击下载好的文件,然后按照下图的步骤安装即可。 + +![WeiyiGeek.Windows](assets/27fe8a5dd8aa47fa49b7a5db789310e2c545ffa8.png@942w_624h_progressive.webp) + + + +**Linux** +如果不是要在Linux平台敲go代码就不需要在Linux平台安装Go,我们开发机上写好的go代码只需要跨平台编译(详见文章末尾的跨平台编译)好之后就可以拷贝到Linux服务器上运行了,这也是go程序跨平台易部署的优势。 + + + +```shell +#1.下载二进制源码包并将将下载的源码包解压至 /usr/local目录 +wget https://dl.google.com/go/go1.16.6.linux-amd64.tar.gz +tar -C /usr/local -xzf go1.16.6.linux-amd64.tar.gz + +#2.将 /usr/local/go/bin 目录添加至PATH环境变量 +#在/root/.profile进行添加 +export GOROOT=/usr/local/go # 安装目录 +#GOROOT 第三方包的安装包路径 +export GOPATH=/home/go/ # 项目路径一般指向src +#需要BIN目录和GOPATH +export PATH=$PATH:$GOROOT/bin + +#3.验证是否安装成功, 可以打开终端窗口输入go version命令,查看安装的Go版本。 +go env +go version go version go1.16.6 linux/amd64 + +#4.go语言程序编译运行 +package main +import "fmt" +func main() { + fmt.Println("Hello, World!") +} + +#5.编译运行hello.go +go build hello.go +go run hello.go && ./hello +``` + +![WeiyiGeek.Go-Binary](assets/b83caffa0941d9b3c929e09be07098d5e8563960.png@906w_1031h_progressive.webp) + + + +# 开发环境 + +描述: 由于本人习惯于使用Ubuntu作为开发环境,此处Go语言的学习环境以`Ubuntu 20.04 Desktop`版本为例进行。 + +# (1) Ubuntu桌面版 + +- Ubuntu 20.04 LTS Desktop 操作系统 : https://ubuntu.com/download/desktop +- Ubuntu 20.04 LTS Desktop 基本配置 : https://mp.weixin.qq.com/s/6Ip[AV5](https://www.bilibili.com/video/AV5)-Hdi-mpbH9XlTCOw + +```shell +# (1) xrdp 安装与配置 : https://mp.weixin.qq.com/s/JA04lJrQETDXP0N_mrthJg + # xfce4 桌面 + # echo xfce4-session > ~/.xsession + +# (2) ZSH 命令行终端优化 : https://mp.weixin.qq.com/s/8i0K2D-hp51U6UFOd25c2Q + +# (3) 中文输入法安装 : + - https://pinyin.sogou.com/linux/help.php + - https://srf.baidu.com/site/guanwang_linux/index.html +``` + +- Ubuntu 20.04 LTS Desktop 安装配置 Go 语言: + +```shell +# 环境变量 +vim /etc/profile.d/golang-env.sh +export GOROOT=/home/weiyigeek/app/program/go +export GOPATH=/home/weiyigeek/app/program/project/go +export PATH=${PATH}:${GOROOT}/bin + +# 创建 bin,pkg,src +mkdir -vp ${GOPATH}/{bin,pkg,src} +mkdir: 已创建目录 'go' +mkdir: 已创建目录 'go/bin' # 用于存放编译后生成的可执行文件 +mkdir: 已创建目录 'go/pkg' # 用于存放编译生成的归档文件 +mkdir: 已创建目录 'go/src' # 用于存储源码文件代理包以及自开发包 + +# 重开Shell验证版本 +source /etc/profile +go version + # go version go1.16.6 linux/amd64 +``` + +**环境变量:** +描述: 利用 `go env` 命令查看相关go语言相关的环境变量 + +```shell +GO111MODULE="on" +GOARCH="amd64" +GOBIN="" +GOCACHE="/home/weiyigeek/.cache/go-build" +GOENV="/home/weiyigeek/.config/go/env" +GOEXE="" +GOFLAGS="" +GOHOSTARCH="amd64" +GOHOSTOS="linux" +GOINSECURE="" +GOMODCACHE="/home/weiyigeek/app/program/project/go/pkg/mod" +GONOPROXY="" +GONOSUMDB="" +GOOS="linux" +GOPATH="/home/weiyigeek/app/program/project/go" +GOPRIVATE="" +GOPROXY="https://goproxy.cn,direct" +GOROOT="/home/weiyigeek/app/program/go" +GOSUMDB="sum.golang.org" +GOTMPDIR="" +GOTOOLDIR="/home/weiyigeek/app/program/go/pkg/tool/linux_amd64" +GOVCS="" +GOVERSION="go1.16.6" +GCCGO="gccgo" +AR="ar" +CC="gcc" +CXX="g++" +CGO_ENABLED="1" +GOMOD="/dev/null" +CGO_CFLAGS="-g -O2" +CGO_CPPFLAGS="" +CGO_CXXFLAGS="-g -O2" +CGO_FFLAGS="-g -O2" +CGO_LDFLAGS="-g -O2" +PKG_CONFIG="pkg-config" +GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build3886050940=/tmp/go-build -gno-record-gcc-switches" +``` + +**常用变量解析:** + +- GOROOT : 指定安装Go语言开发包的解压路径。 +- GOPATH : 指定外部Go语言代码开发工作区目录, 从`Go 1.8`版本开始Go开发包在安装完成后会为GOPATH设置一个默认目录,并且在`Go 1.14`及之后的版本中启用了`Go Module`模式之后,不一定非要将代码写到`GOPATH`目录下,所以也就不需要我们再自己配置GOPATH了使用默认的即可。 + +```shell +# - 在 Go 1.8 版本之前,GOPATH环境变量默认是空的。从 Go 1.8 版本开始,Go 开发包在安装完成后会为 GOPATH设置一个默认目录,参见下述。 +# GOPATH在不同操作系统平台上的默认值 +平台 GOPATH默认值 举例 +Windows %USERPROFILE%/go C:\Users\用户名\go +Unix $HOME/go /home/用户名/go + +# - 同时,我们将 GOROOT下的bin目录及GOPATH下的bin目录都添加到环境变量中。 + +# - 配置环境变量之后需要重启你电脑上已经打开的终端。(例如cmd、VS Code里面的终端和其他编辑器的终端)。 +``` + +- GOPROXY : 指定代理Go语言从公共代理仓库中快速拉取您所需的依赖代码(建议 Go > 1.13)。 + +```shell +# - 1. goproxy.io 是全球最早的 Go modules 镜像代理服务之一, 采用 CDN 加速服务为开发者提供依赖下载, 该服务由一批热爱开源, 热爱 Go 语言的年轻人开发维护。 +# - 2. goproxy.cn 中国最可靠的 Go 模块代理, 由七牛云 CDN 在全球范围内加速我们的服务。 +# - 3. goproxy.baidu.com 百度Go Module代理仓库服务, 你可以利用该代理来避免DNS污染导致的模块拉取缓慢或失败的问题加速你的构建。 + +# Go 1.13 及以上(推荐) +$ go env -w GO111MODULE=on +$ go env -w GOPROXY=https://goproxy.cn,direct +$ go env -w GOPROXY=https://goproxy.io,direct +$ go env -w GOPROXY=https://goproxy.baidu.com/,direct + +# Bash (Linux or macOS) +# 配置 GOPROXY 环境变量 +export GO111MODULE=on +export GOPROXY=https://goproxy.io,direct +# 还可以设置不走 proxy 的私有仓库或组,多个用逗号相隔(可选) +export GOPRIVATE=git.mycompany.com,github.com/my/private + +# PowerShell (Windows) +# 配置 GOPROXY 环境变量 +$env:GO111MODULE = "on" +$env:GOPROXY = "https://goproxy.io,direct" +# 还可以设置不走 proxy 的私有仓库或组,多个用逗号相隔(可选) +$env:GOPRIVATE = "git.mycompany.com,github.com/my/private" +``` + + + +# (2) 开发编辑器 + +描述: Go采用的是UTF-8编码的文本文件存放源代码,理论上使用任何一款文本编辑器都可以做Go语言开发,这里推荐使用`VS Code`和`Goland`。 + +- VS Code 是微软开源的编辑器 +- Goland 是jetbrains出品的付费IDE。 + +**2.1 Visual Studio Code** +描述: VS Code全称Visual Studio Code,是微软公司开源的一款免费现代化轻量级代码编辑器,支持几乎所有主流的开发语言的语法高亮、智能代码补全、自定义热键、括号匹配、代码片段、代码对比 Diff、GIT 等特性,支持插件扩展,支持 Win、Mac 以及 Linux平台。 + +Tips : 虽然不如某些IDE功能强大,但是它添加Go扩展插件后已经足够胜任我们日常的Go开发, 并支持三大主流平台都支持,请根据自己的电脑平台选择对应的安装包。 + +VS Code 官方下载地址:https://code.visualstudio.com/Download + +- Step 1.在Ubuntu中安装deb格式的 `VS code` 开发软件。 + +```shell +$ wget https://az764295.vo.msecnd.net/stable/c3f126316369cd610563c75b1b1725e0679adfb3/code_1.58.2-1626302803_amd64.deb +$ dpkg -i ode_1.58.2-1626302803_amd64.deb +$ code +1.58.2 +c3f126316369cd610563c75b1b1725e0679adfb3 +x64 +``` + +- Step 2.VS Code 基础 Go 开发环境配置 + +```shell +# (1) 安装中文简体插件: +> 点击左侧菜单栏最后一项管理扩展,在搜索框中输入 chinese ,选中结果列表第一项,点击install安装。 +> 安装完毕后右下角会提示重启 `VS Code`,重启之后你的`VS Code`就显示中文啦! + +# (2) 安装Go扩展: +> 现在我们要为我们的`VS Code`编辑器安装Go扩展插件,让它支持Go语言开发,在搜索框中输入 chinese 。 + +# (3) 安装Go语言开发工具包: +> 在Go语言开发的时候为我们提供诸如代码提示、代码自动补全等功能。 +> 在此之前请先设置GOPROXY,打开终端执行以下命令: go env -w GOPROXY=https://goproxy.cn,direct +> Windows平台按下`Ctrl+Shift+P`,Mac平台按`Command+Shift+P`,这个时候VS Code界面会弹出一个输入框,如下图: +> 我们在这个输入框中输入 `go:install`,下面会自动搜索相关命令,我们选择 `Go:Install/Update Tools`这个命令,按下图选中并会回车执行该命令(或者使用鼠标点击该命令) +> 在弹出的窗口选中所有,并点击“确定”按钮,进行安装。 +# Tools environment: GOPATH=/home/weiyigeek/app/program/project/go +# Installing 10 tools at /home/weiyigeek/app/program/project/go/bin in module mode. +# gopkgs +# go-outline +# gotests +# gomodifytags +# impl +# goplay +# dlv +# dlv-dap +# staticcheck +# gopls +> 最终会在终端中显示 successful 则为安装成功。 +``` + +![WeiyiGeek.Go开发依赖软件](assets/5c060ab80e0342858f4e36fceec46a776bc74f33.png@942w_773h_progressive.webp) + +- Step 3.编辑器主题变更,依次点击设置->颜色主题,然后在弹出的窗口选择你喜欢的主题, 本人比较喜欢使用Dark 暗黑的主题。 +- Step 4.配置VSCode开启自动保存,依次点击 文件->首选项->设置,打开设置页面就能看到自动保存相关配置如下图,可以根据自己的喜好选择自动保存的方式: +- Step 5.配置代码片段快捷键,还是按Ctrl/Command+Shift+P,按下图输入>snippets,选择命令并执行, 然后在弹出的窗口点击选择go选项,然后弹出如下代码页面: + +```shell +# 用法: +"代码块主要名称":{ + "prefix": "快捷键简写", + "body": "这里是按快捷键插入的代码片段", + "description": "这里放提示信息的描述" +} + +# 示例: 其中$0表示最终光标提留的位置。 举个例子,我这里创建了两个快捷方式,一个是输入pln就会在编辑器中插入fmt.Println()代码;输入plf,就会插入fmt.Printf("")代码。 +{ + "initcode":{ + "prefix": "init", + "body": [ + "package main", + "import \"fmt\"", + "func main(){", + "fmt.Println($0)", + "}", + ], + "description": "快速插入一个简单的Go Main 示例代码块" + }, + + "println":{ + "prefix": "pln", + "body":"fmt.Println($0)", + "description": "Println,Line feed printing" + }, + + "printf":{ + "prefix": "ptf", + "body": "fmt.Printf(\"$0\")", + "description": "printf,Normal printout" + }, + + "sprintf":{ + "prefix": "sptf", + "body": "fmt.Sprintf(\"$0\")", + "description": "将拼接的字符串返回给变接收量" + } +} +``` + +![WeiyiGeek.自动保存与代码片段快捷键](assets/4c3bdce2b26e8bc3baf4eb341161acd8edc0fcdd.png@942w_270h_progressive.webp) + +- Step 6.把上面的代码,按下图方式粘贴到配置文件中,保存并关闭配置文件即可。然后我们打开一个go文件,测试一下效果: + +GIF + +![WeiyiGeek.代码片段快捷键效果](assets/205355dda9ee9e48b7c23c03ddbfa8b9d27c04ce.gif@1s.webp) + + + +# Let,Go + +描述: 此处是学习一门新语言的常规操作输出 Hello World , 现在我们来创建第一个Go项目 hello.go + +**初始化项目: go mod init** +描述: 使用go module模式新建项目时,我们需要通过 `go mod init 项目名`命令对项目进行初始化,该命令会在项目根目录下生成go.mod文件。 + +例如,我们使用hello作为我们第一个Go项目的名称,执行如下命令` go mod init hello`。 + +\```bash + +\# go.mod + +module hello + +go 1.16 + +\``` + +# Hello World + +描述: 接下来在该目录中创建一个helloWorld.go文件 + +```go +// 声明 main 包表明当前是一个可执行程序 +package main + +// 导入内置 fmt 包供内部函数使用 +import "fmt" + +// Main 函数程序入口主函数 +func main() { + // 终端输出打印语句 + fmt.Println("Hello World, Let's Go.") + /** + 此处为多行注释 + **/ + fmt.Println("人生苦短现在,开启你的Go语言学习之旅吧。") +} +``` + +Tips : 我们可以在`VScode`配置go项目的Debug调试模式便可以直接使用`快捷键F5`进行快速测试编写的程序。 + +![WeiyiGeek.VScode调试Go程序](assets/409d6915ad09c30f3dbfbf4c4b78931649a1a8c0.png@942w_566h_progressive.webp) + +Tips : 我们知道作为编译型的语言Go与C语言一样需要编译然后再运行。 + +Tips : Go 语言函数外的语句必须以关键字开头。 + + + +**编译: go Build** +描述: `go build` 命令表示将源代码编译成可执行文件。 + +在hello目录下执行`go build`(指定.go文件)或者在其他目录执行以下命令`go build helloworld`(项目需要在GOROOT路径的src目录之中),因为go编译器会去 GOPATH 的src目录下查找你要编译的hello项目 + + + +```shell +# - 目录下执行 +➜ Day01 pwd +/home/weiyigeek/develop/github-project/Go/Day01 +➜ Day01 go build +➜ Day01 ./Day01 +Hello World, Let Go. +人生苦短现在,开启你的Go语言学习之旅吧。 + +# - 指定main包所在的.go文件 +➜ Day01 go build HelloWorld.go +➜ Day01 ./HelloWorld +Hello World, Lets Go. +人生苦短现在,开启你的Go语言学习之旅吧。 + +# - 使用-o参数来指定编译后得到的可执行文件的名字 +➜ Day01 go build -o ahelloworld. +➜ Day01 ./ahelloworld +Hello World, Let's Go. +人生苦短现在,开启你的Go语言学习之旅吧。 +``` + +Tips : 如上述编译得到的可执行文件会保存在执行编译命令的当前目录下会有 HelloWorld 可执行文件,如果是windows平台会在当前目录下找到HelloWorld.exe可执行文件。 + + + +**编译&运行: go Run** +描述: 我们也可以直接执行程序,该命令本质上也是先编译再执行。 + +```shell +➜ Day01 go run HelloWorld.go +Hello World, Let's Go. +人生苦短现在,开启你的Go语言学习之旅吧。 +``` + +**编译&安装软件包&依赖项: go Install** +描述: go install 表示安装的意思,它先编译源代码得到可执行文件,然后将可执行文件移动到GOPATH的bin目录下。因为我们的环境变量中配置了GOPATH下的bin目录,所以我们就可以在任意地方直接执行可执行文件了。 + +```shell +➜ Day01 go install # 生成 Day01 可执行文件 +➜ Day01 go install HelloWorld.go # 生成 HelloWorld 可执行文件 +➜ Day01 ls ${GOROOT} +➜ Day01 ls ${GOPATH}/bin/ + # Day01 dlv dlv-dap gomodifytags go-outline gopkgs goplay gopls gotests HelloWorld impl staticcheck +➜ Day01 /home/weiyigeek/app/program/project/go/bin/Day01 +Hello World, Let's Go. +人生苦短现在,开启你的Go语言学习之旅吧。 +``` + +**跨平台编译: CGO_ENABLED / GOOS / GOARCH** +描述: 默认我们go build的可执行文件都是当前操作系统可执行的文件,如果我想在windows下编译一个linux下可执行文件,那需要怎么做呢? + +只需要指定目标操作系统的平台和处理器架构即可,例如Windows平台cmd下按如下方式指定环境变量编译出的可以执行文件则可以在Linux 操作系统 amd64 处理器中执行,然后再执行go build命令,得到的就是能够在Linux平台运行的可执行文件了。 + +```shell +SET CGO_ENABLED=0 # 禁用CGO +SET GOOS=linux # 目标平台是linux +SET GOARCH=amd64 # 目标处理器架构是amd64 +``` + +注意:如果你使用的是PowerShell终端,那么设置环境变量的语法为 $ENV:CGO_ENABLED=0。 + + + +不同平台快速交叉编译: + +```shell +# 目标平台是linux +CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build +# 目标平台Windows +CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build +# 目标平台Mac +CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build +``` + +简单实践: 在Liunx平台上编译出在`Windows`上运行的`helloWorld.exe`可执行文件。 + +```shell +# Linux +➜ Day01 CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build -o Win-HelloWorld.exe +➜ Day01 ls +HelloWorld.go Win-HelloWorld.exe + +# Windows: 拷贝后执行 +PS D:\Temp> .\Win-HelloWorld.exe +Hello World, Let's Go. +人生苦短现在,开启你的Go语言学习之旅吧。 +``` + +Tips : 对比不同平台交叉编译后的可执行文件大小。 + +```shell +➜ Day01 ls -la --ignore HelloWorld.go +-rwxrwxr-x 1 weiyigeek weiyigeek 1937799 7月 30 03:23 helloworld # ~ 1.9 MB +-rwxrwxr-x 1 weiyigeek weiyigeek 2027936 7月 30 03:24 Mac-HelloWorld # ~ 2.0 MB +-rwxrwxr-x 1 weiyigeek weiyigeek 2098688 7月 30 02:58 Win-HelloWorld.exe # ~ 2.1 MB +``` + + + +# Http Web Server + +描述: 透过Go仅需几行代码就完成HTTP网页服务器的实现。 + +```go +package main + +import ( + "io" + "net/http" +) + +func hello(w http.ResponseWriter, r *http.Request) { + io.WriteString(w, "Hello world!") +} + +func main() { + http.HandleFunc("/", hello) + http.ListenAndServe(":8000", nil) +} +``` + +# Echo 类似命令程序 + +描述: 用Go去实现一个像Unix中的Echo命令程序。 + +```go +package main + +import ( + "os" + "flag" +) + +var omitNewline = flag.Bool("n", false, "don't print final newline") + +const ( + Space = " " + Newline = "\n" +) + +func main() { + flag.Parse() // Scans the arg list and sets up flags + var s string = "" + for i = 0; i < flag.NArg(); i++ { + if i > 0 { + s += Space + } + s += flag.Arg(i) + } + if !*omitNewline { + s += Newline + } + os.Stdout.WriteString(s) +} +``` + + + +# 0x02 Go 项目结构 + +在进行Go语言开发的时候,我们的代码总是会保存在`$GOPATH/src`目录下。在工程经过`go build、go install`或`go get`等指令后,会将下载的第三方包源代码文件放在 `$GOPATH/src` 目录下,产生的二进制可执行文件放在 `$GOPATH/bin`目录下,生成的中间缓存文件会被保存在 `$GOPATH/pkg` 下。 + +Tips : 如果我们使用版本管理工具`(Version Control System,VCS。常用如Git/Svn)`来管理我们的项目代码时,我们只需要添加`$GOPATH/src`目录的源代码即可, bin 和 pkg 目录的内容无需版本控制。 + + + +通常来讲`GOPATH`目标下文件目录组织架构的设置常常有以下三种: + +# (1)适合个人开发者 + +描述: 我们知道源代码都是存放在GOPATH的src目录下,那我们可以按照下图来组织我们的代码。 + +![WeiyiGeek.适合个人开发者](assets/e850cd44113c98ed6b73060c17c415810c6fa1f1.png@930w_558h_progressive.webp)适合个人开发者 + + + +# (2)适合企业开发场景 + +描述: 此种目录结构设置更适合企业开发环境,以代码仓库为前缀并以公司内部组织架构为基准,其次是项目名称,最后是各个模块开发的名称。 + +![WeiyiGeek.适合企业开发场景](assets/8e2305d5dc1de204fa366cac4abac9dd9d674016.png@942w_410h_progressive.webp)适合企业开发场景 + + + +# (3)目前流行的项目结构 + +描述: Go语言中也是通过包来组织代码文件,我们可以引用别人的包也可以发布自己的包,但是为了防止不同包的项目名冲突,我们通常使用顶级域名来作为包名的前缀,这样就不担心项目名冲突的问题了。 + +因为不是每个个人开发者都拥有自己的顶级域名,所以目前流行的方式是使用个人的github用户名来区分不同的包。 + +![WeiyiGeek.目前流行的项目结构](assets/6430f2bbc96a68ddeb83b826ab9fc5fd41f368d7.png@942w_452h_progressive.webp)目前流行的项目结构 + +- 举例说明: 张三和李四都有一个名叫studygo的项目,那么这两个包的路径就会是: + +```go +import "github.com/zhangsan/studygo" +import "github.com/lisi/studygo" +``` + +- 举例说明: 同样如果我们需要从`githuab`上下载别人包的时候如:`go get github.com/jmoiron/sqlx`, 那么这个包会下载到我们本地GOPATH目录下的`src/github.com/jmoiron/sqlx`。 + +总结说明: 后续我们的开发学习示例基本按照第三种项目结构进行。 \ No newline at end of file diff --git a/notes/10.基础总结.md b/notes/10.基础总结.md new file mode 100644 index 0000000..e69de29 diff --git a/notes/2.基础篇.md b/notes/2.基础篇.md new file mode 100644 index 0000000..a912536 --- /dev/null +++ b/notes/2.基础篇.md @@ -0,0 +1,896 @@ +**本章目录:** + +**0x00 Go语言基础之变量和常量** + +1.标识符 + +2.关键字 + +3.变量-Var + +​ 变量声明 + +​ 变量初始化 + +​ 匿名变量 + +4.常量 - Const + + iota - 常量计数器 + +**0x01 Go语言基础之基本数据类型** + +1.整型 + + 特殊整型 + + 数字字面量语法(Number literals syntax) + +2.浮点型 + +3.复数 + +4.布尔值 + +5.字符串 + + 字符串转义符 + + 多行字符串 + + 字符串的常用操作 + +6.byte和rune类型 + +7.类型转换 + +![img](assets/4aa545dccf7de8d4a93c2b2b8e3265ac0a26d216.png@progressive.webp) + +# 0x00 Go语言基础之变量和常量 + +描述: 变量和常量是编程中必不可少的部分,也是很好理解的一部分。 + +# 1.标识符 + +描述: 在编程语言中标识符就是程序员定义的具有特殊意义的词,比如`变量名、常量名、函数名`等等。 Go语言中标识符由字母数字和_(下划线)组成,并且只能以字母和_开头。 举几个例子:`abc, _, _123, a123`。 + +编程语言中常用的三种命名规则,而Go语言推荐使用驼峰法式命名。 + +```shell +# 下划线连接 +student_name + +# 小驼峰法式 (推荐方式) +studentName + +# 大驼峰法式 +StudentName +``` + +2.关键字 + +描述: 关键字是指编程语言中预先定义好的具有特殊含义的标识符。 关键字和保留字都不建议用作变量名。 + +- Go语言中有25个关键字: + +```shell +* var const : 变量和常量的声明 +* var varName type 或者 varName : = value +* package and import: 导入 +* func: 用于定义函数和方法 +* return :用于从函数返回 +* defer someCode :在函数退出之前执行 +* go : 用于并行 +* select 用于选择不同类型的通讯 +* interface 用于定义接口 +* struct 用于定义抽象数据类型 +* break、case、continue、for、fallthrough、else、if、switch、goto、default 流程控制 +* chan 用于channel通讯 +* type 用于声明自定义类型 +* map 用于声明map类型数据 +* range 用于读取slice、map、channel数据 +``` + +- 此外 Go语言中还有37个保留字。 + +```shell +# Constants: +true false iota nil + +# Types: +int int8 int16 int32 int64 +uint uint8 uint16 uint32 uint64 uintptr +float32 float64 complex128 complex64 +bool byte rune string error + +# Functions: +make len cap new append copy close delete +complex real imag +panic recover +``` + + + +# 3.变量-Var + +**Q: 变量的来历?** + +> 答: 程序运行过程中的数据都是保存在内存中,我们想要在代码中操作某个数据时就需要去内存上找到这个变量,但是如果我们直接在代码中通过内存地址去操作变量的话,代码的可读性会非常差而且还容易出错,所以我们就利用变量将这个数据的内存地址保存起来,以后直接通过这个变量就能找到内存上对应的数据了。 + +**Q: 变量类型** + +> 答:变量(Variable)的功能是存储数据。不同的变量保存的数据类型可能会不一样。经过半个多世纪的发展,编程语言已经基本形成了一套固定的类型,常见变量的数据类型有:整型、浮点型、布尔型等。 + +Tips : Go语言中的每一个变量都有自己的类型,并且变量必须经过声明才能开始使用。 + +# 变量声明 + +> 答: Go语言中的变量需要声明后才能使用,同一作用域内不支持重复声明。 + +Go语言的变量声明标准格式为:`var 变量名 变量类型` + +```shell +# 单一声明: 变量声明以关键字var开头,变量类型放在变量的后面,行尾无需分号。 +var name string +var age int +var isOk bool + +# 批量声明: 每声明一个变量就需要写var关键字会比较繁琐,go语言中还支持批量变量声明。 +var ( + a string + b int + c bool + d float32 +) +``` + + + +# 变量初始化 + +Go语言在声明变量的时候,会自动对变量对应的内存区域进行初始化操作。每个变量会被初始化成其类型的默认值,或者我们也可在声明变量的时候为其指定初始值。例如: + +- 1.整型和浮点型变量的默认值为0。 +- 2.字符串变量的默认值为空字符串。 +- 3.布尔型变量默认为false。 +- 4.切片、函数、指针变量的默认为nil。 + +变量初始化的标准格式如下:`var 变量名 类型 = 表达式` + +```go +//# 单一变量初始化 +var name string = "WeiyiGeek" +var age int = 18 + +//# 批量变量初始化 +var name, age = "WeiyiGeek", 20 +``` + + + +**类型推导** +描述: 有时候我们会将变量的类型省略,这个时候编译器会根据等号右边的值来推导变量的类型完成初始化。 + +```go +var name = "WeiyiGeek" +var age = 18 +``` + +**短变量声明** +描述: 在函数内部可以使用更简略的`:=`方式声明并初始化变量。 + +```go +func main() { + count := 10 + username := "WeiyiGeek" +} +``` + +匿名变量 + +描述: 在使用多重赋值时,如果想要`忽略某个值`,可以使用`匿名变量(anonymous variable)- 特殊变量`。并且匿名变量不占用命名空间,不会分配内存,所以匿名变量之间不存在重复声明。 (`在Lua等编程语言里,匿名变量也被叫做哑元变量。`) + +匿名变量用一个`下划线(_)`表示,例如: + +```go +func foo() (int, string) { + return 10, "Q1mi" +} +func main() { + x, _ := foo() + _, y := foo() + fmt.Println("x=", x) + fmt.Println("y=", y) +} +``` + + + +**示例演示:** + +```go +package main + +import "fmt" + +// 变量声明(单一-全局) +var singleName string +var notUseVar bool + +// 变量声明(批量-全局) +var ( + multiName string + multiAge int8 +) + +func main() { + // 对声明后的变量赋值 + singleName = "Weiyi_" + multiName = "Geek" + multiAge = 18 + + // 变量初始化(局部) + var name string = "WeiyiGeek" + var sex, addr = "boy", "China" + + // 类型推导变量 + var flag = true + var count = 1024 + + // 简短变量声明(此种类型只能在函数中使用) + briefCount := 65535 + + fmt.Printf("My Name is %s, Sex is %s , Address: %s\n", name, sex, addr) + fmt.Println("Alias Name :", singleName, multiName, " Age is :", multiAge) + fmt.Print("类型推导 :", flag, count) + fmt.Println(", 简短变量 :", briefCount) +} +``` + +输出结果: + +```go +API server listening at: 127.0.0.1:42954 +My Name is WeiyiGeek, Sex is boy , Address: China +Alias Name : Weiyi_ Geek Age is : 18 +类型推导 :true 1024, 简短变量 : 65535 +``` + + + +Tips : Go语言中变量必须先声明后使用,而且声明变量`(非全局变量)`后必须使用,如有不使用的变量编译时报错。 + +Tips :函数外的每个语句都必须以关键字开始 (`var、const、func`) 等 + +Tips : `:=`不能使用在函数外。 + +Tips : `匿名变量或者叫哑元变量(_)`多用于占位,表示忽略值,即当有些数据必须用变量接收但又不使用它时,可以采用_来接收改值。 + +Tips : 变量在同一个作用域中`代码块({})`中不能重复声明同名的变量。 + + + +# 4.常量 - Const + +描述:常量是在程序运行期间恒定不变的值,多用于定义程序运行期间不会改变的那些值。常量的声明和变量声明非常类似,只是`把var换成了const`,常量在定义的时候必须赋值。 + +常量声明初始化格式: + +```go +// 单一声明: 声明了pi和e这两个常量之后,在整个程序运行期间它们的值都不能再发生变化了。 +const pi = 3.1415 +const e = 2.7182 + +// 批量声明 +const ( + pi = 3.1415 + e = 2.7182 +) + +// 批量声明(如果省略了值则表示和上面一行的值相同) +// 常量n1、n2、n3的值都是100。 +const ( + n1 = 100 + n2 + n3 +) +``` + + + +# iota - 常量计数器 + +描述: iota是go语言的常量计数器,只能在常量的表达式中使用。 + +Tips : iota在const关键字出现时将被重置为0, const中每新增一行常量声明将使iota计数一次 (`iota可理解为const语句块中的行索引`)。 + +应用场景: 使用iota能简化定义,在定义枚举时很有用。 + +下面示例中几个常见的iota示例: + +- 1.使用`_`跳过某些值 + +```go +const ( + n1 = iota //0 + n2 //1 + _ + n4 //3 +) +``` + +- 2.iota声明中间插队 + +```go +const ( + n1 = iota //0 + n2 = 100 //100 + n3 = iota //2 + n4 //3 +) +const n5 = iota //0 +``` + +- 3.多个iota定义在一行 + +```go +const ( + a, b = iota + 1, iota + 2 //1,2 + c, d //2,3 + e, f //3,4 +) +``` + +- 4.定义数量级 (这里的<<表示左移操作,1<<10表示将1的二进制表示向左移10位,也就是由1变成了10000000000,也就是十进制的1024。同理2<<2表示将2的二进制表示向左移2位,也就是由10变成了1000,也就是十进制的8。) + +```go +const ( + _ = iota + KB = 1 << (10 * iota) + MB = 1 << (10 * iota) + GB = 1 << (10 * iota) + TB = 1 << (10 * iota) + PB = 1 << (10 * iota) +) +``` + +**示例演示:** + +```go +package main + +import "fmt" + +// 单一常量声明 +const pi = 3.1415926535898 + +// 批量常量声明 +const ( + e = 2.7182 + flag = false +) + +// 特殊批量常量声明 +const ( + a = 1 + b + _ + c +) + +// iota 常量计数器 +const ( + _ = iota // 0 + d, e1 = iota + 1, iota + 2 // 2,3 常量名称不能重复 + f, g = iota + 1, iota + 2 // 3,4 +) + +const ( + _ = iota // 0 + KB = 1 << (10 * iota) // 1024 + MB = 1 << (10 * iota) + GB = 1 << (10 * iota) + TB = 1 << (10 * iota) + PB = 1 << (10 * iota) +) + +func main() { + fmt.Println("pi :", pi) + fmt.Println("e :", e, " , flag:", false) + fmt.Println("特殊批量常量声明:", a, b, c) + fmt.Println("iota 常量计数器 :", d, e1, f, g) + fmt.Println("文件体积大小 :", KB, MB, GB, TB, PB) +} +``` + +执行结果: + +```go +pi : 3.1415926535898 +e : 2.7182 , flag: false +特殊批量常量声明: 1 1 1 +iota 常量计数器 : 2 3 3 4 +文件体积大小 : 1024 1048576 1073741824 1099511627776 1125899906842624 +``` + + + +Tips : 常量声明后不能在程序中进行重新赋值更改。 + +# 0x01 Go语言基础之基本数据类型 + +**基本数据类型:** +Go语言中有丰富的数据类型,除了基本的整型、浮点型、布尔型、字符串外,还有数组、切片、结构体、函数、map、通道(channel)等。 + +Tips : Go 语言的基本类型和其他语言大同小异。 + +# 1.整型 + +整型分为以下两个大类: 按长度分为:`int8、int16、int32、int64` 对应的无符号整型:`uint8、uint16、uint32、uint64` + +其中,`uint8`就是我们熟知的`byte`型,`int16`对应C语言中的`short`型,`int64`对应C语言中的`long`型。 + +![img](assets/4a251c64e46b578d48f7bbd228aaa7cda333967e.png@938w_554h_progressive.webp)整型取值范围 + +**特殊整型** + +![img](assets/41174379a6968c2226a0fc60f0b19d2ce045dd0d.png@806w_260h_progressive.webp) + +**注意:** 在使用`int`和 `uint`类型时,不能假定它是32位或64位的整型,而是考虑`int`和`uint`可能在不同平台上的差异。 + +**注意事项:** 获取对象的长度的内建`len()`函数返回的长度可以根据不同平台的字节长度进行变化。实际使用中,切片或 map 的元素数量等都可以用`int`来表示。在涉及到二进制传输、读写文件的结构描述时,为了保持文件的结构不会受到不同编译目标平台字节长度的影响,不要使用`int`和 `uint`。 + + + +# 数字字面量语法(Number literals syntax) + +Go1.13版本之后引入了数字字面量语法,这样便于开发者以`二进制、八进制或十六进制浮点数`的格式定义数字,例如: + +- `v := 0b00101101`, 代表二进制的 101101,相当于十进制的 45。 +- `v := 0o377`,代表八进制的 377,相当于十进制的 255。 + `- v := 0x1p-2`,代表十六进制的 1 除以 2²,也就是 0.25。 + +而且还允许我们用 `_` 来分隔数字,比如说: `v := 123_456` 表示 v 的值等于 123456。 + +简单示例: 我们可以借助fmt函数来将一个整数以不同进制形式展示。 + +```go +package main + +import "fmt" + +func main(){ + // 十进制以不同的进制展示 + var a int = 10 + fmt.Printf("%b \n", a) // 1010 占位符%b表示二进制 + fmt.Printf("%o \n", a) // 12 占位符%o表示八进制 + fmt.Printf("%d \n", a) // 10 占位符%d表示十进制 + fmt.Printf("0x%x \n", a) // 0xa 占位符%x表示十六进制 + + // 八进制(以0开头) + var b int = 077 + fmt.Printf("%b \n", b) // 111111 + fmt.Printf("%o \n", b) // 77 + fmt.Printf("%d \n", b) // 63 + fmt.Printf("0x%x \n", b) // 0x3f + + // 十六进制(以0x开头) + var c int = 0xff + fmt.Printf("0x%x \n", c) // 0xff + fmt.Printf("0X%X \n", c) // 0xFF + + // 数字字面量语法(Number literals syntax) + binary := 0b1111 + octal := 0o17 + digital := 15 + hexadecimal := 0xf + specialhexa := 0x8p-2 // 8 / 2^2 = 2 + underline := 10_24 + + fmt.Printf("binary : %b , digital : %d\n", binary, binary) + fmt.Printf("octal : %o , digital : %d\n", octal, octal) + fmt.Printf("digital type (变量类型): %T,digital : %d\n", digital, digital) + fmt.Printf("hexadecimal : %x, digital : %d, specialhexa : %f\n", hexadecimal, hexadecimal, specialhexa) + fmt.Printf("underline : %d \n", underline) +} +``` + +输出结果: + +```go +# Int 整型示例: +1010 +12 +10 +0xa +111111 +77 +63 +0x3f +0xff +0XFF +binary : 1111 , digital : 15 +octal : 17 , digital : 15 +digital type (变量类型): int,digital : 15 +``` + + + +# 2.浮点型 + +Go语言支持两种浮点型数:`float32`和`float64`。 +这两种浮点型数据格式遵循`IEEE 754`标准: + +- `float32` 的浮点数的最大范围约为 `3.4e38`,其常量定义:`math.MaxFloat32`。 +- `float64` 的浮点数的最大范围约为 `1.8e308`,其常量定义:`math.MaxFloat64`。 + +简单示例: 打印浮点数时,可以使用`fmt`包配合动词`%f`,代码如下: + +```go +package main +import ( + "fmt" + "math" +) +func main() { + var floatnumber float64 = 1024.00 + fmt.Printf("数据类型: %T , floatnumber: %.1f\n", floatnumber, floatnumber) + fmt.Printf("%f,%.2f\n", math.Pi, math.Pi) // 保留小数点后两位 + fmt.Printf("float32的浮点数的最大范围 :%d ~ %f\n", 0, math.MaxFloat32) + fmt.Printf("float64的浮点数的最大范围 :%d ~ %f\n", 0, math.MaxFloat64) +} +``` + +执行结果: + +```go +数据类型: float64 , floatnumber: 1024.0 +3.141593,3.14 +float32的浮点数的最大范围 :0 ~ 340282346638528859811704183484516925440.000000 +float64的浮点数的最大范围 :0 ~ 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.000000 +``` + + + +# 3.复数 + +描述: 复数有实部和虚部,complex64的实部和虚部为32位,complex128的实部和虚部为64位。 + +例如: complex64和complex128类型变量输出示例 + +```go +var c1 complex64 +c1 = 1 + 2i +var c2 complex128 +c2 = 2 + 3i +fmt.Println(c1) // (1+2i) +fmt.Println(c2) // (2+3i) +``` + + + +# 4.布尔值 + +Go语言中以`bool`类型进行声明布尔型数据,布尔型数据只有`true(真)`和`false(假)`两个值。 + +```go +fmt.Println("# 4.布尔型示例:") +var flag bool = true +fmt.Printf("数据类型: %T ,任意类型输出: %v", flag, flag) // 数据类型: bool ,任意类型输出: true +``` + + + +**注意:** + +1. 布尔类型变量的默认值为`false`。 +2. Go 语言中不允许将整型强制转换为布尔型. +3. 布尔型无法参与数值运算,也无法与其他类型进行转换。 + + + +# 5.字符串 + +描述: Go语言中的字符串`以原生数据类型`出现,使用字符串就像使用其他原生数据类型(int、bool、float32、float64 等)一样。 +Go 语言里的字符串的内部实现使用`UTF-8`编码。 字符串的值为`双引号(")`中的内容,可以在Go语言的源码中直接添加非ASCII码字符,例如: + +```go +s1 := "hello" +s2 := "你好" +c1 := 'g' +c2 := 'o' +``` + +Tips : Go 语言中用双引号包裹的是`字符串`,而单引号包裹的是`字符`。 + + + +# 字符串转义符 + +Go 语言的字符串常见转义符包含回车、换行、单双引号、制表符等,如下表所示。 + +![img](assets/85747a2e196b326742c407ae2a3f5287b43838fb.png@590w_440h_progressive.webp) + +举个例子,我们要打印一个Windows平台下的一个文件路径: + +```go +package main +import ( + "fmt" +) +func main() { + s1 := "'c:\\weiyigeek\\go\\hello'" + fmt.Println("str :=",s1) + fmt.Println("str := \"c:\\Code\\weiyigeek\\go.exe\"") +} +``` + + + +# 多行字符串 + +Go语言中要定义一个多行字符串时,就必须使用`反引号`字符: + +```go +s1 := `第一行 +第二行 +第三行 +` +s2 := `c:\weiyigeek\go\hello` // 注意点此处没用转义符(\) 也能输出路径 + +fmt.Println(s1,s2) +``` + +Tips: 反引号间换行将被作为字符串中的换行,但是所有的转义字符均无效,文本将会原样输出。 + + + +# 字符串的常用操作 + +![img](assets/478fe9a354e7c36e7cf403019faed805097c970f.png@651w_483h_progressive.webp) + +示例演示: + +```go +// 字符串型示例 +func stringdemo() { + // 字符 + c1 := 'a' + c2 := 'A' + + // 字符串 (单行与多行以及转义) + s1 := "Name" + s2 := "姓名" + s3 := ` + 这是一个 + 多行字符串案例! + This is mutlilineString Example! + Let's Go // 特点:原样输出 + ` + // 转义演示 + s4 := "'c:\\weiyigeek\\go\\hello'" + s5 := `c:\weiyigeek\go\hello` + + fmt.Printf("c1 char : %c,\t c2 char %c -> digital : %d\n", c1, c2, c2) + fmt.Println(s1, s2) + fmt.Println(s3) + fmt.Println(s4, s5) + + // 字符串常用函数 + fmt.Println("s1 String length:", len(s1), "s2 string length:", len(s2)) + + info := fmt.Sprintf("%s (%s): %s", s1, s2, "WeiyiGeek") + fmt.Println("Infomation : "+"个人信息", info) + + fmt.Println("字符串分割 :", strings.Split(s5, "\\")) + + fmt.Println("判断字符串是否包含go", strings.Contains(s3, "go")) + + fmt.Println(strings.HasPrefix(s1, "N"), strings.HasSuffix(s1, "e")) + + fmt.Println(strings.Index(s4, "weiyigeek"), strings.LastIndex(s4, "weiyigeek")) + + s6 := strings.Split(s5, "\\") + fmt.Println("字符串间隔符 : ", strings.Join(s6, "-")) +} +``` + +执行效果: + +```shell +# 5.字符串型示例: +c1 char : a, c2 char A -> digital : 65 +Name 姓名 + + 这是一个 + 多行字符串案例! + This is mutlilineString Example! + Let's Go // 特点:原样输出 + +'c:\weiyigeek\go\hello' c:\weiyigeek\go\hello +s1 String length: 4 s2 string length: 6 +Infomation : 个人信息 Name (姓名): WeiyiGeek +字符串分割 : [c: weiyigeek go hello] +判断字符串是否包含go false +true true +4 4 +字符串间隔符 : c:-weiyigeek-go-hello +``` + + + +# 6.byte和rune类型 + +描述: 组成每个字符串的元素叫做“字符”,可以通过遍历或者单个获取字符串元素获得字符。 字符用单引号(’)包裹起来,如: + +```shell +var a = '中' +var b = 'x' +c := 'a' +``` + +Go 语言的字符有以下两种: + +- `uint8`类型,或者叫 byte 型,代表了`ASCII码`的一个字符(1B)。 +- `rune`类型,代表一个 `UTF-8字符`, 并且一个rune字符由一个或多个byte组成(3B~4B)。 + +Tips : 当需要处理中文、日文或者其他复合字符时,则需要用到`rune`类型。`rune`类型实际是一个`int32`。 + +Go 使用了特殊的 rune 类型来处理 Unicode,让基于 Unicode 的文本处理更为方便,也可以使用 byte 型进行默认字符串处理,性能和扩展性都有照顾。 + +简单示例: + +```shell +// 遍历字符串 +func traversalString() { + s := "hello沙河" + // byte 类型 + for i := 0; i < len(s); i++ { + fmt.Printf("%v(%c) ", s[i], s[i]) + } + fmt.Println() + // rune 类型 + for _, r := range s { + fmt.Printf("%v(%c) ", r, r) + } + fmt.Println() +} +``` + +结果输出: + +```shell +// byte 类型 (中文乱码) +104(h) 101(e) 108(l) 108(l) 111(o) 230(æ) 178(²) 153() 230(æ) 178(²) 179(³) + +// rune 类型 (中文正常) +104(h) 101(e) 108(l) 108(l) 111(o) 27801(沙) 27827(河) +``` + + + +**Q: 为什么出现上述情况?** + +答: 因为UTF8编码下`一个中文汉字由3~4个字节`(4*8bit)组成,所以我们不能简单的按照字节去遍历一个包含中文的字符串,否则就会出现上面输出中第一行的结果。 + +Tips : 字符串底层是一个byte数组,所以可以和`[]byte`类型相互转换。字符串是不能修改的字符串是由byte字节组成,所以字符串的长度是byte字节的长度。 + + + +# 7.类型转换 + +描述:Go语言中只有强制类型转换,没有隐式类型转换。该语法只能在两个类型之间支持相互转换的时候使用。 + +强制类型转换的基本语法如下: + +T(表达式) # 其中,T表示要转换的类型。表达式包括变量、复杂算子和函数返回值等. + +Tips : Boolen 类型不能强制转换为整型。 + + + +**整型转浮点型** + +比如:计算直角三角形的斜边长时使用math包的Sqrt()函数,该函数接收的是float64类型的参数,而变量a和b都是int类型的,这个时候就需要将a和b强制类型转换为float64类型。 + +```shell +func sqrtDemo() { + var a, b = 3, 4 + var c int + // math.Sqrt() 接收的参数是float64类型,需要强制转换 + c = int(math.Sqrt(float64(a*a + b*b))) + fmt.Println(c) +} +``` + + + +Tips : 在Go语言中不同类型的值不能直接赋值,例如float32类型变量a的值不能直接赋值给floa64类型变量b的值。 + + + +**字符串类型转换** + +描述: 如果修改字符串,需要先将其转换成`[]rune`或`[]byte`,完成后再转换为`string`。无论哪种转换,`都会重新分配内存,并复制字节数组`。 + +```shell +func changeString() { + s1 := "big" + // 强制类型转换 + byteS1 := []byte(s1) + byteS1[0] = 'p' + fmt.Println(string(byteS1)) + + s2 := "白萝卜" + runeS2 := []rune(s2) + runeS2[0] = '红' + fmt.Println(string(runeS2)) +} +``` + +Tips : 在一个字符串中如果既有中文也存在英文,我们则可以使用`byte[]类型`(1B)来存放ASCII码表示的字符(0~255),如果是中文则使用`rune[]`(4B)类型来存放或者周转。 + + + +**案例演示:** + +```shell +// Byte与Rune类型示例 +func brdemo() { + var c1 = 'a' // int32 类型 + var c2 = 'A' // int32 类型 + z1 := '中' // int32 类型 + z2 := '文' // int32 类型 + z3 := "中" // string 类型 (双引号) + + // 字符不同格式输出 + fmt.Printf("字符 :%d (%c) , %d (%c) \n", c1, c1, c2, c2) + fmt.Printf("中文字符 :%d (%v) = %c , %d (%v) = %c \n", z1, z1, z1, z2, z2, z2) + fmt.Printf("单双引号不同类型 : c1 = %c (%T) , z2 = %c (%T) , z3 = %s (%T) \n", c1, c1, z2, z2, z3, z3) + + // 中英文字符串修改 + s1 := "a和我都爱中国" + s2 := "为 Hello 中国 World,Go 语言 学习" + + // 将字符类型转化为byte类型 + c3 := byte(c2) + fmt.Printf("强制转化类型 : c2 = %c (%T) , byte(c2) = %c (%T) \n", c2, c2, c3, c3) + + // 将字符串类型转化为string类型 + r1 := []rune(s1) // 强制转化字符串为一个rune切片 + r1[0] = '您' // 注意此处需传入为字符 + fmt.Println("修改后中文字符串输出(未类型转换):", r1) + fmt.Println("修改后中文字符串输出(已类型转换):", s1, string(r1)) // 强制转化rune切片为字符串 + + // 将整型转化成为浮点数类型 + // 计算直角三角形的斜边长 + var a, b = 3, 4 + var c int = int(math.Sqrt(float64(a*a + b*b))) + fmt.Println("计算直角三角形的斜边长 (a=3,b=4) c =", c) + + // 统计字符串中中文个数 + res := []rune(s2) + reslen := len(res) + count := 0 + for i := 0; i < reslen; i++ { + if res[i] > 255 { + count++ + } + } + fmt.Printf("字符串:%s (Length = %d),一共有 %d 个中文字符", s2, reslen, count) +} +``` + +执行结果: + +```shell +# 6.Byte与Rune型示例: +字符 :97 (a) , 65 (A) +中文字符 :20013 (20013) = 中 , 25991 (25991) = 文 +单双引号不同类型 : c1 = a (int32) , z2 = 文 (int32) , z3 = 中 (string) +强制转化类型 : c2 = A (int32) , byte(c2) = A (uint8) +修改后中文字符串输出(未类型转换): [24744 21644 25105 37117 29233 20013 22269] +修改后中文字符串输出(已类型转换): a和我都爱中国 您和我都爱中国 +计算直角三角形的斜边长 (a=3,b=4) c = 5 +字符串:为 Hello 中国 World,Go 语言 学习 (Length = 25),一共有 7 个中文字符 +``` \ No newline at end of file diff --git a/notes/3.运算符、流程控制篇.md b/notes/3.运算符、流程控制篇.md new file mode 100644 index 0000000..f6ce5ab --- /dev/null +++ b/notes/3.运算符、流程控制篇.md @@ -0,0 +1,457 @@ +**本章目录:** + +**0x02 Go语言基础之运算符** + +1.分类说明 + +2.算术运算符 + +3.关系运算符 + +4.逻辑运算符 + +5.位运算符 + +6.赋值运算符 + +**0x03 Go语言基础之流程控制** + +1.if else(分支结构) + + if条件判断基本写法 + + if条件判断特殊写法 + +2.for(循环结构) + +3.for range(键值循环) + +4.switch case(选择语句) + +5.goto(跳转到指定标签) + +6.break(跳出循环) + +7.continue(继续下次循环) + + + +![img](assets/4aa545dccf7de8d4a93c2b2b8e3265ac0a26d216.png@progressive.webp) + +# 0x02 Go语言基础之运算符 + +**什么是运算符?** + +> 答: 运算符用于在程序运行时执行数学或逻辑运算。 + +# 1.分类说明 + +描述: 与其他编程语言类似 Go 语言内置的运算符有如下几种 + +\- 1. 算术运算符 + +\- 2. 关系运算符 + +\- 3. 逻辑运算符 + +\- 4. 位运算符 + +\- 5. 赋值运算符 + + + +# 2.算术运算符 + +![img](assets/6b536e2396cd0da41aa7e26d9c1a2f9cacecdb74.png@288w_446h_progressive.webp) + +**注意:** `++`(自增)和`--`(自减)在Go语言中是单独的语句,并不是运算符。 + + + +# 3.关系运算符 + +![img](assets/6ac4a9e0b61cd0685e7ca10670986601d4275669.png@942w_551h_progressive.webp) + +Tips : Go 语言是强类型的所以必须相同类型变量才能进行比较。 + + + +# 4.逻辑运算符 + +![img](assets/87cb44700a637253cb3fdb0a2fb2c0d65736a603.png@942w_399h_progressive.webp) + +# 5.位运算符 + +描述: 位运算符对整数在内存中的二进制位进行操作。 + +![img](assets/fed8f7e698d83114c8224e3823c6f8e031e8962d.png@942w_515h_progressive.webp) + + + +# 6.赋值运算符 + +![img](assets/775cbe23ce1a1ce9ea9cb5ac0290a35aac9e5f95.png@908w_882h_progressive.webp) + +**示例演示:** + +```go +a += 1 // a = a + 1 +a %= 3 // a = a % 3 +a <<= 4 // a = a << 4 +a ^= 5 // a = a ^ 5 +``` + + + +# 0x03 Go语言基础之流程控制 + +**Q: 什么是流程控制** + +> 流程控制是每种编程语言控制逻辑走向和执行次序的重要部分,流程控制可以说是一门语言的“经脉”。 + +Tips : Go语言中最常用的流程控制有`if`和`for`,而`switch`和`goto`主要是为了简化代码、降低重复代码而生的结构,属于扩展类的流程控制。 + + + +# 1.if else(分支结构) + +# if条件判断基本写法 + +描述: Go语言中`if`条件判断的格式如下: + +```go +if 表达式1 { + 分支1 +} else if 表达式2 { + 分支2 +} else{ + 分支3 +} +``` + +当表达式1的结果为`true`时,执行分支1,否则判断表达式2,如果满足则执行分支2,都不满足时,则执行分支3。 if判断中的`else if`和`else`都是可选的,可以根据实际需要进行选择。 + +Go语言规定与`if`匹配的左括号`{`必须与`if和表达式`放在同一行,`{`放在其他位置会触发编译错误。 同理,与`else`匹配的`{`也必须与`else`写在同一行,`else`也必须与上一个`if`或`else if`右边的大括号在同一行。 + +示例1: + +```go +func ifDemo1() { + score := 65 + if score >= 90 { + fmt.Println("A") + } else if score > 75 { + fmt.Println("B") + } else { + fmt.Println("C") // 输出结果 + } +} +``` + + + +# if条件判断特殊写法 + +描述: if条件判断还有一种特殊的写法,可以在 if 表达式之前添加一个执行语句,再根据变量值进行判断,举个例子: + +示例2: + +```go +func ifDemo2() { + score := 88 // 注意变量作用域的影响 + if score := 65; score >= 90 { + fmt.Println("A", score) + } else if score > 75 { + fmt.Println("B", score) + } else { + fmt.Println("C", score) // 输出结果 + } + fmt.Println("score : ", score) +} +``` + +执行结果: + +```go +C 65 +score : 88 +``` + + + +**思考题:** 上下两种写法的区别在哪里? + +> 答: 上述 示例1 与 示例2 区别在于定义 score 变量位置得不同, 示例1中的score变量在函数代码块中有效, 而示例2中的score变量作用域只在`if...else`代码块中有效。 + + + +# 2.for(循环结构) + +描述: Go 语言中的所有循环类型均可以使用`for`关键字来完成。 + +for循环的基本格式如下: + +```go +for 初始语句;条件表达式;结束语句{ + 循环体语句 +} +``` + +条件表达式返回`true`时循环体不停地进行循环,直到条件表达式返回`false`时自动退出循环。 + +func forDemo() { for i := 0; i < 10; i++ { fmt.Println(i) }} + +for循环的初始语句可以被忽略,但是初始语句后的分号必须要写,例如: + +func forDemo2() { i := 0 for ; i < 10; i++ { fmt.Println(i) }} + +for循环的初始语句和结束语句都可以省略,例如: + +func forDemo3() { i := 0 for i < 10 { fmt.Println(i) i++ }} + +for无限循环,这种写法类似于其他编程语言中的`while`,在`while`后添加一个条件表达式,满足条件表达式时持续循环,否则结束循环。 +例如: for循环可以通过`break`、`goto`、`return`、`panic`语句强制退出循环。 + +```go +for { + 循环体语句 +} +``` + + + +# 3.for range(键值循环) + +描述: Go语言中可以使用`for range`遍历数组、切片、字符串、map 及通道(channel)。 + +通过`for range`遍历的返回值有以下规律: + +\* 1. 数组、切片、字符串返回索引和值。 + +\* 2. map返回键和值。 + +\* 3. 通道(channel)只返回通道内的值。 + +** +** + +**简单示例:** + +```go +s1 := "Hello,Go 输出的是中文" +for i, v := range s1 { + fmt.Printf("Index : %d ,Value : %s , Number : %v \n", i, string(v), v) +} +``` + + + +**输出结果:** + +```go +Index : 0 ,Value : H , Number : 72 +Index : 1 ,Value : e , Number : 101 +Index : 2 ,Value : l , Number : 108 +Index : 3 ,Value : l , Number : 108 +Index : 4 ,Value : o , Number : 111 +Index : 5 ,Value : , , Number : 44 +Index : 6 ,Value : G , Number : 71 +Index : 7 ,Value : o , Number : 111 +Index : 8 ,Value : , Number : 32 +Index : 9 ,Value : 输 , Number : 36755 +Index : 12 ,Value : 出 , Number : 20986 +Index : 15 ,Value : 的 , Number : 30340 +Index : 18 ,Value : 是 , Number : 26159 +Index : 21 ,Value : 中 , Number : 20013 +Index : 24 ,Value : 文 , Number : 25991 +``` + + + +# 4.switch case(选择语句) + +描述: 使用`switch`语句可方便地对大量的值进行条件判断,即简化大量判断。 + +```go +func switchDemo1() { + finger := 3 + switch finger { + case 1: + fmt.Println("大拇指") + case 2: + fmt.Println("食指") + case 3: + fmt.Println("中指") + case 4: + fmt.Println("无名指") + case 5: + fmt.Println("小拇指") + default: + fmt.Println("无效的输入!") + } +} +``` + + + +Go语言规定每个`switch`只能有一个`default`分支, 但一个分支可以有多个值,多个case值中间使用英文逗号分隔。 + +```go +func testSwitch3() { + switch n := 7; n { + case 1, 3, 5, 7, 9: + fmt.Println("奇数") + case 2, 4, 6, 8: + fmt.Println("偶数") + default: + fmt.Println(n) + } +} +``` + +分支还可以使用表达式,这时候switch语句后面不需要再跟判断变量。例如: + +```go +func switchDemo4() { + age := 30 + switch { + case age < 25: + fmt.Println("好好学习吧") + case age > 25 && age < 35: + fmt.Println("好好工作吧") + case age > 60: + fmt.Println("好好享受吧") + default: + fmt.Println("活着真好") + } +} +``` + +`fallthrough`语法: 可以执行满足条件的case的下一个case,是为了兼容C语言中的case设计的(值得学习)。 + +```go +func switchDemo5() { + s := "a" + switch { + case s == "a": + fmt.Println("a") + fallthrough + case s == "b": + fmt.Println("b") + case s == "c": + fmt.Println("c") + default: + fmt.Println("...") + } +} +``` + +结果输出: + +a b + + + +# 5.goto(跳转到指定标签) + +描述: `goto`语句通过标签进行代码间的无条件跳转。`goto`语句可以在快速跳出循环、避免重复退出上有一定的帮助, Go语言中使用`goto`语句能简化一些代码的实现过程。 + +例如:双层嵌套的for循环要退出时 + +```go +func gotoDemo1() { + var breakFlag bool + for i := 0; i < 10; i++ { + for j := 0; j < 10; j++ { + if j == 2 { + // 设置退出标签 + breakFlag = true + break + } + fmt.Printf("%v-%v\n", i, j) + } + // 外层for循环判断 + if breakFlag { + break + } + } +} +``` + + + +使用`goto`语句能简化代码: + +```go +func gotoDemo2() { + for i := 0; i < 10; i++ { + for j := 0; j < 10; j++ { + if j == 2 { + // 设置退出标签 + goto breakTag + } + fmt.Printf("%v-%v\n", i, j) + } + } + return + // 标签 + breakTag: + fmt.Println("正结束for循环") + fmt.Println("已结束for循环") +} +``` + +执行结果: + +```go +0-0 +0-1 +正结束for循环 +已结束for循环 +``` + +# 6.break(跳出循环) + +描述: `break`语句可以结束`for`、`switch`和`select`的代码块。 + +`break`语句还可以在语句后面添加标签,表示退出某个标签对应的代码块,标签要求必须定义在对应的`for`、`switch`和 `select`的代码块上。 举个例子: + +```go +func breakDemo1() { +BREAKDEMO1: + for i := 0; i < 10; i++ { + for j := 0; j < 10; j++ { + if j == 2 { + break BREAKDEMO1 + } + fmt.Printf("%v-%v\n", i, j) + } + } + fmt.Println("...") +} +``` + + + +# 7.continue(继续下次循环) + +描述: `continue`语句可以结束当前循环,开始下一次的循环迭代过程,仅限在`for`循环内使用。 + +在 `continue`语句后添加标签时,表示开始标签对应的循环。例如: + + + +```go +func continueDemo() { +forloop1: + for i := 0; i < 5; i++ { + // forloop2: + for j := 0; j < 5; j++ { + if i == 2 && j == 2 { + continue forloop1 + } + fmt.Printf("%v-%v\n", i, j) + } + } +} +``` \ No newline at end of file diff --git a/notes/4.数组.md b/notes/4.数组.md new file mode 100644 index 0000000..300f12b --- /dev/null +++ b/notes/4.数组.md @@ -0,0 +1,966 @@ +**本章目录:** + +**0X00 Go语言基础之数组** + + 1.数组定义 + + 2.数组初始化 + + 3.数组的遍历 + + 4.多维数组 + +​ 二维数组的定义 + +​ 二维数组的遍历 + + 5.数组是值类型 + +**0X01 Go语言基础之切片** + + 1.切片定义 + + 2.切片长度与容量 + + 3.切片表达式 + +​ 简单切片表达式 + +​ 完整切片表达式 + + 4.切片遍历 + + 5.切片的本质 + + 6.make() 方法构造切片 + + 7.append() 方法切片添加元素 + + 8.copy()方法复制切片 + + 9.从切片中删除元素 + + 10.切片相关操作 + +​ 判断切片是否为空 + +​ 切片不能直接比较 + +​ 切片的赋值拷贝 + +​ 切片的扩容策略 + +# 0X00 Go语言基础之数组 + +描述: 本文主要介绍Go语言中数组(array)及它的基本使用。 + +**Q: 什么是Array(数组)?** + +> 答: 学过C语言的同学都知道,数组是同一种数据类型元素的集合。 在Go语言中,数组从声明时就确定,使用时可以修改数组成员,但是数组大小不可变化。 + +# 1.数组定义 + +基本语法: + +```go +var 数组变量名 [元素数量]T + +// 定义一个长度为3元素类型为int的数组a +var a [3]int +``` + + + +比如:`var a [5]int`, 数组的长度必须是常量,并且长度是数组类型的一部分。一旦定义,长度不能变。注意: `[5]int`和`[10]int`是不同的类型。 + +```go +var 数组变量名 [元素数量]T + +// 定义一个长度为3元素类型为int的数组a +var a [3]int +``` + + + +Tips :数组可以通过下标进行访问,下标是从`0`开始,最后一个元素下标是:`len-1`,访问越界(下标在合法范围之外),则触发访问越界,会panic。 + +# 2.数组初始化 + +数组的初始化也有很多方式。 + +**1.方法一** + +初始化数组时可以使用初始化列表来设置数组元素的值。 + +```go +func main() { + var testArray [3]int //数组会初始化为int类型的零值 + var numArray = [3]int{1, 2} //使用指定的初始值完成初始化 + var cityArray = [3]string{"北京", "上海", "深圳"} //使用指定的初始值完成初始化 + fmt.Println(testArray) //[0 0 0] + fmt.Println(numArray) //[1 2 0] + fmt.Println(cityArray) //[北京 上海 深圳] +} +``` + +**2.方法二** + +按照上面的方法每次都要确保提供的初始值和数组长度一致,一般情况下我们可以让编译器根据初始值的个数自行推断数组的长度,例如: + +```go +func main() { + var testArray [3]int + var numArray = [...]int{1, 2} + var cityArray = [...]string{"北京", "上海", "深圳"} + fmt.Println(testArray) //[0 0 0] + fmt.Println(numArray) //[1 2] + fmt.Printf("type of numArray:%T\n", numArray) //type of numArray:[2]int + fmt.Println(cityArray) //[北京 上海 深圳] + fmt.Printf("type of cityArray:%T\n", cityArray) //type of cityArray:[3]string +} +``` + + + +**3.方法三(非常值得学习)** + +我们还可以使用指定索引值的方式来初始化数组,例如: + +```go +func main() { + a := [...]int{1: 1, 3: 5} + b := [...]int{1:100,9:200} // [0 100 0 0 0 0 0 0 200 ] + fmt.Println(a) // [0 1 0 5] + fmt.Printf("type of a:%T\n", a) // type of a:[4]int +} +``` + + + +# 3.数组的遍历 + +遍历数组a有以下两种方法: + +```go +func main() { + var a = [...]string{"北京", "上海", "深圳"} + // 方法1:for循环遍历 + for i := 0; i < len(a); i++ { + fmt.Println(a[i]) + } + + // 方法2:for range遍历 + for index, value := range a { + fmt.Println(index, value) + } +} +``` + + + +# 4.多维数组 + +Go语言是支持多维数组的,我们这里以二维数组为例(数组中又嵌套数组)。 + +# 二维数组的定义 + +```go +func main() { + a := [3][2]string{ + {"北京", "上海"}, + {"广州", "深圳"}, + {"成都", "重庆"}, + } + fmt.Println(a) //[[北京 上海] [广州 深圳] [成都 重庆]] + fmt.Println(a[2][1]) //支持索引取值:重庆 +} +``` + + + +**注意:** 多维数组**只有第一层**可以使用`...`来让编译器推导数组长度。例如: + +```go +//支持的写法 +a := [...][2]string{ + {"北京", "上海"}, + {"广州", "深圳"}, + {"成都", "重庆"}, +} +//不支持多维数组的内层使用... +b := [3][...]string{ + {"北京", "上海"}, + {"广州", "深圳"}, + {"成都", "重庆"}, +} +``` + + + +# 二维数组的遍历 + +```go +func main() { + a := [3][2]string{ + {"北京", "上海"}, + {"广州", "深圳"}, + {"成都", "重庆"}, + } + + // 方式1. for range 方式 + for _, v1 := range a { + for _, v2 := range v1 { + fmt.Printf("%s\t", v2) + } + fmt.Println() + } +} +``` + + + +输出: + +北京 上海 + +广州 深圳 + +成都 重庆 + +# 5.数组是值类型 + +描述: 数组是值类型,`赋值和传参会复制整个数组`。因此改变副本的值,不会改变本身的值。 + +```go +// go 语言中默认传参是值传递(拷贝原变量的值即 Ctrl+c 、Ctrl+v ) +func modifyArray(x [3]int) { + x[0] = 100 +} + +func modifyArray2(x [3][2]int) { + x[2][0] = 100 +} +func main() { + a := [3]int{10, 20, 30} + modifyArray(a) //在modify中修改的是a的副本x,不会更改数组a的元素 + fmt.Println(a) //[10 20 30] + + b := [3][2]int{ + {1, 1}, + {1, 1}, + {1, 1}, + } + modifyArray2(b) //在modify中修改的是b的副本x,不会更改数组b的元素 + fmt.Println(b) //[[1 1] [1 1] [1 1]] +} +``` + + + +**注意:** + +1. 数组支持 “==“、”!=” 操作符,因为内存总是被初始化过的。 +2. `[n]*T`表示指针数组,`*[n]T`表示数组指针 。 + +示例演示: + +```go +package main + +import "fmt" + +func main() { + // 定义一个长度为3元素类型为int的数组a + var a [2]int // 默认为0 + var a1 [2]string // 默认为空 + var a2 [2]bool // 默认为false + var a3 [2]float64 // 默认为0 + + fmt.Printf("a 数组类型 %T , 元素: %v\n", a, a) + fmt.Printf("a1 数组类型 %T , 元素: %v\n", a1, a1) + fmt.Printf("a2 数组类型 %T , 元素: %v\n", a2, a2) + fmt.Printf("a3 数组类型 %T , 元素: %v\n", a3, a3) + + // 数组初始化 + // 方式1.使用初始化列表来设置数组元素的值 + var b = [3]int{1, 2} // 三个元素,未指定下标元素的其值为 0 + var c = [3]string{"Let's", "Go", "语言"} + // 方式2.根据初始值的个数自行推断数组的长度 + var d = [...]float32{1.0, 2.0} + e := [...]bool{true, false, false} + // 方式3.使用指定索引值的方式来初始化数组 + var f = [...]int{1: 1, 3: 8} // 只有 下标为1的其值为1,下标为3的其值为8,初开之外都为0 + g := [...]string{"Weiyi", "Geek"} + + fmt.Printf("b 数组类型 %T , 元素: %v\n", b, b) + fmt.Printf("c 数组类型 %T , 元素: %v\n", c, c) + fmt.Printf("d 数组类型 %T , 元素: %v\n", d, d) + fmt.Printf("e 数组类型 %T , 元素: %v\n", e, e) + fmt.Printf("f 数组类型 %T , 元素: %v\n", f, f) + fmt.Printf("f 数组类型 %T , 元素: %v\n", g, g) + + // 数组指定元素获取 + fmt.Println("c[1] 元素获取 : ", c[1]) + // 数组遍历 + // 方式1 + alen := len(c) + for i := 0; i < alen; i++ { + fmt.Printf("c[%d]: %s ", i, c[i]) + } + fmt.Println() + // 方式2 + for i, v := range c { + fmt.Printf("c[%d]: %s ", i, v) // 注意如果是切片类型需要强转为string + } + fmt.Println() + + // 多维数组 + // 方式1 + s1 := [3][2]string{ + {"北京", "上海"}, + {"广州", "深圳"}, + {"成都", "重庆"}, + } + + // 方式2 + s2 := [...][2]string{ + {"Go", "C"}, + {"PHP", "Python"}, + {"Shell", "Groovy"}, + } + fmt.Println(s1[2][1]) //支持索引取值:重庆 + fmt.Println(len(s1), s1) //[[北京 上海] [广州 深圳] [成都 重庆]] + fmt.Println(len(s2), s2) + + // 多维数组遍历 + // 方式1 + s1len := len(s1) + for i := 0; i < s1len; i++ { + s1length := len(s1[i]) + for j := 0; j < s1length; j++ { + fmt.Printf("s1[%d][%d] = %v ", i, j, s1[i][j]) + } + } + fmt.Println() + + // 方式2 (推荐方式) + for i, v1 := range s2 { + for j, v2 := range v1 { + fmt.Printf("s2[%d][%d] = %v ", i, j, v2) + } + } + fmt.Println() + + // 多维数组元素更改 + s1[1][0] = "Test" + s1[1][1] = "Change" + fmt.Println(s1) +} +``` + +执行结果: + +```go +a 数组类型 [2]int , 元素: [0 0] +a1 数组类型 [2]string , 元素: [ ] +a2 数组类型 [2]bool , 元素: [false false] +a3 数组类型 [2]float64 , 元素: [0 0] +b 数组类型 [3]int , 元素: [1 2 0] +c 数组类型 [3]string , 元素: [Let's Go 语言] +d 数组类型 [2]float32 , 元素: [1 2] +e 数组类型 [3]bool , 元素: [true false false] +f 数组类型 [4]int , 元素: [0 1 0 8] +f 数组类型 [2]string , 元素: [Weiyi Geek] +c[1] 元素获取 : Go +c[0]: Let's c[1]: Go c[2]: 语言 +c[0]: Let's c[1]: Go c[2]: 语言 +s1[2][1] 元素获取 : 重庆 +3 [[北京 上海] [广州 深圳] [成都 重庆]] +3 [[Go C] [PHP Python] [Shell Groovy]] +s1[0][0] = 北京 s1[0][1] = 上海 s1[1][0] = 广州 s1[1][1] = 深圳 s1[2][0] = 成都 s1[2][1] = 重庆 +s2[0][0] = Go s2[0][1] = C s2[1][0] = PHP s2[1][1] = Python s2[2][0] = Shell s2[2][1] = Groovy +[[北京 上海] [Test Change] [成都 重庆]] +``` + + + +# 0X01 Go语言基础之切片 + +描述: 本文主要介绍Go语言中切片(slice)及它的基本使用。 + +**Q: 为什么要引入切片这个特性?** +描述: 因为`数组的长度是固定的并且数组长度属于类型的`一部分,所以数组有很多的局限性。 + +例如: + +```go +func arraySum(x [3]int) int{ + sum := 0 + for _, v := range x{ + sum = sum + v + } + return sum +} +``` + +这个求和函数只能接受`[3]int`类型,其他的都不支持。 再比如, + +a := [3]int{1, 2, 3} + +数组a中已经有三个元素了,我们不能再继续往数组a中添加新元素了, 所以为了解决上述问题我们引入了Python一样切片的编程语言特性。 + + + +# 1.切片定义 + +描述: `切片(Slice)`是一个拥有相同类型元素的可变长度的序列。它是`基于数组类型做的一层封装`。 + +特点: + +- 切片它非常灵活,支持自动扩容。 +- 切片是一个引用类型,它的内部结构包含`地址`、`长度`和`容量`。切片一般用于快速地操作一块数据集合。 + +声明切片类型的基本语法如下: + +```go +var name []T + +// 关键字解析 +- name:表示变量名 +- T:表示切片中的元素类型 +``` + +Tips : 在定义时可看出与数组定义`var array [number]T`间的区别,其不需要设置元素个数。 + +举个例子: + +```go +func main() { + // 声明切片类型 + var a []string //声明一个字符串切片 + var b = []int{} //声明一个整型切片并初始化 + var c = []bool{false, true} //声明一个布尔切片并初始化 + var d = []bool{false, true} //声明一个布尔切片并初始化 + fmt.Println(a) //[] + fmt.Println(b) //[] + fmt.Println(c) //[false true] + fmt.Println(a == nil) //true + fmt.Println(b == nil) //false + fmt.Println(c == nil) //false + // fmt.Println(c == d) //切片是引用类型,不支持直接比较,只能和nil比较 +} +``` + + + +# 2.切片长度与容量 + +描述: 切片拥有自己的长度和容量,我们可以通过使用内置的`len()`函数求长度,使用内置的`cap()`函数求切片的容量。 + +```go +// 切片长度与容量 +var lth = []int{} +var lth64 = []float64{1, 2, 3} +fmt.Println("切片长度", len(lth), ",切片容量", cap(lth)) // 切片长度 0 ,切片容量 0 +fmt.Println("切片长度", len(lth64), ",切片容量", cap(lth64)) // 切片长度 3 ,切片容量 3 +``` + + + +# 3.切片表达式 + +描述: 切片表达式从字符串、数组、指向数组或切片的指针构造子字符串或切片。 + +它有两种变体:一种指定low和high两个索引界限值的简单的形式,另一种是除了low和high索引界限值外还指定容量的完整的形式。 + +# 简单切片表达式 + +描述: 切片的底层就是一个数组,所以我们可以基于数组通过切片表达式得到切片。 切片表达式中的`low`和`high`表示一个索引范围`(左包含,右不包含)`,也就是下面代码中从数组a中选出`1<=索引值<4`的元素组成切片s,得到的切片`长度=high-low`,容量等于得到的切片的底层数组的容量。 + +```go +func main() { + a := [5]int{1, 2, 3, 4, 5} + s := a[1:3] // s := a[low:high] + fmt.Printf("s:%v len(s):%v cap(s):%v\n", s, len(s), cap(s)) // 5 - 1 +} +``` + +输出: + +s:[2 3] len(s):2 cap(s):4 + +为了方便起见,可以省略切片表达式中的任何索引。省略了`low`则默认为0;省略了`high`则默认为切片操作数的长度: + +```go +a[2:] // 等同于 a[2:len(a)] +a[:3] // 等同于 a[0:3] +a[:] // 等同于 a[0:len(a)] +``` + + + +**注意:**对于数组或字符串,如果`0 <= low <= high <= len(a)`,则索引合法,否则就会索引越界(out of range)。 + +Tips : 对切片再执行切片表达式时(`切片再切片`),`high`的上限边界是切片的容量`cap(a)`,而不是长度。 + +**常量索引**必须是非负的,并且可以用int类型的值表示;对于数组或常量字符串,常量索引也必须在有效范围内。如果`low`和`high`两个指标都是常数,它们必须满足`low <= high`。如果索引在运行时超出范围,就会发生运行时`panic`。 + +```go +func main() { + a := [5]int{1, 2, 3, 4, 5} + s1 := a[1:3] // s1 := a[low:high] + fmt.Printf("s1:%v len(s1):%v cap(s1):%v\n", s1, len(s1), cap(s1)) + s2 := s[3:4] // 索引的上限是cap(s)而不是len(s) + fmt.Printf("s2:%v len(s2):%v cap(s2):%v\n", s2, len(s2), cap(s2)) +} +``` + +输出: + +```go +s:[2 3] len(s):2 cap(s):4 +s2:[5] len(s2):1 cap(s2):1 +``` + +完整切片表达式 + +描述: 对于数组,指向数组的指针,或切片a(注意不能是字符串)支持完整切片表达式: + +a[low : high : max] + +描述: 上面的代码会构造与简单切片表达式`a[low: high]`相同类型、相同长度和元素的切片。另外它会将得到的结果切片的容量设置为`max-low`。在完整切片表达式中只有第一个索引值(low)可以省,它默认为0。 + +```go +func main() { + a := [5]int{1, 2, 3, 4, 5} + t := a[1:3:5] + fmt.Printf("t:%v len(t):%v cap(t):%v\n", t, len(t), cap(t)) +} +``` + +输出结果: + +```go +t:[2 3] len(t):2 cap(t):4 +``` + +Tips : 完整切片表达式需要满足的条件是`0 <= low <= high <= max <= cap(a)`,其他条件和简单切片表达式相同。 + + + +# 4.切片遍历 + +描述: 切片的遍历方式和数组是一致的,支持索引遍历和`for range`遍历。 + +```go +func main() { + s := []int{1, 3, 5} + for i := 0; i < len(s); i++ { + fmt.Println(i, s[i]) + } + for index, value := range s { + fmt.Println(index, value) + } +} +``` + + + +# 5.切片的本质 + +描述: 切片的本质就是对底层数组的封装,它包含了三个信息:`底层数组的指针、切片的长度(len)和切片的容量(cap)`。 + +举个例子,现在有一个数组`a := [8]int{0, 1, 2, 3, 4, 5, 6, 7}`,切片`s1 := a[:5]`,相应示意图如下。 + +![WeiyiGeek.slice_01](assets/9df3291e8cba1df403b00f4dd67ca100e0b52897.png@942w_447h_progressive.webp) + +切片`s2 := a[3:6]`,相应示意图如下: + +![WeiyiGeek.slice_02](assets/cd6e549aff74fe8aa8bc262566706e0b8f39b342.png@942w_447h_progressive.webp) + +Tips : 由上面两图可知切片的容量是`数组长度 - 切片数组起始索引下标`,例如 a[1:] = 8 - 1 其容量为7 + + + +# 6.make() 方法构造切片 + +描述: 我们上面都是基于数组来创建的切片,如果需要动态的创建一个切片,我们就需要使用内置的`make()`函数,格式如下: + +格式说明: + +```go +make([]T, size, cap) + +# 参数说明 +- T:切片的元素类型 +- size:切片中元素的数量 +- cap:切片的容量 +``` + +举个例子: + +```go +func main() { + a := make([]int, 2, 10) + fmt.Println(a) //[0 0] + fmt.Println(len(a)) //2 + fmt.Println(cap(a)) //10 +} +``` + + + +上面代码中`a`的内部存储空间已经分配了10个,但实际上只用了2个。 容量并不会影响当前元素的个数,所以`len(a)`返回2,`cap(a)`则返回该切片的容量。 + + + +# 7.append() 方法切片添加元素 + +描述: Go语言的内建函数`append()`可以为切片动态添加元素。 可以一次添加一个元素,可以添加多个元素,也可以添加另一个切片中的元素(后面加…)。 + +```go +func main(){ + var s []int + s = append(s, 1) // [1] + s = append(s, 2, 3, 4) // [1 2 3 4] + s2 := []int{5, 6, 7} + s = append(s, s2...) // [1 2 3 4 5 6 7] +} +``` + + + +**注意:** 通过var声明的零值切片可以在`append()`函数直接使用,无需初始化。 + +```go +var s []int +s = append(s, 1, 2, 3) +``` + + + +**注意:** 没有必要像下面的代码一样初始化一个切片再传入`append()`函数使用, + +```go +s := []int{} // 没有必要初始化 +s = append(s, 1, 2, 3) + +var s = make([]int) // 没有必要初始化 +s = append(s, 1, 2, 3) +``` + + + +描述: 每个切片会指向一个底层数组,这个数组的容量够用就添加新增元素。当底层数组不能容纳新增的元素时,切片就会自动按照一定的策略进行“扩容”,此时该切片指向的底层数组就会更换。“扩容”操作往往发生在`append()`函数调用时,所以我们通常都需要用原变量接收append函数的返回值。 + +举个例子: + +```go +func main() { + //append()添加元素和切片扩容 + var numSlice []int + for i := 0; i < 10; i++ { + numSlice = append(numSlice, i) + fmt.Printf("%v len:%d cap:%d ptr:%p\n", numSlice, len(numSlice), cap(numSlice), numSlice) + } +} +``` + + + +输出情况: + +```go +[0] len:1 cap:1 ptr:0xc0000a8000 +[0 1] len:2 cap:2 ptr:0xc0000a8040 +[0 1 2] len:3 cap:4 ptr:0xc0000b2020 +[0 1 2 3] len:4 cap:4 ptr:0xc0000b2020 +[0 1 2 3 4] len:5 cap:8 ptr:0xc0000b6000 +[0 1 2 3 4 5] len:6 cap:8 ptr:0xc0000b6000 +[0 1 2 3 4 5 6] len:7 cap:8 ptr:0xc0000b6000 +[0 1 2 3 4 5 6 7] len:8 cap:8 ptr:0xc0000b6000 +[0 1 2 3 4 5 6 7 8] len:9 cap:16 ptr:0xc0000b8000 +[0 1 2 3 4 5 6 7 8 9] len:10 cap:16 ptr:0xc0000b8000 +``` + +从上面的结果可以看出: + +1. `append()`函数将元素追加到切片的最后并返回该切片。 +2. 切片numSlice的容量按照`1,2,4,8,16`这样的规则自动进行扩容,每次扩容后都是扩容前的2倍。 + + + +append() 函数还支持一次性追加多个元素,例如: + +```go +var citySlice []string +// 追加一个元素 +citySlice = append(citySlice, "北京") +// 追加多个元素 +citySlice = append(citySlice, "上海", "广州", "深圳") +// 追加切片 +a := []string{"成都", "重庆"} +citySlice = append(citySlice, a...) +fmt.Println(citySlice) // [北京 上海 广州 深圳 成都 重庆] +``` + + + +# 8.copy()方法复制切片 + +描述: 首先我们来看一个问题 + +```go +func main() { + a := []int{1, 2, 3, 4, 5} + b := a + fmt.Println(a) //[1 2 3 4 5] + fmt.Println(b) //[1 2 3 4 5] + b[0] = 1000 + fmt.Println(a) //[1000 2 3 4 5] + fmt.Println(b) //[1000 2 3 4 5] +} +``` + + + +Tips : 由于切片是引用类型,所以a和b其实都指向了同一块内存地址。修改b的同时a的值也会发生变化。 + +Go语言内建的`copy()`函数可以迅速地将一个切片的数据复制到另外一个切片空间中,`copy()`函数的使用格式如下: + +```go +copy(destSlice, srcSlice []T) + +# 参数: +- srcSlice: 数据来源切片 +- destSlice: 目标切片 +``` + +举个例子: + +```go +func main() { + // copy()复制切片 + a := []int{1, 2, 3, 4, 5} + c := make([]int, 5, 5) + copy(c, a) //使用copy()函数将切片a中的元素复制到切片c + fmt.Println(a) //[1 2 3 4 5] + fmt.Println(c) //[1 2 3 4 5] + c[0] = 1000 + fmt.Println(a) //[1 2 3 4 5] + fmt.Println(c) //[1000 2 3 4 5] +} +``` + + + +# 9.从切片中删除元素 + +描述: Go语言中并没有删除切片元素的专用方法,我们可以使用切片本身的特性来删除元素。 代码如下: + +```go +func main() { + // 从切片中删除元素 + a := []int{30, 31, 32, 33, 34, 35, 36, 37} + // 要删除索引为2的元素 + a = append(a[:2], a[3:]...) + fmt.Println(a) // [30 31 33 34 35 36 37] +} +``` + + + +总结一下就是:要从切片a中删除索引为`index`的元素,操作方法是`a = append(a[:index], a[index+1:]...)` + + + +# 10.切片相关操作 + +# 判断切片是否为空 + +描述: 要检查切片是否为空,请始终使用`len(s) == 0`来判断,而不应该使用`s == nil`来判断。 + +```go +d := [5]int{1, 2, 3, 4, 5} +// 判断切片是否为空 +if len(d) != 0 { + fmt.Println("变量 d 切片不为空: ", d) +} +``` + +# 切片不能直接比较 + +描述: 切片之间是不能比较的,我们不能使用`==`操作符来判断两个切片是否含有全部相等元素。 切片唯一合法的比较操作是和`nil`比较。 一个`nil`值的切片并没有底层数组,一个`nil`值的切片的长度和容量都是0。 + +但是我们不能说一个长度和容量都是0的切片一定是`nil`,例如下面的示例: + +```go +var s1 []int //len(s1)=0;cap(s1)=0;s1==nil +s2 := []int{} //len(s2)=0;cap(s2)=0;s2!=nil +s3 := make([]int, 0) //len(s3)=0;cap(s3)=0;s3!=nil +``` + +所以要判断一个切片是否是空的,要是用`len(s) == 0`来判断,不应该使用`s == nil`来判断。 + + + +# 切片的赋值拷贝 + +描述: 下面的代码中演示了拷贝前后两个变量共享底层数组,对一个切片的修改会影响另一个切片的内容,这点需要特别注意。 + +```go +func main() { + s1 := make([]int, 3) //[0 0 0] + s2 := s1 //将s1直接赋值给s2,s1和s2共用一个底层数组 + s2[0] = 100 + fmt.Println(s1) //[100 0 0] + fmt.Println(s2) //[100 0 0] +} +``` + + + +# 切片的扩容策略 + +描述: 可以通过查看`$GOROOT/src/runtime/slice.go`源码,其中扩容相关代码如下: + +```go +newcap := old.cap +doublecap := newcap + newcap +if cap > doublecap { + newcap = cap +} else { + if old.len < 1024 { + newcap = doublecap + } else { + // Check 0 < newcap to detect overflow + // and prevent an infinite loop. + for 0 < newcap && newcap < cap { + newcap += newcap / 4 + } + // Set newcap to the requested cap when + // the newcap calculation overflowed. + if newcap <= 0 { + newcap = cap + } + } +} +``` + + + +从上面的代码可以看出以下内容: + +- 首先判断,如果新申请容量(cap)大于2倍的旧容量(old.cap),最终容量(newcap)就是新申请的容量(cap)。 +- 否则判断,如果旧切片的长度小于1024,则最终容量(newcap)就是旧容量(old.cap)的两倍,即(newcap=doublecap), +- 否则判断,如果旧切片的长度大于等于1024,则最终容量(newcap)从旧容量(old.cap)开始循环增加原来的1/4,即`(newcap=old.cap,for {newcap += newcap/4})`直到最终容量(newcap)大于等于新申请的容量(cap),即`(newcap >= cap)` +- 如果最终容量(cap)计算值溢出,则最终容量(cap)就是新申请容量(cap)。 + +Tips : 需要注意的是,切片扩容还会根据切片中元素的类型不同而做不同的处理,比如`int`和`string`类型的处理方式就不一样。 + +**示例演示:** + +```javascript +package main + +import "fmt" + +func main() { + // 切片声明与定义 + var a []string //声明一个字符串切片 + var b = []int{} //声明一个整型切片并初始化 + var c = []bool{false, true} //声明一个布尔切片并初始化 + + // - 切片 a 变量值为空/零值。 + if a == nil { + fmt.Println("a 切片元素:", a) + } + fmt.Println("b 切片元素:", b) + fmt.Println("c 切片元素:", c) + + // 切片长度与容量 + var lth = []int{} + var lth64 = []float64{1, 2, 3} + fmt.Println("切片长度", len(lth), ",切片容量", cap(lth)) + fmt.Println("切片长度", len(lth64), ",切片容量", cap(lth64)) + + // 切片表达式 + d := [5]int{1, 2, 3, 4, 5} + s := [5]string{"Let", "'s", "Go", "语言", "学习"} + s1 := d[1:3] // s := d[low(包含):high(不包含)] == d[1] d[2] + s2 := d[2:] // 等同于 a[2:5] == d[2] d[3] d[4] + s3 := d[:3] // 等同于 a[0:3] == d[0] d[1] d[2] + s4 := d[:] // 等同于 a[0:5] == d[0] d[1] d[2] d[3] d[4] + s5 := s[1:4:5] // 等同于 s[1:4] == s[1] s[2] s[3] + + fmt.Printf("s1:%v len(s1):%v cap(s1):%v\n", s1, len(s1), cap(s1)) // 注意此种情况 { 2 .. 5 容量为 4 } + fmt.Printf("s2:%v len(s2):%v cap(s2):%v\n", s2, len(s2), cap(s2)) // { 3 .. 5 容量为 3 } + fmt.Printf("s3:%v len(s3):%v cap(s3):%v\n", s3, len(s3), cap(s3)) // 注意此种情况 { 1 .. 5 容量为 5 } + fmt.Printf("s4:%v len(s4):%v cap(s4):%v\n", s4, len(s4), cap(s4)) // { 1 .. 5 容量为 5} + fmt.Printf("s5:%v len(s5):%v cap(s5):%v\n", s5, len(s5), cap(s5)) // s5:['s Go 语言] len(s5):3 cap(s5):4 + + // 判断切片是否为空 + if len(d) != 0 { + fmt.Println("变量 d 切片不为空: ", d) + } + + // 切片遍历 + for i, v := range s { + fmt.Printf("i: %d, v: %v , 切片指针地址: %p \n", i, v, &v) + } + fmt.Println() + + // make() 构造切片 + e := make([]int, 2, 10) + fmt.Printf("e:%v len(e):%d cap(e):%d \n", e, len(e), cap(e)) // 长度 2,容量为 10 + + // append() 添加元素 {7,8,9} + f := append(e, 7, 8, 9) // f:[0 0 7 8 9] len(f):5 cap(f):10 + f = append(f, e...) // 追加切片 + fmt.Printf("f:%v len(f):%d cap(f):%d \n", f, len(f), cap(f)) // 长度 7,容量为 10 + + // copy() 复制切片 + slice1 := []int{1, 2, 3, 4, 5} + slice2 := make([]int, 7, 7) + copy(slice2, slice1) + slice2[6] = 2048 + fmt.Println("slice1 : ", slice1, "\t slice2 :", slice2) + + // 切片赋值拷贝 + slice3 := make([]int, 3) + slice4 := slice3 + slice4[0] = 1024 + slice4[2] = 4096 + fmt.Printf("slice3 : %v, ptr : %p \n", slice3, slice3) + fmt.Printf("slice4 : %v, ptr : %p \n", slice4, slice4) +} +``` + +**执行结果:** + +```javascript +a 切片元素: [] +b 切片元素: [] +c 切片元素: [false true] +切片长度 0 ,切片容量 0 +切片长度 3 ,切片容量 3 +s1:[2 3] len(s1):2 cap(s1):4 +s2:[3 4 5] len(s2):3 cap(s2):3 +s3:[1 2 3] len(s3):3 cap(s3):5 +s4:[1 2 3 4 5] len(s4):5 cap(s4):5 +s5:['s Go 语言] len(s5):3 cap(s5):4 +变量 d 切片不为空: [1 2 3 4 5] +i: 0, v: Let , 切片指针地址: 0xc000010270 +i: 1, v: 's , 切片指针地址: 0xc000010270 +i: 2, v: Go , 切片指针地址: 0xc000010270 +i: 3, v: 语言 , 切片指针地址: 0xc000010270 +i: 4, v: 学习 , 切片指针地址: 0xc000010270 + +e:[0 0] len(e):2 cap(e):10 +f:[0 0 7 8 9 0 0] len(f):7 cap(f):10 +slice1 : [1 2 3 4 5] slice2 : [1 2 3 4 5 0 2048] +slice3 : [1024 0 4096], ptr : 0xc000018288 +slice4 : [1024 0 4096], ptr : 0xc000018288 +``` + +Tips 总结: 数组是值类型,且包含元素的类型和元素个数,需注意元素的个数`(数组长度)`属于数组类型的一部分。 \ No newline at end of file diff --git a/notes/5.Map篇.md b/notes/5.Map篇.md new file mode 100644 index 0000000..de0ea1a --- /dev/null +++ b/notes/5.Map篇.md @@ -0,0 +1,400 @@ +** +本章目录:** + +- 0x02 Go语言基础之Map映射 + +- - 1.Map 声明定义 + - 2.Map 基础使用 + - 3.Map 键值遍历 + - 4.Map 键值删除 + - 5.值为map类型的切片 + - 6.值为切片类型的map + - 7.示例演示 + +![img](assets/71bf2cd56882a2e97f8b3477c9256f8b09f361d3.png@progressive.webp) + +# 0x02 Go语言基础之Map映射 + +描述: Go语言中提供的映射关系容器为map, 其内部使用散列表(hash)实现。 + +# 1.Map 声明定义 + +描述: Map 是一种无序的基于`key-value`的数据结构, 并且它是引用类型,所以必须初始化值周才能进行使用。 + +**语法定义:** + +```javascript +map[KeyType]ValueType + +// # 参数说明: +- KeyType:表示键的类型。 +- ValueType:表示键对应的值的类型。 +``` + +Tips : map类型的变量`默认初始值为nil`,需要使用`make()函数来分配内存`。语法为:`make(map[KeyType]ValueType, [cap])`, 其中cap表示map的容量,该参数虽然不是必须的,但是我们应该在初始化map的时候就为其指定一个合适的容量。 + + + +# 2.Map 基础使用 + +描述:Map 中的数据都是成对出现的其Map的基本使用示例代码如下: + +```go +// 1.采用Make初始化Map类型的变量。 +scoreMap := make(map[string]int, 8) +scoreMap["小明"] = 100 +fmt.Println(scoreMap["小明"]) +fmt.Printf("type of a:%T\n", scoreMap) + +// 2.在声明时填充元素。 +userInfo := map[string]string{ + "username": "WeiyiGeek", + "password": "123456", +} +fmt.Println(userInfo) +``` + + + +# 3.Map 键值遍历 + +描述: 在进行Map类型的变量遍历之前,我们先学习判断map中键是否存在。 + +**(1) 键值判断** +描述: 判断Map中某个键是否存在可以采用如下特殊写法: `value, ok := map[key]` + +```go +scoreMap := make(map[string]int) +scoreMap["小明"] = 100 +value, ok := scoreMap["张三"] +if ok { + fmt.Println("scoreMap 存在该 '张三' 键") +} else { + fmt.Println("scoreMap 不存在该键值") +} +``` + + + +**(2) 键值遍历** +描述: Go 语言中不像Python语言一样有多种方式进行遍历, 大道至简就 `for...range` 遍历 `Map` 就可以搞定。 + +```go +scoreMap := make(map[string]int) +scoreMap["Go"] = 90 +scoreMap["Python"] = 100 +scoreMap["C++"] = 60 +// 遍历 k-v 写法 +for k, v := range scoreMap { + fmt.Println(k, v) +} + +// 遍历 k 写法 +for k := range scoreMap { + fmt.Println(k) +} + +// 遍历 v 写法 +for _, v := range scoreMap { + fmt.Println(v) +} +``` + + + +Tips :遍历map时的元素顺序与添加键值对的顺序无关。 + + + +# 4.Map 键值删除 + +描述: 我们可使用 `delete() 内建函数` 从map中删除一组键值对, `delete()` 函数的格式如下: `delete(map, key)` + +其中 `map:`表示要删除键值对的map, `key:` 表示要删除的键值对的键。 + +```go +scoreMap := make(map[string]int) +scoreMap["张三"] = 90 +scoreMap["小明"] = 100 +delete(scoreMap, "小明" ) // 将`小明:100`从map中删除 +for k,v := range scoreMap{ + fmt.Println(k, v) +} +``` + + + +# 5.值为map类型的切片 + +描述: 第一次看到时可能比较绕,其实可以看做在切片中存放Map类型变量。 + +简单示例: + + + +```go +func demo3() { + var mapSlice = make([]map[string]string, 3) + for index, value := range mapSlice { + fmt.Printf("index:%d value:%v\n", index, value) + } + fmt.Println() + // 对切片中的map元素进行初始化 + mapSlice[0] = make(map[string]string, 10) + mapSlice[1] = make(map[string]string, 10) + mapSlice[2] = make(map[string]string, 10) + mapSlice[0]["name"] = "WeiyiGeek" + mapSlice[0]["sex"] = "Man" + mapSlice[1]["姓名"] = "极客" + mapSlice[1]["性别"] = "男" + mapSlice[2]["hobby"] = "Computer" + mapSlice[2]["爱好"] = "电脑技术" + for i, v := range mapSlice { + //fmt.Printf("index:%d value:%v\n", i, v) + for _, value := range v { + fmt.Printf("index:%d value:%v\n", i, value) + } + } +} +``` + + + +执行结果: + +```go +index:0 value:map[] +index:1 value:map[] +index:2 value:map[] + +index:0 value:Man +index:0 value:WeiyiGeek +index:1 value:极客 +index:1 value:男 +index:2 value:Computer +index:2 value:电脑技术 +``` + + + +# 6.值为切片类型的map + +描述: 同样在Map中存放切片类型的数据。 + +代码演示了map中值为切片类型的操作: + +```go +// 值为切片类型的map +func demo4() { + var sliceMap = make(map[string][]string, 3) + var key = [2]string{"Country", "City"} + fmt.Println("初始化 sliceMap 其值 : ", sliceMap) + + for _, v := range key { + // 判断键值是否存在如果不存在则初始化一个容量为2的切片 + value, ok := sliceMap[v] + if !ok { + value = make([]string, 0, 2) + } + if v == "Country" { + value = append(value, "中国", "台湾") + } else { + value = append(value, "北京", "上海") + } + // 将切片值赋值给Map类型的变量 + sliceMap[v] = value + } +``` + +执行结果: + +```go +初始化 sliceMap 其值 : map[] +map[City:[北京 上海] Country:[中国 台湾]] +``` + + + +Tips : 非常重要、重要 `Slice切片与Map` 在使用时一定要做初始化操作(在内存空间申请地址)。 + + + +# 7.示例演示 + +**1.Map类型的基础示例** + +```go +func demo1() { + // 1.Map 定义 + var a1 map[string]int8 // (未分配内存) + fmt.Println("Map 类型 的 a1 变量 :", a1) + if a1 == nil { + fmt.Println("默认初始化的Map类型的a1变量值: nil") + } + + // 2.基本使用利用Make进行分配内存空间存储Map。 + b1 := make(map[string]string, 8) + b1["姓名"] = "WeiyiGeek" + b1["性别"] = "男|man" + b1["爱好"] = "计算机技术" + b1["出生日期"] = "2021-08-08" + // 指定输出 + fmt.Printf("b1['姓名'] = %v \n", b1["姓名"]) + // 整体输出 + fmt.Printf("Map b1 Type: %T , Map b1 Value: %v \n", b1, b1) + + // 3.在声明时填充元素。 + c1 := map[string]string{ + "username": "WeiyiGeek", + "sex": "Man", + "hobby": "Computer", + } + // 指定输出 + fmt.Printf("c1['username'] = %v \n", c1["username"]) + // 整体输出 + fmt.Printf("Map c1 Type: %T , Length : %d , Map c1 Value: %v \n", c1, len(c1), c1) + + // 4.判断c1中的键值时候是否存在 sex Key. + value, ok := c1["sex"] + if ok { + fmt.Println("c1 Map 变量中存在 'sex' 键 = ", value) + } else { + fmt.Println("c1 Map 变量中不存在 sex 键") + } + + // 5.遍历Map + for k, v := range b1 { + fmt.Println(k, "=", v) + } + + // 6.删除指定键值对,例如删除c1中的hobby键值。 + delete(c1, "hobby") + fmt.Printf("Map 现存在的键 : ") + for k := range c1 { + fmt.Print(k, " ") + } +} +``` + + + +执行结果: + +```go +Map 类型 的 a1 变量 : map[] +默认初始化的Map类型的a1变量值: nil +b1['姓名'] = WeiyiGeek +Map b1 Type: map[string]string , Map b1 Value: map[出生日期:2021-08-08 姓名:WeiyiGeek 性别:男|man 爱好:计算机技术] +c1['username'] = WeiyiGeek +Map c1 Type: map[string]string , Length : 3 , Map c1 Value: map[hobby:Computer sex:Man username:WeiyiGeek] +c1 Map 变量中存在 'sex' 键 = Man +出生日期 = 2021-08-08 +姓名 = WeiyiGeek +性别 = 男|man +爱好 = 计算机技术 +Map 现存在的键 : username sex +``` + + + +**2.按照指定顺序遍历map** + +```go +func demo2() { + rand.Seed(time.Now().UnixNano()) //初始化随机数种子 + + // 申请并初始化一个长度为 200 的 Map + var scoreMap = make(map[string]int, 200) + for i := 0; i < 20; i++ { + key := fmt.Sprintf("stu%02d", i) //生成stu开头的字符串 + value := rand.Intn(100) //生成0~99的随机整数 + scoreMap[key] = value + } + + //取出map中的所有key存入切片keys + var keys = make([]string, 0, 200) + for key := range scoreMap { + keys = append(keys, key) + } + + //对切片进行排序 + sort.Strings(keys) + + //按照排序后的key遍历map + for _, key := range keys { + fmt.Println(key, scoreMap[key]) + } +} +``` + +执行结果: + +```go +stu00 4 +stu01 48 +stu02 66 +stu03 18 +stu04 13 +stu05 89 +stu06 80 +stu07 16 +stu08 11 +stu09 26 +stu10 42 +stu11 45 +stu12 24 +stu13 47 +stu14 92 +stu15 77 +stu16 12 +stu17 16 +stu18 17 +stu19 76 +``` + + + +Tips : 探究上述示例中`Array 数组、Slice 切片、Map 映射`有序与无序输出演示。 + +```go +func demo5() { + // Array + var Arr = [...]int{1, 2, 6, 4, 5} + // Slice + var Sli = []int{1, 2, 6, 4, 5} + // Map + var Map = map[string]int{ + "a1": 1, + "b2": 2, + "c3": 3, + "d6": 6, + "e5": 5, + } + + fmt.Printf("Type : %T, Value : %v \n", Arr, Arr) + for _, A := range Arr { + fmt.Printf("%v ", A) + } + fmt.Println() + fmt.Printf("Type : %T, Value : %v \n", Sli, Sli) + for _, S := range Sli { + fmt.Printf("%v ", S) + } + fmt.Println() + fmt.Printf("Type : %T, Value : %v \n", Map, Map) + for _, M := range Map { + fmt.Printf("%v ", M) + } +} +``` + +执行结果: + +```go +Type : [5]int, Value : [1 2 6 4 5] +1 2 6 4 5 +Type : []int, Value : [1 2 6 4 5] +1 2 6 4 5 +Type : map[string]int, Value : map[a1:1 b2:2 c3:3 d6:6 e5:5] +1 2 3 6 5 +``` \ No newline at end of file diff --git a/notes/6.指针、函数.md b/notes/6.指针、函数.md new file mode 100644 index 0000000..37cca9e --- /dev/null +++ b/notes/6.指针、函数.md @@ -0,0 +1,1461 @@ +**本章目录:** + +0x00 Go语言基础之指针 + +- 1.指针地址 +- 2.指针类型 +- 3.指针取值 +- 4.指针特性 +- 5.内存地址分配 + +0x01 Go语言基础之函数 + +- 1.函数定义 + +- 2.函数调用 + +- 3.函数参数 + +- - 固定参数 + - 可变参数 + +- 4.函数返回 + +- - 单返回值 + - 多返回值 + - 返回值命名 + - 返回值补充 + +- 5.函数中变量作用域 + +- - 全局变量 + - 局部变量 + +- 6.函数类型与变量 + +- - 定义函数类型 + - 函数类型变量 + +- 7.高阶函数 + +- - 函数作为参数 + - 函数作为返回值 + +- 8.函数补充 + +- - 递归函数 + - 匿名函数 + - 闭包 + - defer 语句 + - 函数总结示例 + +![img](assets/4aa545dccf7de8d4a93c2b2b8e3265ac0a26d216.png@progressive.webp) + +# 0x00 Go语言基础之指针 + +描述: Go 语言中的指针区别于C/C++中的指针,Go语言中的指针`不能进行偏移和运算`是`安全指针`。 + +Go 语言中三个重要概念: `指针地址`、`指针类型`以及`指针取值`。 + +简单回顾: 任何程序数据载入内存后,在内存都有他们的地址这就是指针。而为了保存一个数据在内存中的地址,我们就需要指针变量。 + +比如,“永远不要高估自己”这句话是我的座右铭,我想把它写入程序中,程序一启动这句话是要加载到内存(假设内存地址0x123456),我在程序中把这段话赋值给变量A,把内存地址赋值给变量B。这时候变量B就是一个`指针变量`, 通过变量A和变量B都能找到我的座右铭。 + +Go语言中的指针操作非常简单,我们只需要记住两个符号:`&(取地址)` 和 `*(根据地址取值)`。 + + + +# 1.指针地址 + +描述: 每个变量在运行时都拥有一个地址,该地址代表变量在内存中的位置。 + +Go语言中使用`&字符放在变量前面`对变量进行`“取地址”`操作。 + +取变量指针(地址)的语法如下: + +```go +ptr := &v // v的类型为T +// # 参数 +// v:代表被取地址的变量,类型为T +// ptr:用于接收地址的变量,ptr的类型就为*T,称做T的指针类型。*代表指针。 +``` + + + +# 2.指针类型 + +描述: Go语言中的值类型`(int、float、bool、string、array、struct)`都有对应的指针类型,如:`*int、*int64、*string`等。 + +简单示例: + +```go +func main() { +a := 10 +b := &a +fmt.Printf("a:%d ptr:%p\n", a, &a) // a:10 ptr:0xc00001a078 (指针地址) +fmt.Printf("*b:%d ptr:%p type:%T\n",*b, b, b) // b:10 ptr:0xc00001a078 type:*int (指针类型) +fmt.Printf("&b ptr:%p ",b) // &b ptr:0xc00000e018 +} +``` + +为了更好的理解指针地址,我们来看一下`b := &a`的图示: + +![WeiyiGeek.指针地址](assets/9ca17bc7a667b9879a8fde110e5d6a052db46c90.png@942w_417h_progressive.webp) + + + +# 3.指针取值 + +描述: 在对普通变量使用&操作符取地址后会获得这个变量的指针,然后可以对指针使用*操作,也就是指针取值,代码如下。 + +```go +func main() { +//指针取值 +a := 10 +b := &a // 取变量a的地址,将指针保存到b中 +fmt.Printf("type of b:%T\n", b) +c := *b // 指针取值(根据指针去内存取值) +fmt.Printf("type of c:%T\n", c) +fmt.Printf("value of c:%v\n", c) +} +``` + +输出结果: + +type of b:*int +type of c:int +value of c:10 + + + +# 4.指针特性 + +描述: 通过上面的`指标变量、类型、取值`的学习,我们了解到`取地址操作符&`和`取值操作符*`是一对互补操作符,其中`&`取出地址,`*`根据地址取出地址指向的值。 + +Tips : 变量、指针地址、指针变量、取地址、取值的相互关系和特性如下: + +- 1.对变量进行取地址(&)操作,可以获得这个变量的指针变量(`指针地址`)。 +- 2.对指针变量进行取值(*)操作,可以获得指针变量指向的原变量的值。 + +例如:我们可以在局部函数中修改全局变量的值采用指针传值: + +```go +func modify1(x int) { +x = 100 +} + +func modify2(x *int) { +*x = 100 +} + +func main() { +a := 10 +modify1(a) +fmt.Println(a) // 10 +modify2(&a) +fmt.Println(a) // 100 +} +``` + + + + + +# 5.内存地址分配 + +描述: 在Go语言中对于引用类型的变量,我们在使用的时候不仅要声明它,还要`为它分配内存空间`,否则我们的值就没办法存储。而`对于值类型的声明不需要分配内存空间`,是因为它们在声明的时候已经默认分配好了内存空间。 +Tips :Go语言中new和make是内建的两个函数,他主要用来分配内存。 + +例如:执行下述例子中的代码会引发panic错误 + +```go +func main() { + // 声明 + var a *int + // 定义 + *a = 100 + + fmt.Println(*a) + + var b map[string]int + b["沙河娜扎"] = 100 + fmt.Println(b) +} +``` + + + +**New 函数** +描述: new是Go语言的一置的函数它的函数签名如下: + +func new(Type) *Type + +其中, + +- `Type` 表示类型,new 函数只接受一个参数,这个参数是一个类型 +- `*Type` 表示类型指针,new 函数返回一个指向该类型内存地址的指针。 + + + +Tips :New 函数不太常用但由它可以得到一个类型的指针,并且该指针对应的值应该为该类型的零值。 + +```go +func main() { + // 只是声明了一个指针变量a但是没有初始化 + a := new(int) + b := new(bool) + fmt.Printf("%T\n", a) // *int + fmt.Printf("%T\n", b) // *bool + fmt.Println(*a) // 0 + fmt.Println(*b) // false +} +``` + + + +Tips : 指针作为引用类型需要初始化后才会拥有内存空间才可以给它赋值,所以需要按照下述方式使用内置的new函数对a进行初始化之后就可正常对其赋值了。 + +```go +func main() { + var a *int + a = new(int) + *a = 10 + fmt.Println(*a) +} +``` + + + +**make 函数** +描述: make也是用于内存分配的,区别于new,它只用于slice、map以及chan的内存创建,而且它返回的类型就是这三个类型本身,而不是他们的指针类型,因为这三种类型就是引用类型,所以就没有必要返回他们的指针了。 + +函数签名如下: + +func make(t Type, size ...IntegerType) Type + +Tips : Type 主要是 slice、map 以及channel类型,并且必须使用make进行初始化后,才能对它进行操作。 + +例如: + +```go +func main() { + // 只是声明变量b是一个map类型的变量 + var b map[string]int + //使用make函数进行初始化操作之后 + b = make(map[string]int, 10) + //才能对其进行键值对赋值: + b["WeiyiGeek"] = 100 + fmt.Println(b) +} +``` + + + +**总结:new 函数与 make函数的区别** + +- 二者都是用来做内存分配的。 +- make只用于slice、map以及channel的初始化,返回的还是这三个引用类型本身; +- new用于类型的内存分配,并且内存对应的值为类型零值,返回的是指向类型的指针。 + +**示例演示:** + +```go +// 转入int类型的参数 +func normal(x int) { +x = 65535 + fmt.Printf("Func Param &x ptr : %p \n", &x) +} + +// 传入的参数为指针类型 +func pointer(x *int) { +*x = 65535 +fmt.Printf("Func Param x ptr : %p \n", x) +} + +func demo1() { +// 1.2获得变量a的内存地址 +a := 1024 +b := &a +fmt.Printf("a : %d , a ptr: %p, b ptr : %v , *b = %d \n", a, &a, b, *b) +fmt.Printf("b type: %T, &b ptr : %p \n", b, &b) +fmt.Println() +// 2.针对变量a的内存地址进行重赋值(此时会覆盖变量a的原值) +*b = 2048 +fmt.Printf("Change -> a : %d , a ptr: %p, b ptr : %v , *b = %d \n", a, &a, b, *b) +fmt.Printf("b type: %T, &b ptr : %p \n\n", b, &b) + +// 3.指针传值 +c := 4096 +normal(c) +fmt.Println("After Normal Function c : ", c) +pointer(&c) +fmt.Printf("After Pointer Function c : %v, c ptr: %p \n\n", c, &c) + +// 4.new 内存地址申请 +var a4 *int +//*a4 = 100 // 此行会报 _panic 错误,因为未分配内存空间 +fmt.Println("a4 ptr : ", a4) // 空指针 ()还没有内存地址 + +d := new(int) // 申请一块内存空间 (内存地址) +fmt.Printf("%T ,%p, %v \n", d, d, *d) // 其指针类型默认值为 0 与其类型相关联。 +*d = 8192 // 对该内存地址赋值 +fmt.Printf("%T ,%p, %v \n\n", d, d, *d) + +// 5.make 内存地址申请 +var b5 map[string]string +//b5["Name"] = "WeiyGeek" //此行会报 _panic 错误,因为未分配内存空间 +fmt.Printf("%T , %p , %v\n", b5, &b5, *&b5) + +b5 = make(map[string]string, 10) // 申请一块内存空间 (内存地址) +b5["Name"] = "WeiyGeek" // 此时便可对该Map类型进行赋值了 +b5["Address"] = "ChongQIng China" +fmt.Printf("%T , %p , %v\n\n", b5, &b5, b5) +} +``` + +执行结果: + +```go +a : 1024 , a ptr: 0xc00001a0d8, b ptr : 0xc00001a0d8 , *b = 1024 +b type: *int, &b ptr : 0xc00000e028 + +Change -> a : 2048 , a ptr: 0xc00001a0d8, b ptr : 0xc00001a0d8 , *b = 2048 +b type: *int, &b ptr : 0xc00000e028 + +Func Param &x ptr : 0xc00013a048 +After Normal Function c : 4096 +Func Param x ptr : 0xc00013a040 +After Pointer Function c : 65535, c ptr: 0xc00013a040 + +a4 ptr : +*int ,0xc00001a130, 0 +*int ,0xc00001a130, 8192 + +map[string]string , 0xc00000e038 , map[] +map[string]string , 0xc00000e038 , map[Address:ChongQIng China Name:WeiyGeek] +``` + + + +# 0x01 Go语言基础之函数 + +描述: 其实在前面的示例中我们都已经接触到了函数,例如Go语言的内置函数或者是您自己编写的函数,在本章之中我们将详细讲解Go语言函数的使用。 + +**Why , 为啥各个编程语言都要要引入函数?** + +> 答: 函数是组织好的、可重复使用的、用于执行指定任务的代码块。 +> 通用得说即减少代码量、增强可读性、代码复用、提高开发效率、节约资源等特点。 + + + +# 1.函数定义 + +描述: Go语言中支持函数、匿名函数和闭包,并且函数在Go语言中属于`一等公民`。 + +Go语言中定义函数使用func关键字,具体格式如下: + +func 函数名(参数)(返回值){ + 函数体 +} + +其中: + +- 函数名:由字母、数字、下划线组成。但函数名的第一个字母不能是数字。`注意在同一个包内函数名也称不能重名`(包的概念详见后文)。 +- 参数:参数由参数变量和参数变量的类型组成,多个参数之间使用,分隔。 +- 返回值:返回值由返回值变量和其变量类型组成,也可以只写返回值的类型,多个返回值必须用()包裹,并用,分隔。 +- 函数体:实现指定功能的代码块。 + +**示例1** + +```go +// 方式1 +func sayHello() { + fmt.Println("Hello World, Let's Go") +} +``` + + + +# 2.函数调用 + +描述: 定义了函数之后,我们可以通过`函数名()`的方式调用函数。 + +例如.我们调用上面定义的函数代码如下: + +```go +func main() { + fmt.Println("Start") + sayHello() + fmt.Println("End") +} +``` + + + +# 3.函数参数 + +描述: 通常我们需要为函数传递参数进行相应的处理以达到我们最终需要的产物。 + +**函数参数类型** + +- 固定参数 +- 可变参数 + +# 固定参数 + +**常规参数类型** +针对固定函数的参数我们需要制定其类型,例如 + +func intSum(x int, y int) { + fmt.Println("x + y =",x+y) +} + + + +**参数类型简写** +函数的参数中如果相邻变量的类型相同,则可以省略类型,例如: + +func intSum(x , y int) { + fmt.Println("x + y =",x+y) +} + +Tips : 上面的代码中,intSum函数有两个参数,这两个参数的类型均为int,因此可以省略x的类型,因为y后面有类型说明,x参数也是该类型。 + + + +# 可变参数 + +描述: 可变参数是指函数的`参数数量不固定`。Go语言中的可变参数通过在参数名后加 `...` 来标识(是否似曾相识,我们在数组那章节时使用过它,表示自动判断数组中元素个数进行初始化操作)。 + +**示例1:** + +```go +func intSum2(x ...int) int { + fmt.Println(x) //x是一个切片 + sum := 0 + for _, v := range x { + sum = sum + v + } + return sum +} +``` + +调用上面的函数: + +ret1 := intSum2() +ret2 := intSum2(10) +ret3 := intSum2(10, 20) +ret4 := intSum2(10, 20, 30) +fmt.Println(ret1, ret2, ret3, ret4) //0 10 30 60 + +注意:可变参数通常要作为函数的最后一个参数。 + + + +固定参数搭配可变参数使用时,可变参数要放在固定参数的后面, + +**示例2** + +```go +func intSum3(x int, y ...int) int { + fmt.Println(x, y) + sum := x + for _, v := range y { + sum = sum + v + } + return sum +} +``` + +调用上述函数: + +ret5 := intSum3(100) +ret6 := intSum3(100, 10) +ret7 := intSum3(100, 10, 20) +ret8 := intSum3(100, 10, 20, 30) +fmt.Println(ret5, ret6, ret7, ret8) //100 110 130 160 + +Tips : 本质上,函数的可变参数是通过切片来实现的。 + + + +# 4.函数返回 + +描述: 与其他编程语言一样,Go语言中通过`return`关键字向外输出返回值。 + +# 单返回值 + +描述: Go语言中常规函数返回值。 + +举个例子: + +func sum(x, y int)(res int) { + return x + y +} + + + +# 多返回值 + +描述: Go语言中函数支持多返回值,函数如果有多个返回值时必须`用()将所有返回值`包裹起来。 + +举个例子: + +```go +func calc(x, y int) (int, int) { + sum := x + y + sub := x - y + return sum, sub +} +``` + +函数调用并接收返回值: sum,sub := calc(5, 3) // 8 , 2 + + + +# 返回值命名 + +描述: 函数定义时可以给返回值命名,并在函数体中直接使用这些变量,最后通过return关键字返回。 + +举个例子: + +```go +func calc(x, y int) (sum, sub int) { + sum = x + y + sub = x - y + return +} +``` + +函数调用并接收返回值: + +sum,sub := calc(5, 3) // 8 , 2 + +Tips :如果使用返回值命令时,只要其中一个返回值命名则另外一个返回值也必须命名。 + + + +# 返回值补充 + +描述: 当我们的一个函数返回值类型为slice时,nil可以看做是一个有效的slice,没必要显示返回一个长度为0的切片。 + +```go +func someFunc(x string) []int { + if x == "" { + return nil // 没必要返回[]int{} + } + ... +} +``` + + + +# 5.函数中变量作用域 + +描述: 变量作用域分为`全局变量作用域`和`局部变量作用域`以及`代码块作用域` + +# 全局变量 + +描述: 全局变量是定义在函数外部的变量,它在程序整个运行周期内都有效, 在函数中可以访问到全局变量。 + +```go +package main +import "fmt" + +//定义全局变量num +var num int64 = 10 +func testGlobalVar() { + fmt.Printf("num=%d\n", num) //函数中可以访问全局变量num +} +func main() { + testGlobalVar() // 10 + fmt.Printf("num=%d\n", num) // 10 +} +``` + + + +# 局部变量 + +描述: 局部变量由分为两类一种是在函数内部定义的局部变量,另外一种则是在函数内部代码块中定义的局部变量 + +**类1.在函数内定义的变量无法在该函数外使用。** + +例如: 下面的示例代码main函数中无法使用`testLocalVar`函数中定义的变量x + +```go +func testLocalVar() { + //定义一个函数局部变量x,仅在该函数内生效 + var x int64 = 100 + fmt.Printf("x=%d\n", x) +} + +func main() { + testLocalVar() + fmt.Println(x) // 此时无法使用变量x,并且此时会报错undefine x。 +} +``` + + + +**类2.在函数内的语句块定义的变量** +描述: 通常我们`会在if条件判断、for循环、switch语句上`使用这种定义变量的方式。 + +```go +// if 代码块 +func testLocalVar2(x, y int) { + fmt.Println(x, y) //函数的参数也是只在本函数中生效 + if x > 0 { + z := 100 //变量z只在if语句块生效 + fmt.Println(z) + } + //fmt.Println(z) //此处无法使用变量z +} + + +// for 代码块 +func testLocalVar3() { + for i := 0; i < 10; i++ { + fmt.Println(i) //变量i只在当前for语句块中生效 + } + // fmt.Println(i) //此处无法使用变量i +} +``` + +Tips : 如果局部变量和全局变量重名,则优先访问局部变量。 + +Tips : 函数中查找变量的顺序步骤,(1) 现在函数内部查找,(2) 在函数上层或者外层查找, (3) 最后在全局中查找(`此时如果找不到则会报错`) + + + +# 6.函数类型与变量 + +# 定义函数类型 + +描述: 我们可以使用type关键字来定义一个函数类型,具体格式如下:`type calculation func(int, int) int` + +上面语句定义了一个calculation类型,它是一种函数类型,这种函数接收两个int类型的参数并且返回一个int类型的返回值。 + +简单来说,凡是满足这个条件的函数都是calculation类型的函数,例如`下面的add和sub`都是`calculation类型`的函数。 + +示例: + +```go +type calculation func(int, int) int +func add(x, y int) int { + return x + y +} +func sub(x, y int) int { + return x - y +} +// add和sub都能赋值给calculation类型的变量。 +var c calculation +c = add +fmt.Println(c(1,2)) // 函数类型变量传递 +``` + + + +# 函数类型变量 + +描述: 我们可以声明函数类型的变量并且为该变量赋值: + +```go +func main() { + var c calculation // 声明一个calculation类型的变量c + c = add // 把add赋值给calculation类型的变量c + fmt.Printf("type of c:%T\n", c) // type of c:main.calculation (区别点) + fmt.Println(c(1, 2)) // 像调用add一样调用c 1 + 2 = 3 + + f := sub // 将函数sub赋值给变量f1 + fmt.Printf("type of f:%T\n", f) // type of f:func(int, int) int (区别点) 非函数类型的变量 + fmt.Println(f(30, 20)) // 像调用add一样调用f 30 - 20 = 10 +} +``` + + + +# 7.高阶函数 + +描述: 高阶函数分为`函数作为参数`和`函数作为返回值`两部分。 + +# 函数作为参数 + +函数可以作为参数示例: + +```go +func add(x, y int) int { + return x + y +} +func calc(x, y int, op func(int, int) int) int { + return op(x, y) +} +func main() { + ret2 := calc(10, 20, add) + fmt.Println(ret2) //30 +} +``` + +函数作为返回值 + +函数也可以作为返回值示例(`此种方式非常值得学习`): + +```go +func do(s string) (func(int, int) int, error) { + switch s { + case "+": + return add, nil + case "-": + return sub, nil + default: + err := errors.New("无法识别的操作符") + return nil, err + } +} +``` + + + +# 8.函数补充 + +# 递归函数 + +**Q: 什么是递归(Recursion)函数?** + +> 答: 递归,就是在运行的过程中函数调用自身。 +> 但是值得注意的是我们在使用递归时,`开发者需要设置退出条件,否则递归将陷入无限循环中`(一定一定要有退出条件)。 + +语法格式: + +```go +func recursion() { + recursion() /* 函数调用自身 */ +} + +func main() { + recursion() +} +``` + +Tips : 递归函数对于解决数学上的问题是非常有用的,就像计算阶乘,生成斐波那契数列等。 + +**示例1.n的阶乘计算** + +```go +func factorial(n uint64) (ret uint64) { + if n <= 1 { + return 1 + } + return n * factorial(n-1) + } + +func demo1() { + fmt.Println("5 的阶乘 : ", factorial(5)) +} +``` + +执行结果: + +5 的阶乘 : 120 + + + +**示例2.利用递归求斐波那契数列** + +```go +// 方式1 +func Fibonacci(count uint64) (ret uint64) { + if count == 0 { + return 0 + } + if count == 1 || count == 2 { + return 1 + } + ret = Fibonacci(count-1) + Fibonacci(count-2) + return +} + +func demo3() { + count := 10 + fmt.Printf("%v 个斐波那契数列:", count) + for i := 1; i < count; i++ { + fmt.Printf("%v ", Fibonacci(uint64(i))) + } +} + +// 方式2.值得学习 +// fib returns a function that returns successive Fibonacci numbers. +func fib() func() int { + a, b := 0, 1 + return func() int { + a, b = b, a+b + return a + } +} +func main() { + f := fib() + fmt.Println(f(), f(), f(), f(), f()) +} +``` + +执行结果: + +10 个斐波那契数列:1 1 2 3 5 8 13 21 34 + + + +# 匿名函数 + +描述: 函数当然还可以作为返回值,但是在Go语言中函数内部不能再像之前那样定义函数了,只能定义匿名函数。 + +**Q: 什么是匿名函数?** + +> 答: 匿名函数就是没有函数名的函数,在很多编程语言中都有这样的特性。 +> 匿名函数多用于实现回调函数和闭包。 + +Tips : 匿名函数因为没有函数名,所以没办法像普通函数那样调用,所以匿名函数需要`保存到某个变量`或者作为`立即执行函数`: + +```go +func main() { + // 方式1.将匿名函数保存到变量 + add := func(x, y int) { + fmt.Println(x + y) + } + add(10, 20) // 通过变量调用匿名函数 + + //方式2.自执行函数:匿名函数定义完加()直接执行 + func(x, y int) { + fmt.Println(x + y) + }(10, 20) +} +``` + + + +# 闭包 + +描述: 闭包指的是一个函数和与其相关的引用环境组合而成的实体。简单来说,`闭包=函数+外遍变量的引用`, 例如在第三方包里只能传递一个不带参数的函数,此时我们可以通过闭包的方式创建一个带参数处理的流程,并返回一个不带参数的函数。 + +Tips : 非常注意引用的外部外部变量在其生命周期内都是存在的(`即下次调用还能使用该变量值`)。 + + + +闭包基础示例1: + +```go +func adder() func(int) int { + var x int // 在f的生命周期内,变量x也一直有效 + return func(y int) int { + x += y + return x + } +} +func main() { + var f = adder() + fmt.Println(f(10)) //x=0,y=10 -> x = 10 + fmt.Println(f(20)) //x=10,y=20 -> x = 30 + fmt.Println(f(30)) //x=30,y=30 -> x = 60 + + f1 := adder() + fmt.Println(f1(40)) //40 + fmt.Println(f1(50)) //90 +} +``` + + + +闭包基础示例2: + +```go +package main + +import ( +"fmt" +"math" +) + +// 1.假设这是个第三方包 +func f1(f func()) { +fmt.Printf("# This is f1 func , Param is f func() : %T \n", f) +f() // 调用传入的函数 +} + +// 2.自己实现的函数 +func f2(x, y int) { +fmt.Printf("# This is f2 func , Param is x,y: %v %v\n", x, y) +fmt.Printf("x ^ y = %v \n", math.Pow(float64(x), float64(y))) +} + +// 要求 f1(f2) 可以执行,此时由于f1 中的传递的函数参数并无参数,所以默认调用执行一定会报错。 +// 此时我们需要一个中间商利用闭包和匿名函数来实现,返回一个不带参数的函数。 + +func f3(f func(int, int), x, y int) func() { +tmp := func() { +f(x, y) // 此处实际为了执行f2函数 +} +return tmp // 返回一个不带参数的函数,为返回给f1函数 +} + +func main() { +ret := f3(f2, 2, 10) // 此时函数并为执行只是将匿名函数进行返回。先执行 f3(fun,x,y int) +f1(ret) // 当传入f1中时ret()函数便会进行执行。再执行 f1() ,最后执行 f2(x,y int) +} +``` + + +执行结果: +\# This is f1 func , Param is f func() : func() +\# This is f2 func , Param is x,y: 2 10 +x ^ y = 1024 + +Tips : 变量f是一个函数并且它引用了其外部作用域中的x变量,此时f就是一个闭包。并且在f的生命周期内,变量x也一直有效。 + + + +闭包进阶示例1:相比较于上面这种方式该种是将x变量放入函数参数之中,在进行函数调用时赋值。 + +```go +func adder2(x int) func(int) int { + return func(y int) int { + x += y + return x + } +} +func main() { + var f = adder2(10) // `在f的生命周期内,变量x也一直有效。` + fmt.Println(f(10)) //20 + fmt.Println(f(20)) //40 + fmt.Println(f(30)) //70 + + f1 := adder2(20) + fmt.Println(f1(40)) //60 + fmt.Println(f1(50)) //110 +} +``` + + + +闭包进阶示例2:判断文件名称是否以指定的后缀结尾,`是则返回原文件名称,否则返回文件名称+指定后缀的文件`。 + +```go +func makeSuffixFunc(suffix string) func(string) string { + return func(name string) string { + // 判断name变量中的字符串是否已suffix结尾 + if !strings.HasSuffix(name, suffix) { + return name + suffix + } + return name + } +} + +func main() { + jpgFunc := makeSuffixFunc(".jpg") + txtFunc := makeSuffixFunc(".txt") + fmt.Println(jpgFunc("test")) //test.jpg + fmt.Println(txtFunc("test")) //test.txt +} +``` + + + +闭包进阶示例3:该示例中函数同时返回`add,sub`两个函数. + +```go +func calc(base int) (func(int) int, func(int) int) { + add := func(i int) int { + base += i + return base + } + + sub := func(i int) int { + base -= i + return base + } + return add, sub +} + +func main() { + f1, f2 := calc(10) + fmt.Println(f1(1), f2(2)) //11 9 + fmt.Println(f1(3), f2(4)) //12 8 + fmt.Println(f1(5), f2(6)) //13 7 +} +``` + +Important : 闭包其实并不复杂,只要牢记闭包=函数+引用环境。 + + + +# defer 语句 + +描述: Go语言中的defer语句会将其后面跟随的语句进行延迟处理。在defer归属的函数即将返回时,`将延迟处理的语句按defer定义的逆序进行执行(压栈-后进先出)`,也就是说,先被defer的语句最后被执行,最后被defer的语句,最先被执行。 + +**(1) defer 执行时机** +描述: 在Go语言的函数中`return语句在底层并不是原子操作`,它分为给`返回值赋值`和`RET指令`两步。而defer语句执行的时机就`在返回值赋值操作后,RET指令执行前`。 + +具体如下图所示: + +![WeiyiGeek.defer执行时机](assets/6ea5df085af746954c716a7838370ceded6dab69.png@942w_354h_progressive.webp) + + + +**(2) 简单例子** + +示例1: defer 延迟特性演示 + +```go +func main() { + fmt.Println("start") + defer fmt.Println(1) + defer fmt.Println(2) + defer fmt.Println(3) + fmt.Println("end") +} +// 输出结果: +start +end +3 +2 +1 +``` + + + +示例2.探究程序执行开始时间以及最后函数返回前的时间 + +```go +func funcTime() int { + fmt.Println("函数开始时间: ", time.Now().Local()) + var x = 0 + defer fmt.Println("init x = ", x) // 注意点: 此处已经将x=0值赋值了,只是没有被输出。// 最终输出 + for i := 0; i <= 100; i++ { + x += i + } + defer fmt.Println("函数返回前时间: ", time.Now().Local()) // 再输出 + defer fmt.Println("ret x = ", x) // 后进先出 -> 先输出 + return x +} +// 输出结果: +函数开始时间: 2021-08-15 18:28:58.37787611 +0800 CST +ret x = 5050 +函数返回前时间: 2021-08-15 18:28:58.377991344 +0800 CST +init x = 0 +``` + +Tips : 由于defer语句延迟调用的特性,所以defer语句能非常方便的处理资源释放问题。比如:`资源清理、文件关闭、解锁及记录时间`等。 + + + +**(3) 经典面试案例** +示例1: + +```go +package main +import "fmt" +// 函数返回值无命名 +func f1() int { + x := 5 // 局部变量 + defer func() { + x++ + }() + return x // 1.返回值 x = 5, 2.defer 语句执行后修改的是 x = 6,3.RET指令最后返回的值是 5 (由于无返回值命令则就是return已赋予的值5) +} + +// 函数返回值命名 y 进行返回 +func f2() (x int) { + defer func() { + x++ + }() + return 5 // 1.返回值 x = 5, 2.defer 语句执行后修改的是 x = 6,3.RET指令最后返回的x值是 6 (由于存在返回值命名x则就是return x 值6) +} + +// 函数返回值命名 y 进行返回 +func f3() (y int) { + x := 5 // 局部变量 + defer func() { + x++ // 修改 x 变量的值 x + 1 + }() + return x // 1.返回值 x = y = 5, 2.defer 语句执行后修改的是 x ,3.RET指令最后返回的y值还是 5 +} + +// 匿名函数无返回值 +func f4() (x int) { + defer func(x int) { + x++ // 改变得是函数中局部变量x,非外部x变量。 + }(x) + return 5 // 1.返回值 x = 5, 2.defer 语句执行后 x 副本 = 6 , 3.RET指令最后返回的值还是 5 +} + +// 匿名函数中返回值 +func f5() (x int) { + defer func(x int) int { + x++ // 改变得是函数中局部变量x,非外部x变量。 + return x + }(x) + return 5 // 1.返回值 x = 5, 2.defer 语句执行后 x 副本 = 6 , 3.RET指令最后返回的值还是 5 +} + +// 传入一个指针到匿名函数中(方式1) +func f6() (x int) { + defer func(x *int) { + *x++ + }(&x) + return 5 // 1.返回值 x = 5, 2.由于defer语句,传入x指针地址到匿名函数中 x = 6, 3.RET指令最后返回的值 6 +} + +// 传入一个指针到匿名函数中(方式2) +func f7() (x int) { + defer func(x *int) int { + (*x)++ + return *x + }(&x) + return 5 // 1.返回值x = 5, 2.由于defer语句,传入x指针地址到匿名函数中 x = 6, 3.RET指令最后返回值 6 +} + +func main() { + fmt.Println("f1() = ", f1()) + fmt.Println("f2() = ", f2()) + fmt.Println("f3() = ", f3()) + fmt.Println("f4() = ", f4()) + fmt.Println("f5() = ", f5()) + fmt.Println("f6() = ", f6()) + fmt.Println("f7() = ", f7()) +} +// 执行结果: +f1() = 5 +f2() = 6 +f3() = 5 +f4() = 5 +f5() = 5 +f6() = 6 +f7() = 6 +``` + + + +示例2.问下面代码的输出结果是?(提示:defer注册要延迟执行的函数时该函数所有的参数都需要确定其值) + +```go +func calc(index string, a, b int) int { + ret := a + b + fmt.Println(index, a, b, ret) + return ret +} + +func main() { + x := 1 + y := 2 + defer calc("AA", x, calc("A", x, y)) + // calc("A", x, y) =>calc("A", 1, 2) = 3 {"A" , 1, 2, 3} + // defer calc("AA", 1, 3) = 4 {"AA", 1, 3, 4} + x = 10 + defer calc("BB", x, calc("B", x, y)) + // calc("B", x, y) = calc("B", 10, 2) = 12 {"B" , 10, 2, 12} + // defer calc("BB", 10, 12) = 22 {"BB",10,12,22} + y = 20 +} +// 执行结果: +{"A" , 1, 2, 3} +{"B" , 10, 2, 12} +{"BB", 10, 12, 22} +{"AA", 1, 3, 4} +``` + +Tips : 当遇到defer语句时其中的函数中调用的变量值是外部变量时,是离该defer语句最近的外部变量其赋予的值(`存在于一个变量多次赋值的场景`)。 + + + +# 函数总结示例 + +```go +package main +import ( + "errors" + "fmt" + "strings" + "time" +) +// 函数:将一段代码封装到代码块之中 +// 1.无参函数 +func f1() { + fmt.Println("Hello World, Let's Go") +} + +// 2.有参函数 +func f2(name string) { + fmt.Println("Hello", name) +} + +// 3.函数返回值 +func f3(i int, j int) int { + sum := i + j + return sum +} + +// 4.函数多命名返回值与参数类型简写 +func f4(x, y int) (sum, sub int) { + sum = x + y + sub = x - y + return +} + +// 5.可变参数 +func f5(title string, value ...int) string { + return fmt.Sprintf("Title : %v , Value : %v \n", title, value) +} + +// 6.变量作用域之全局变量 + +const PATH = "/home/weiyigeek" + +var author = "WeiyiGeek" + +func f6() { + fmt.Println("author:", author, ",Home PATH:", PATH) +} + +// 7.变量作用域之局部变量 +func f7(x, y int) { + localAuthor := "WeiyiGeek" // 局部变量外部无法引用 + fmt.Println("localAuthor = ", localAuthor, ",x = ", x, ",y = ", y) + // 语句块定义的变量 + if x > 0 { + z := 1024 + fmt.Println(z) + } + for i := 0; i < 10; i++ { + fmt.Print(i, " ") + } + // fmt.Println(z,i) //此处无法使用变量z 和 i + fmt.Println() +} + +// 8.函数类型与变量 +type calc func(int, int) int + +func sum(x, y int) int { + return x + y +} +func sub(x, y int) int { + return x - y +} +func f8() { + // 方式1 + var c calc + c = sum + fmt.Printf("type of c:%T , c(1,2) : %v \n", c, c(1, 2)) // type of c:main.calculation (区别点) + + // 方式2 + d := sub + fmt.Printf("type of d:%T , d(1,2) : %v \n", d, d(1, 2)) // type of d:func(int, int) int (区别点) + +} + +// 9.函数作为参数值或者作为返回值 +func mul(x, y int) int { + return x * y +} +func div(x, y int) int { + return x / y +} + +// 函数作为参数值 +func calculation(x, y int, op func(int, int) int) int { + return op(x, y) +} + +// 函数作为返回值 +func ops(s string) (func(int, int) int, error) { + switch s { + case "+": + return sum, nil + case "-": + return sub, nil + case "*": + return mul, nil + case "/": + return div, nil + default: + err := errors.New("无法识别的操作符") + return nil, err + } +} + +func f9() { + // 演示1 + fmt.Printf("Type : %T , calculation (10 , 20, mul) = %v \n", calculation(10, 20, mul), calculation(10, 20, mul)) + + // 演示2 + value, _ := ops("/") + fmt.Printf("Type : %T , ops('/') -> div(100,10) = %v \n\n", value(100, 10), value(100, 10)) +} + +// 10.匿名函数 +func f10() { + // 方式1 + muls := func(x, y int) int { + fmt.Println("匿名函数1 之 x , y =", x, y) + return x * y + } + ret := muls(3, 2) + fmt.Println("匿名函数1 返回结果: ", ret) + + // 方式2 + func(x, y int) { + fmt.Println("匿名函数2 之 x , y =", x*y) + }(3, 2) + +} + +// 11.闭包 +func adder1() func(int) int { + var x int + return func(y int) int { + x += y + return x + } +} + +func adder2(x int) func(int) int { + return func(y int) int { + x += y + return x + } +} + +func makeSuffixFunc(suffix string) func(string) string { + return func(name string) string { + if !strings.HasSuffix(name, suffix) { + return name + suffix + } + return name + } +} + +func f11() { + // 方式1 + var f = adder1() + fmt.Printf("\n闭包 adder1: %v\n", f(10)) //x=0,y=10 -> x = 10 + fmt.Println("闭包 adder1:", f(20)) //x=10,y=20 -> x = 30 + fmt.Println("闭包 adder1:", f(30)) //x=30,y=30 -> x = 60 + + // 方式2 + g := adder2(10) + fmt.Printf("闭包 adder2: %v\n", g(10)) //x=10,y=10 -> x = 20 + fmt.Println("闭包 adder2:", g(20)) //x=20,y=20 -> x = 40 + fmt.Println("闭包 adder2:", g(30)) //x=40,y=30 -> x = 70 + + // 示例3 + testJPG := makeSuffixFunc("jpg") + fmt.Printf("闭包 makeSuffixFunc : file test = %v , file test.jpg = %v \n\n", testJPG("test"), testJPG("test.jpg")) +} + +// 12.defer 语句使用演示 +func funcTime() int { + fmt.Println("函数开始时间: ", time.Now().Local()) + var x = 0 + defer fmt.Println("init x = ", x) // 注意点: 此处已经将x=0值赋值了,只是没有被输出。 // 最终输出 + for i := 0; i <= 100; i++ { + x += i + } + defer fmt.Println("函数返回前时间: ", time.Now().Local()) // 再输出 + defer fmt.Println("ret x = ", x) // 后进先出 -> 先输出 + return x +} + +func f12() { + ret := funcTime() + fmt.Println("defer 示例1: 1+2+3+....+99+100 =", ret) +} + +func main() { + f1() + + f2("WeiyiGeek") + + fmt.Println(f3(1, 1)) + + x, y := f4(1, 3) + fmt.Printf("x = %d ,y = %d \n", x, y) + + fmt.Println(f5("我是一串数字:", 1, 2, 3, 4)) + + f6() + + f7(1, 2) + + f8() + + f9() + + f10() + + f11() + + f12() +} +``` + +执行结果: + +```go +Hello World, Let''s Go + +Hello WeiyiGeek + +2 + +x = 4 ,y = -2 + +Title : 我是一串数字: , Value : [1 2 3 4] + + +author: WeiyiGeek ,Home PATH: /home/weiyigeek + +localAuthor = WeiyiGeek ,x = 1 ,y = 2 + +1024 + +0 1 2 3 4 5 6 7 8 9 + +type of c:main.calc , c(1,2) : 3 + +type of d:func(int, int) int , d(1,2) : -1 + +Type : int , calculation (10 , 20, mul) = 200 + +Type : int , ops('/') -> div(100,10) = 10 + + +匿名函数1 之 x , y = 3 2 + +匿名函数1 返回结果: 6 + +匿名函数2 之 x , y = 6 + + +闭包 adder1: 10 + +闭包 adder1: 30 + +闭包 adder1: 60 + +闭包 adder2: 20 + +闭包 adder2: 40 + +闭包 adder2: 70 + +闭包 makeSuffixFunc : file test = testjpg , file test.jpg = test.jpg + + +函数开始时间: 2021-08-15 19:35:19.159014152 +0800 CST + +ret x = 5050 + +函数返回前时间: 2021-08-15 19:35:19.159208306 +0800 CST + +init x = 0 + +defer 示例1: 1+2+3+....+99+100 = 5050 +``` \ No newline at end of file diff --git a/notes/7.错误处理篇.md b/notes/7.错误处理篇.md new file mode 100644 index 0000000..d7c3168 --- /dev/null +++ b/notes/7.错误处理篇.md @@ -0,0 +1,1797 @@ +**本章目录** + +0x01 Go语言基础之错误处理 + +- 1.error 接口定义 +- 2.panic 函数 +- 3.recover 函数 +- 4.错误处理最佳实践 + +0x02 Go语言基础之结构体 + +- 1.类型定义 + +- 2.类型别名 + +- 3.结构体的定义 + +- 4.结构体实例化 + +- 5.结构体内存布局 + +- - 连续内存空间 + - 内存对齐分析 + +- 6.指针类型结构体 + +- - 结构体指针实例化 + - 结构体指针函数传递 + - 结构体指针构造函数 + +- 7.结构体方法与接收者 + +- - 结构体方法 + - 值类型的接收者 + - 指针类型的接收者 + - 任意类型的接收者 + +- 8.匿名结构体与匿名字段 + +- 9.嵌套结构体与匿名字段 + +- 10.结构体的“继承” + +- 11.结构体与“JSON” + +- 12.结构体和方法补充知识点 + +![img](assets/4aa545dccf7de8d4a93c2b2b8e3265ac0a26d216.png@progressive.webp) + +# 0x01 Go语言基础之错误处理 + +描述: Go语言中目前(1.16 版本中)是没有异常处理机制(`Tips :说是在2.x版本中将会加入异常处理机制`),但我们可以使用`error接口定义`以及`panic`/`recover`函数来进行异常错误处理。 + +# 1.error 接口定义 + +描述: 在Golang中利用`error类型`实现了error接口,并且可以通过`errors.New`或者`fmt.Errorf`来快速创建错误实例。 + +主要应用场景: 在 Go 语言中,错误是可以预期的,并且不是非常严重,不会影响程序的运行。对于这类问题可以用返回错误给调用者的方法,让调用者自己决定如何处理,通常采用 error 接口进行实现。 + +error接口定义: + +```go +type error interface { + Error() string +} +``` + + + +Go语言的标准库代码包errors方法: + +```go +// 方式1.在errors包中的New方法(Go 1.13 版本)。 +package errors +// go提供了errorString结构体,其则实现了error接口 +type errorString struct { + text string +} +func (e *errorString) Error() string { + return e.text +} + +// 在errors包中,还提供了New函数,来实例化errorString,如下: +func New(text string) error { + return &errorString{text} +} + +// 方式2.另一个可以生成error类型值的方法是调用fmt包中的Errorf函数(Go 1.13 版本以后) +package fmt +import "errors" +func Errorf(format string, args ...interface{}) error{ + return errors.New(Sprintf(format,args...)) +} +``` + +采用 errors 包中装饰一个错误; + +```go +errors.Unwrap(err error) //通过 errors.Unwrap 函数得到被嵌套的 error。 +errors.Is(err, target error) //用来判断两个 error 是否是同一个 +errors.As(err error, target interface{}) //error 断言 +``` + + + +**实际示例1:** + +```go +package main + +import ( + "errors" + "fmt" + "math" +) + +// 错误处理 +// 1.Error +func demo1() { + // 1.声明并初始化为error类型 + var errNew error = errors.New("# 错误信息来自 errors.New 方法。") + fmt.Println(errNew) + + // 2.调用标准库中Errorf方法 + errorfFun := fmt.Errorf("- %s", "错误信息来自 fmt.Errorf 方法。") + fmt.Println(errorfFun) + + // 3.实际案例 + result, err := func(a, b float64) (ret float64, err error) { + err = nil + if b == 0 { + err = errors.New("此处幂指数不能为0值,其结果都为1") + ret = 1 + } else { + ret = math.Pow(a, b) + } + return + }(5, 0) + + if err != nil { + fmt.Println("# 输出错误信息:", err) + fmt.Printf("5 ^ 0 = %v", result) + } else { + fmt.Printf("5 ^ 2 = %v", result) + } +} + +func main() { + demo1() +} +``` + +执行结果: + +```go +# 错误信息来自 errors.New 方法。 +- 错误信息来自 fmt.Errorf 方法。 +# 输出错误信息: 此处幂指数不能为0值,其结果都为1 +5 ^ 0 = 1 +``` + + + +**实际示例2:** + +```go +package main + +import ( + "fmt" +) + +// 定义一个 DivideError 结构 (值得学习) +type DivideError struct { + dividee int + divider int +} +// 实现 `error` 接口 (值得学习) +func (de *DivideError) Error() string { + strFormat := ` + Cannot proceed, the divider is zero. + dividee: %d + divider: 0 +` + return fmt.Sprintf(strFormat, de.dividee) +} + +// 定义 `int` 类型除法运算的函数 +func Divide(varDividee int, varDivider int) (result int, errorMsg string) { + if varDivider == 0 { + dData := DivideError{ + dividee: varDividee, + divider: varDivider, + } + errorMsg = dData.Error() + return + } else { + return varDividee / varDivider, "" + } +} + +func main() { + // 正常情况 + if result, errorMsg := Divide(100, 10); errorMsg == "" { + fmt.Println("100/10 = ", result) + } + // 当除数为零的时候会返回错误信息 + if _, errorMsg := Divide(100, 0); errorMsg != "" { + fmt.Println("errorMsg is: ", errorMsg) + } +} +``` + +执行结果: + +```go +100/10 = 10 +errorMsg is: + Cannot proceed, the divider is zero. + dividee: 100 + divider: 0 +``` + + + +# 2.panic 函数 + +描述: 当遇到某种严重的问题时需要直接退出程序时,应该调用panic函数从而引发的panic异常, 所以panic用于不可恢复的错误类似于Java的Error。 + +具体流程:是当panic异常发生时,程序会中断运行,并立即执行在该goroutine,随后程序崩溃并输出日志信息。日志信息包括panic、以及value的函数调用的堆栈跟踪信息。 + +panic 函数语法定义: + +func panic(v interface{}) + +Tips : panic函数接受任何值作为参数 + + + +**示例1.数组越界会自动调用panic** + +```go +func TestA() { + fmt.Println("func TestA{}") +} + +func TestB(x int) { + var a [10]int + a[x] = 111 +} + +func TestC() { + fmt.Println("func TestC()") +} + +func main() { +TestA() +TestB(20) //发生异常,中断程序 +TestC() +} +``` + + + +执行结果: + +```go +>>> func TestA{} +panic: runtime error: index out of rang +``` + +**示例2.调用panic函数引发的panic异常** + +```go +func A() { + fmt.Println("我是A函数 - 正常执行") +} + +func B() { + fmt.Println("我是B函数 - 正在执行") + panic("func B():panic") + fmt.Println("我是B函数 - 结束执行") +} + +func C() { + fmt.Println("我是c函数 - 正在执行") +} + +func demo2() { + A() + B() //发生异常,中断程序 + C() +} +``` + +执行结果: + +```go +我是A函数 - 正常执行 +我是B函数 - 正在执行 +发生异常: panic +"func B():panic" +Stack: + 2 0x00000000004b69a5 in main.B + at /home/weiyigeek/app/project/go/src/weiyigeek.top/studygo/Day02/05error.go:47 + 3 0x00000000004b6a8a in main.demo2 + at /home/weiyigeek/app/project/go/src/weiyigeek.top/studygo/Day02/05error.go:57 + 4 0x00000000004b6ac5 in main.main + at /home/weiyigeek/app/project/go/src/weiyigeek.top/studygo/Day02/05error.go:63 +``` + +![WeiyiGeek.panic异常](assets/6e1833b21e3963f9c14a547fe2771595264d532a.png@942w_411h_progressive.webp) + +**Q: 什么时候使用Error,什么时候使用Panic?** + +- 对于真正意外的情况,那些表示不可恢复的程序错误,例如`索引越界、不可恢复的环境问题、栈溢出、数据库连接后需操作`,我们才使用 panic。 +- 对于其他的错误情况,我们应该是期望使用 error 来进行判定。 + + + +# 3.recover 函数 + +描述: panic异常会导致程序崩溃,而recover函数专门用于“捕获”运行时的panic异常,它可以是当前程序从运行时panic的状态中恢复并重新获得流程控制权。 + +通常我们会使用 Recover 捕获 Panic 异常,例如Java中利用`Catch Throwable`来进行捕获异常。 + +```go +// Java +try { + ... +} catch (Throwable t) { + ... +} + +// C++ +try { + ... +} catch() { + +} +``` + +panic 函数语法定义: + +func recover() interface{} + +Tips: 在未发生panic时调用recover会返回nil。 + + + +**流程说明:** 如果调用了内置函数recover,并且定义该defer语句的函数发生了panic异常,recover会使程序从panic中恢复,并返回panic value。导致panic异常的函数不会继续运行,但能正常返回。 + + + +**示例1:panic与recover联合使用,此处采用 panic 演示的代码中的B函数进行继续修改** +描述: 在Go语言中可以通过defer定义的函数去执行一些错误恢复的行为 + +```go +func recoverB() (err error) { + fmt.Println("我是recoverB 函数 - 正在执行") + // 必须是 defer 语句中以及在panic函数前 + defer func() { + x := recover() + if x != nil { + err = fmt.Errorf("# 1.进行 recover(恢复) Panic 导致的程序异常,从此之后将会继续执行后续代码:\n%v", x) + } + }() // 此处利用匿名函数 + //panic("# 2.recoverB 函数中捕获 Panic") + panic(errors.New("# 2.recoverB 函数中出现 Panic")) + fmt.Println("我是recoverB 函数 - 结束执行") // 无法访问的代码 + return +} +func demo3() { + A() + err := recoverB() + if err != nil { + fmt.Println("#recoverB 输出的信息:", err) + } + C() +} +``` + +执行结果: + +```go +我是A函数 - 正常执行 +我是recoverB 函数 - 正在执行 +# recoverB 输出的信息: # 1.进行 recover(恢复) Panic 导致的程序异常,从此之后将会继续执行后续代码: +# 2.recoverB 函数中出现 Panic +我是c函数 - 正在执行 +``` + +** +** + +**示例 2.recover捕获异常后的异常,不能再次被recover捕获。** + +```go +func demo4() { + // 采用匿名函数进行立即执行该函数 + defer func() { // 声明defer, + fmt.Println("----调用 defer func1 start----") + err := recover() // 此处输出为 nil ,因为panic只能被 recover 捕获一次 + fmt.Printf("# 第二次 捕获 : %#v \n", err) + if err != nil { + fmt.Println(err) + } + fmt.Println("----调用 defer func1 end----") + }() + + defer func() { // 声明defer,压栈操作后进先出。 + fmt.Println("----调用 defer func2 start----") + if err := recover(); err != nil { + fmt.Println("# 第一次 捕获:", err) // 这里的err其实就是panic传入的内容 + } + fmt.Println("----调用 defer func2 end----") + }() + + panic("panic 异常 抛出 测试!") +} +``` + +执行结果: + +```go +----调用 defer func2 start---- +# 第一次 捕获: panic 异常 抛出 测试! +----调用 defer func2 end---- +----调用 defer func1 start---- +# 第二次 捕获 : +----调用 defer func1 end---- +``` + + + +**Q: panic() 与 recover() 位置区别?** +答: panic函数可以在任何地方引发(但panic退出前会执行defer指定的内容),但recover函数`只有在defer调用的函数中有效`并且一定要`位于panic语句之前`。 + +TIPS : 非常注意下面这种“错误方式”, 他可能会形成僵尸服务进程,导致`Health Check`失效。 + +```go +defer func() { + if err := recover(); err != nil { + Log.Error("Recovered Panic", err) + } +}() +``` + +**Q: panic 和 os.Exit 联用时对recover的影响** + +- os.Exit 退出时不会调用defer指定的函数. +- os.Exit 退出时不会输出当前调用栈信息. + + + +# 4.错误处理最佳实践 + +- 1、预定义错误,code里判断 +- 2、及早失败,避免嵌套 + +# 0x02 Go语言基础之结构体 + +描述: Go语言中没有`“类”`的概念,也`不支持“类”的继承`等面向对象的概念。但 Go语言中`通过结构体的内嵌`再`配合接口`比面向对象具`有更高的扩展性`和`灵活性`。 + +- Go语言中的基础数据类型可以`表示一些事物的基本属性`,但是当我们想表达一个事物的全部或部分属性时,这时候再用单一的基本数据类型明显就无法满足需求了(局限性)。 +- Go语言提供了一种自定义数据类型,可以封装多个基本数据类型,这种数据类型叫结构体(英文名称struct), 我们`可以通过struct来定义自己的类型`了。 + +**简单得说:** 结构体时一种数据类型,一种我们自己可以保持多个维度数据的类型。 所以与其他高级编程语言一样,Go语言也可以采用结构体的特性, 并且Go语言`通过struct来实现面向对象`。 + + + +# 1.类型定义 + +描述: 在Go语言中有一些基本的数据类型,如`string、int{}整型、float{}浮点型、boolean布尔`等数据类型, Go语言中可以`使用type关键字来定义自定义类型`(实际上定义了一个全新的类型)。 + +Tips : 我们可以基于内置的基本类型定义,也可以通过struct定义。 + +**示例演示:** + +```go +//将MyInt定义为int类型 +type MyInt int +``` + +通过type关键字的定义,MyInt就是一种新的类型,它具有int的特性。 + + + +# 2.类型别名 + +描述: 类型别名从字面意义上都很好理解,即类型别名本章上与原类型一样, 就比如像一个孩子小时候有小名、乳名,上学后用学名,英语老师又会给他起英文名,但这些名字都指的是他本人。 + +**示例演示:** + +```go +// TypeAlias只是Type的别名,本质上TypeAlias与Type是同一个类型 +type TypeAlias = Type +``` + +我们之前见过的`rune`和`byte`就是类型别名,他们的定义如下: + +```go +type byte = uint8 +type rune = int32 +``` + +Tips: 采用int32别名创建一个变量的几种方式。 + +```go +type MyInt32 = int32 +// 方式1 +var i MyInt32 +i = 1024 +// 方式2 +var j MyInt32 = 1024 +// 方式3 +var k = MyInt32(1024) +// 方式4 +l := MyInt32(1024) // 此处并非是函数,而是一个强制类型转换而已 +``` + + + +**Q: 类型定义和类型别名有何区别?** + +> 答: 类型别名与类型定义表面上看只有一个等号的差异,我们通过下面的这段代码来理解它们之间的区别。 + +**示例演示1:** + +```go +//1.类型定义 +type NewInt int + +//2.类型别名 +type MyInt = int + +// 类型定义 与 类型别名 区别演示 +func demo1() { + // 类型定义的使用 + var i NewInt + i = 1024 + fmt.Printf("Type of i: %T, Value:%v \n", i, i) + + // 类型别名的使用 + var j MyInt + j = 2048 + fmt.Printf("Type of j: %T, Value:%v \n", j, j) + + // rune 也是类型别名底层还是int32类型 + var k rune + k = '中' + fmt.Printf("Type of j: %T, Value:%c \n", k, k) +} +``` + +执行结果: + +```go +Type of i: main.NewInt, Value:1024 +Type of j: int, Value:2048 +Type of j: int32, Value:中 +``` + +结果显示说明: + +- `i` 变量的类型是main.NewInt,表示main包下定义的NewInt类型。 +- `j` 变量的类型是int,因MyInt类型只会在代码中存在,编译完成时并不会有MyInt类型。 + + + +# 3.结构体的定义 + +描述: 语言内置的基础数据类型是用来描述一个值的,而结构体是用来描述一组值的。`比如一个人有名字、年龄和居住城市等,本质上是一种聚合型的数据类型`。 + +使用`type`和`struct`关键字来定义结构体,具体代码格式如下: + +```go +type 类型名 struct { + 字段名 字段类型 + 字段名 字段类型 + … +} +``` + +其中: + +- 类型名:标识自定义结构体的名称,在同一个包内不能重复。 +- 字段名:表示结构体字段名。结构体中的字段名必须唯一。 +- 字段类型:表示结构体字段的具体类型。 + +举例说明: 以定义一个Person(人)结构体为例: + +```go +// 方式(0) +var v struct{} + +// 方式(1) +type person struct { + name string + city string + age int8 +} + +// 方式(2): 同样类型的字段也可以写在一行 +type person1 struct { + name, city string + age int8 +} +``` + +Tips : 上面创建了结构体一个person的自定义类型,它有`name、city、age`三个字段,分别表示姓名、城市和年龄。这样我们使用这个person结构体就能够很方便的在程序中表示和存储人信息了。 + + + +# 4.结构体实例化 + +描述: 只有当结构体实例化时,才会真正地分配内存。也就是必须实例化后才能使用结构体的字段。 + +Tips :结构体本身也是一种类型,我们可以像声明内置类型一样使用`var`关键字声明结构体类型。例如:`var 结构体实例 结构体类型`。 + + + +描述: 结构体初始化是非常必要,因为没有初始化的结构体,其成员变量都是对应其类型的零值。 + +**结构体示例化的三种语法格式:** + +```go +type demo struct { + username string + city string +} + +// 1.方式1.利用`.`进行调用指定属性 +var m1 demo +demo.username = "WeiyiGeek" + +// 2.方式2.使用键值对初始化 +m2 := demo {username: "WeiyiGeek",city:"重庆",} +m2 := &demo {username: "WeiyiGeek",city:"重庆",} // ==> new(demo) 此种方式会在结构体指针里面实践。 + +// 3.方式3.使用值的列表初始化 +m3 := demo { + "WeiyiGeek", + "重庆" +} +m3 := &demo { + "WeiyiGeek", + "重庆" +} +``` + +Tips : 特别注意在`使用值的列表初始化`这种格式初始化时, (1)`必须初始化结构体的所有字段`,(2)`初始值的填充顺序必须与字段在结构体中的声明顺序一致`,(3) `该方式不能和键值初始化方式混用。` + + + +**示例演示:** 下述演示三种基础方式进行结构体的实例化。 + +```go +// 1.结构体初识还是老示例采用结构体描述人员信息并进行赋值使用 +type Person struct { + name string + age uint8 + sex bool + hobby []string +} + +func demo1() { + // 方式1.声明一个Persin类型的变量x + var x Person + // 通过结构体中的属性进行赋值 + x.name = "WeiyiGeek" + x.age = 20 + x.sex = true // {Boy,Girl) + x.hobby = []string{"Basketball", "乒乓球", "羽毛球"} + // 输出变量x的类型以及其字段的值 + fmt.Printf("Type of x : %T, Value : %v \n", x, x) + x.name = "WeiyiGeeker" + // 我们通过.来访问结构体的字段(成员变量), 例如x.name和x.age等。 + fmt.Printf("My Name is %v \n", x.name) + + // 方式2.在声明是进行赋值(key:value,或者 value)的值格式 + // 使用键值对初始化 + var y = Person{ + name: "Go", + age: 16, + sex: false, + hobby: []string{"Computer", "ProgramDevelopment"}, + } + fmt.Printf("Type of y : %T, Value : %v \n", y, y) + // 非常注意此种方式是按照结构体中属性顺序进行赋值,同样未赋值的为该类型的零值 + // 使用值的列表初始化 + z := Person{ + "WeiyiGeek", + 10, + true, + []string{}, + } + fmt.Printf("Type of z : %T, Value : %v \n", z, z) +} +``` + +执行结果: + +```go +Type of x : main.Person, Value : {WeiyiGeek 20 true [Basketball 乒乓球 羽毛球]} +My Name is WeiyiGeeker +Type of y : main.Person, Value : {Go 16 false [Computer ProgramDevelopment]} +Type of z : main.Person, Value : {WeiyiGeek 10 true []} +``` + +Tips : 如果没有给结构体中的属性赋值,则默认采用该类型的零值。 + + + +# 5.结构体内存布局 + +描述: 结构体占用一块连续的内存,但是需要注意空结构体是不占用空间的。 + +# 连续内存空间 + +**示例演示:** + +```go +// 示例1.空结构体是不占用空间的 +var v struct{} +fmt.Println(unsafe.Sizeof(v)) // 0 + + +// 示例2.结构体占用一块连续的内存 +type test struct { + a int8 + b int8 + c int8 + d int8 +} +n := test{ + 1, 2, 3, 4, +} +fmt.Printf("n.a %p, int8 size: %d\n", &n.a, unsafe.Sizeof(bool(true))) +fmt.Printf("n.b %p\n", &n.b) +fmt.Printf("n.c %p\n", &n.c) +fmt.Printf("n.d %p\n", &n.d) + +// 执行结果: +n.a 0xc0000a0060 +n.b 0xc0000a0061 +n.c 0xc0000a0062 +n.d 0xc0000a0063 +``` + + + +# 内存对齐分析 + +**[进阶知识点] 关于在 Go 语言中恰到好处的内存对齐** +描述: 在讲解前内存对齐前, 我们先丢出两个struct结构体引发思考: + +**示例1.** 注意两个结构体中声明不同元素类型的顺序。 + +```go +type Part1 struct { + a bool + b int32 + c int8 + d int64 + e byte +} + +type Part2 struct { + e byte + c int8 + a bool + b int32 + d int64 +} +``` + + + +在开始之前,希望你计算一下 Part1 与 Part2 两个结构体分别占用的大小是多少呢? + +```go +func typeSize() { + fmt.Printf("bool size: %d\n", unsafe.Sizeof(bool(true))) + fmt.Printf("int32 size: %d\n", unsafe.Sizeof(int32(0))) + fmt.Printf("int8 size: %d\n", unsafe.Sizeof(int8(0))) + fmt.Printf("int64 size: %d\n", unsafe.Sizeof(int64(0))) + fmt.Printf("byte size: %d\n", unsafe.Sizeof(byte(0))) + fmt.Printf("string size: %d\n", unsafe.Sizeof("WeiyiGeek")) // 注意上面声明的结构体中没有该类型。 +} + +// 输出结果 +bool size: 1 +int32 size: 4 +int8 size: 1 +int64 size: 8 +byte size: 1 +string size: 16 +``` + + + +这么一算 Part1/Part2 结构体的占用内存大小为 `1+4+1+8+1 = 15` 个字节。相信有的小伙伴是这么算的,看上去也没什么毛病 + +真实情况是怎么样的呢?我们实际调用看看,如下: + +```go +func main() { + part1 := Part1{} + fmt.Printf("part1 size: %d, align: %d\n", unsafe.Sizeof(part1), unsafe.Alignof(part1)) + fmt.Println() + part2 := Part2{} + fmt.Printf("part2 size: %d, align: %d\n", unsafe.Sizeof(part2), unsafe.Alignof(part2)) +} +``` + + + +执行结果: + +```go +part1 size: 32, align: 8 +part2 size: 16, align: 8 + +Tips : `unsafe.Sizeof` 来返回相应类型的空间占用大小 +Tips : `unsafe.Alignof` 来返回相应类型的对齐系数 +``` + +从上述结果中可以看见 `part1` 占用32个字节而 `part2` 占用16字节,此时 part1 比我们上面计算结构体占用字节数多了16 Byte, 并且相同的元素类型但顺序不同的 part2 是正确的只占用了 16 Byte, 那为什么会出现这样的情况呢?同时这充分地说明了先前的计算方式是错误的。 + +在这里要提到 “内存对齐” 这一概念,才能够用正确的姿势去计算,接下来我们详细的讲讲它是什么 + + + +**Q: What 什么是内存对齐?** +答:有的小伙伴可能会认为内存读取,就是一个简单的字节数组摆放`(例图1) 表示一个坑一个萝卜的内存读取方式`。但实际上 CPU 并不会以一个一个字节去读取和写入内存, `相反 CPU 读取内存是一块一块读取的`,块的大小可以为 2、4、6、8、16 字节等大小, 块大小我们称其为内存访问粒度(例图2): + +![WeiyiGeek.内存对齐](assets/cbdb6330853dcdebe52b45d73111247a1a7aca30.png@894w_182h_progressive.webp) + +在样例中,假设访问粒度为 4。 CPU 是以每 4 个字节大小的访问粒度去读取和写入内存的。这才是正确的姿势 + + + +**Q: Why 为什么要关心对齐?** + +- 你正在编写的代码在性能(CPU、Memory)方面有一定的要求 +- 你正在处理向量方面的指令 +- 某些硬件平台(ARM)体系不支持未对齐的内存访问 + + + +**Q: Why 为什么要做对齐?** + +- 平台(移植性)原因:不是所有的硬件平台都能够访问任意地址上的任意数据。`例如:特定的硬件平台只允许在特定地址获取特定类型的数据,否则会导致异常情况` +- 性能原因:若访问未对齐的内存,将会导致 CPU 进行两次内存访问,并且要花费额外的时钟周期来处理对齐及运算。而本身就对齐的内存仅需要一次访问就可以完成读取动作 + +![WeiyiGeek.内存申请](assets/7a1fa5379fa2bf8421544374b46a5bd39cfb6657.png@573w_330h_progressive.webp) + +在上图中,假设从 Index 1 开始读取,将会出现很崩溃的问题, `因为它的内存访问边界是不对齐的`。因此 CPU 会做一些额外的处理工作。如下: + +- 1.CPU 首次读取未对齐地址的第一个内存块,读取 0-3 字节。并移除不需要的字节 0 +- 2.CPU 再次读取未对齐地址的第二个内存块,读取 4-7 字节。并移除不需要的字节 5、6、7 字节 +- 3.合并 1-4 字节的数据 +- 4.合并后放入寄存器 + +从上述流程可得出,不做 “内存对齐” 是一件有点 "麻烦" 的事。因为它会增加许多耗费时间的动作, `而假设做了内存对齐,从 Index 0 开始读取 4 个字节,只需要读取一次`,也不需要额外的运算。这显然高效很多,是标准的空间换时间做法 + + + +**默认系数** +描述: 在不同平台上的编译器都有自己默认的 “对齐系数”,可通过预编译命令 #pragma pack(n) 进行变更,n 就是代指 “对齐系数”。一般来讲,我们常用的平台的系数如下:`32 位:4, 64 位:8`, 例如, 前面示例中的对齐系数是8验证了我们系统是64位的。 + +另外要注意不同硬件平台占用的大小和对齐值都可能是不一样的。因此本文的值不是唯一的,调试的时候需按本机的实际情况考虑 + + + +**不同数据类型的对齐系数** + +```go +func main() { + fmt.Printf("bool align: %d\n", unsafe.Alignof(bool(true))) + fmt.Printf("byte align: %d\n", unsafe.Alignof(byte(0))) + fmt.Printf("int8 align: %d\n", unsafe.Alignof(int8(0))) + fmt.Printf("int32 align: %d\n", unsafe.Alignof(int32(0))) + fmt.Printf("int64 align: %d\n", unsafe.Alignof(int64(0))) + fmt.Printf("string align: %d\n", unsafe.Alignof("WeiyiGeek")) + fmt.Printf("map align: %d\n", unsafe.Alignof(map[string]string{})) +} +``` + +执行结果: + +```go +bool align: 1 +byte align: 1 +int8 align: 1 +int32 align: 4 +int64 align: 8 +string align: 8 +map align: 8 +``` + +通过观察输出结果,可得知基本都是 2^n,最大也不会超过 8。这是因为我手提(64 位)编译器默认对齐系数是 8,因此最大值不会超过这个数。 + +Tips: 在上小节中提到了结构体中的成员变量要做字节对齐。那么想当然身为最终结果的结构体,也是需要做字节对齐的 + + + +**对齐规则** + +- 1.`结构体的成员变量`,第一个成员变量的偏移量为 0。往后的每个成员变量的对齐值必须为编译器默认对齐长度(#pragma pack(n))或当前成员变量类型的长度(unsafe.Sizeof),取最小值作为当前类型的对齐值。`其偏移量必须为对齐值的整数倍` +- 2.`结构体本身`,对齐值必须为编译器默认对齐长度(#pragma pack(n))或结构体的所有成员变量类型中的最大长度,取最大数的最小整数倍作为对齐值 +- 3.结合以上两点,可得知若编译器默认对齐长度(#pragma pack(n))超过结构体内成员变量的类型最大长度时,默认对齐长度是没有任何意义的 + + + +**分析流程** + +Step 1.首先我们先来分析 `part1 结构体` 到底经历了些什么,影响了 “预期” 结果 + +![img](assets/861892fefa98d4bb566d1776b724995c14f7d0f9.png@669w_737h_progressive.webp) + +成员对齐步骤 + +- 第一个成员 a + +- - 类型为 bool + - 大小/对齐值为 1 字节 + - 初始地址,偏移量为 0。占用了第 1 位 + +- 第二个成员 b + +- - 类型为 int32 + - 大小/对齐值为 4 字节 + - `根据规则 1,其偏移量必须为 4 的整数倍。确定偏移量为 4,因此 2-4 位为 Padding`(理解点)。而当前数值从第 5 位开始填充,到第 8 位。如下:axxx|bbbb + +- 第三个成员 c + +- - 类型为 int8 + - 大小/对齐值为 1 字节 + - 根据规则1,其偏移量必须为 1 的整数倍。当前偏移量为 8。不需要额外对齐,填充 1 个字节到第 9 位。如下:axxx|bbbb|c... + +- 第四个成员 d + +- - 类型为 int64 + - 大小/对齐值为 8 字节 + - 根据规则 1,其偏移量必须为 8 的整数倍。确定偏移量为 16,因此 9-16 位为 Padding。而当前数值从第 17 位开始写入,到第 24 位。如下:axxx|bbbb|cxxx|xxxx|dddd|dddd + +- 第五个成员 e + +- - 类型为 byte + - 大小/对齐值为 1 字节 + - 根据规则 1,其偏移量必须为 1 的整数倍。当前偏移量为 24。不需要额外对齐,填充 1 个字节到第 25 位。如下:axxx|bbbb|cxxx|xxxx|dddd|dddd|e... + + + +整体对齐步骤 + +- 在每个成员变量进行对齐后,根据规则 2,整个结构体本身也要进行字节对齐,因为可发现它可能并不是 2^n,不是偶数倍。显然不符合对齐的规则 +- 根据规则 2,可得出对齐值为 8。现在的偏移量为 25,不是 8 的整倍数。因此确定偏移量为 32。对结构体进行对齐 + + + +结果说明: + +> 最终 Part1 内存布局 `axxx|bbbb|cxxx|xxxx|dddd|dddd|exxx|xxxx` + +**通过本节的分析,可得知先前的 “推算” 为什么错误?** +是因为实际内存管理并非 “一个萝卜一个坑” 的思想。而是一块一块。通过空间换时间(效率)的思想来完成这块读取、写入。另外也需要兼顾不同平台的内存操作情况 + + + +Step 2.通过上述我们可知根据成员变量的类型不同,其结构体的内存会产生对齐等动作。而像 `part2` 结构体一样,按照变量类型对齐值从小到大,进行依次排序进行占用内存空间的结果分析。 + +通过开头的示例我们可知,只是 “简单” 对成员变量的字段顺序(`类型占用字节数从小到大排序`)进行改变,就改变了结构体占用大小。 + +![img](assets/4626ccc778fa93883c3802e0849befd5360f1362.png@671w_615h_progressive.webp) + +成员对齐 + +- 第一个成员 e + +- - 类型为 byte + - 大小/对齐值为 1 字节 + - 初始地址,偏移量为 0。占用了第 1 位 + +- 第二个成员 c + +- - 类型为 int8 + - 大小/对齐值为 1 字节 + - 根据规则1,其偏移量必须为 1 的整数倍。当前偏移量为 2。不需要额外对齐 + +- 第三个成员 a + +- - 类型为 bool + - 大小/对齐值为 1 字节 + - 根据规则1,其偏移量必须为 1 的整数倍。当前偏移量为 3。不需要额外对齐 + +- 第四个成员 b + +- - 类型为 int32 + - 大小/对齐值为 4 字节 + - `根据规则1,其偏移量必须为 4 的整数倍。确定偏移量为 4,因此第 3 位为 Padding`(理解点)。而当前数值从第 4 位开始填充,到第 8 位。如下:ecax|bbbb + +- 第五个成员 d + +- - 类型为 int64 + - 大小/对齐值为 8 字节 + - 根据规则1,其偏移量必须为 8 的整数倍。当前偏移量为 8。不需要额外对齐,从 9-16 位填充 8 个字节。如下:ecax|bbbb|dddd|dddd + +整体对齐: 由于符合规则 2,则不需要额外对齐。 + +结果说明: + +> Part2 内存布局:ecax|bbbb|dddd|dddd + + + +**总结** + +通过对比 `Part1` 和 `Part2` 的内存布局,你会发现两者有很大的不同。如下: + +- Part1:axxx|bbbb|cxxx|xxxx|dddd|dddd|exxx|xxxx +- Part2:ecax|bbbb|dddd|dddd + +仔细一看,`Part1` 存在许多 Padding。显然它占据了不少空间,那么 Padding 是怎么出现的呢? + +通过本文的介绍,可得知是由于不同类型导致需要进行字节对齐,以此保证内存的访问边界 + +那么也不难理解,为什么**调整结构体内成员变量的字段顺序**就能达到缩小结构体占用大小的疑问了,是因为巧妙地减少了 Padding 的存在。让它们更 “紧凑” 了。这一点对于加深 Go 的内存布局印象和大对象的优化非常有帮 + +当然了,没什么特殊问题,你可以不关注这一块。但你要知道这块知识点 😄 + + + +# 6.指针类型结构体 + +# 结构体指针实例化 + +描述: 我们还可以通过使用`new`关键字(`对基础类型进行实例化`)对结构体进行实例化,得到的是结构体的地址。 + +创建一个结构体指针格式: + +```go +// 方式1.New 实例化 +var p2 = new(person) +fmt.Printf("%T\n", p2) // *main.person +fmt.Printf("p2=%#v\n", p2) // p2=&main.person{name:"", city:"", age:0} +// 在Go语言中支持对结构体指针直接使用.来访问结构体的成员。 +p2.name = "WeiyiGeek" +p2.age = 22 +p2.city = "重庆" +fmt.Printf("p2=%#v\n", p2) //显示出其结构体结构: p2=&main.person{name:"WeiyiGeek", city:"重庆", age:22} + +// 方式2.使用&对结构体进行取地址操作相当于对该结构体类型进行了一次new实例化操作。 +p3 := &person{} +fmt.Printf("%T\n", p3) //*main.person +fmt.Printf("p3=%#v\n", p3) //p3=&main.person{name:"", city:"", age:0} +p3.name = "WeiyiGeek" +p3.age = 30 +p3.city = "重庆" +fmt.Printf("p3=%#v\n", p3) //p3=&main.person{name:"WeiyiGeek", city:"重庆", age:30} +``` + +Tips :`p3.name = "WeiyiGeek"`其实在底层是`(*p3).name = "Geeker"`,这是Go语言帮我们实现的语法糖。 + + + +**示例演示:** + + + +```go +type Person struct { + name string + age uint8 + sex bool + hobby []string +} + +// 3.结构体指针 +func demo3() { + // 方式1.结构体利用new实例化在内存中申请一块空间 + var p1 = new(Person) + (*p1).name = "WeiyiGeek" // 取得地址存放的值并将其进行覆盖 + p1.age = 20 // Go语言的语法糖自动根据指针找到对应地址的值并将其值覆盖。 + fmt.Printf("Type of p1 : %T, Struct 实例化结果: %#v\n", p1, p1) + + // 方式2.采用取地址&符号进行实例化结构体(效果与new差不多) + p2 := &Person{} + (*p2).name = "Golang" // 取得地址存放的值并将其进行覆盖 + p2.age = 12 // Go语言的语法糖自动根据指针找到对应地址的值并将其值覆盖。 + p2.sex = true + fmt.Printf("Type of p2 : %T, Struct 实例化结果: %#v\n", p2, p2) + + // 5.使用键值对初始化(也可以对结构体指针进行键值对初始化) + // 当某些字段没有初始值的时候,该字段可以不写。此时没有指定初始值的字段的值就是该字段类型的零值。 + p3 := &Person{ + name: "北京", + } + fmt.Printf("p3 Value = %#v \n", p3) + + // 6.使用值的列表初始化 + // 初始化结构体的时候可以简写,也就是初始化的时候不写键,直接写值: + p4 := &Person{ + "WeiyiGeek", + 20, + false, + []string{}, + } + fmt.Printf("p4 Value = %#v \n", p4) + + // 4.探究Struct结构体开辟的是连续的内存空间(内存对齐效果) + fmt.Printf("*p2 size of = %d, p2 align of = %d \n", unsafe.Sizeof(*p2), unsafe.Alignof(p2)) + fmt.Printf("Pointer p2 = %p, \name = %p,p2.name size of = %d \nnage = %p, p2.age size of = %d\nsex = %p, p2.sex size of = %d\nhobby = %p,p2.hobby size of = %d \n", p2, &p2.name, unsafe.Sizeof((*p2).name), &p2.age, unsafe.Sizeof(p2.age), &p2.sex, unsafe.Sizeof(p2.sex), &p2.hobby, unsafe.Sizeof(p2.hobby)) +} +``` + +执行结构: + +```go +Type of p1 : *main.Person, Struct 实例化结果: &main.Person{name:"WeiyiGeek", age:0x14, sex:false, hobby:[]string(nil)} +Type of p2 : *main.Person, Struct 实例化结果: &main.Person{name:"Golang", age:0xc, sex:true, hobby:[]string(nil)} +p3 Value = &main.Person{name:"北京", age:0x0, sex:false, hobby:[]string(nil)} +p4 Value = &main.Person{name:"WeiyiGeek", age:0x14, sex:false, hobby:[]string{}} +// 结构体占用一块连续的内存地址。 +*p2 size of = 48, p2 align of = 8 +Pointer p2 = 0xc0001181b0, +name = 0xc0001181b0,p2.name size of = 16 +age = 0xc0001181c0, p2.age size of = 1 +sex = 0xc0001181c1, p2.sex size of = 1 +hobby = 0xc0001181c8,p2.hobby size of = 24 +``` + +从上述Person 结构体指针 p2 内存对齐结果中可知,元素类型占用的大小 `16 + 1 + 1 + 24 = 42 Byte`, 但是收到整体对齐的规则约束,该 `p2 指针类型的结构体`占用的内存空间大小为 48 Byte。 + + + +# 结构体指针函数传递 + +描述: 我们可以将指针类型的结构体进行地址传递在函数中修改其元素属性内容。 + +示例演示: + +```go +func personChange(p Person) { + p.name = "Change" // 拷贝的是 p4 指针类型的结构的副本(值引用) +} + +func personPointerChange(p *Person) { + p.name = "PointerChange" // 传递的是 p4 的地址,所以修改的是 p4.name 的属性值 +} + +func demo4() { + p4 := &Person{ + name: "WeiyiGeek", + } + personChange(*p4) // 值传递 + fmt.Printf("personChange(*p4) -> name = %v \n", p4.name) + + personPointerChange(p4) // 地址传递 + fmt.Printf("personPointerChange(*p4) -> name = %v", p4.name) +} +``` + +执行结果: + +```go +personChange(*p4) -> name = WeiyiGeek +personPointerChange(*p4) -> name = PointerChange +``` + +Tips : Go 语言中函数传的参数永远传的是拷贝, 如果要修改原数据必须进行取地址传递并修改。 + + + +# 结构体指针构造函数 + +描述: Go语言的结构体没有构造函数,但我们可以自己实现一个。 + +Tips: Go语言构造函数约定俗成用`new`进行开头,例如 `newDog()`。 + +例如: 下方的代码就实现了一个person的构造函数。 + +```go +// (1) 结构体构造函数 +type Person struct { + name, city string + age uint8 +} + +// 方式1.值传递(拷贝副本) 返回的是结构体 +func newPerson(name, city string, age uint8) Person { + return Person{ + name: name, + city: city, + age: age, + } +} + +// 方式2.地址(指针类型变量)传递返回的是结构体指针 +func newPointerPerson(name, city string, age uint8) *Person { + return &Person{ + name: name, + city: city, + age: age, + } +} + +func demo1() { + // (1) 通过定义的函数直接进行结构体的初始化(值拷贝的方式) + var person = newPerson("WeiyiGeek", "重庆", 20) + fmt.Printf("newPerson Type : %T, Value : %v\n", person, person) + // (2) 通过定义的函数直接传入指针类型的结构体进行初始化(地址拷贝的方式) + var pointerperson = newPointerPerson("Go", "world", 12) + fmt.Printf("newPointerPerson Type : %T, Value : %v\n", pointerperson, pointerperson) +} +``` + +执行结果: + +```go +newPerson Type : main.Person, Value : {WeiyiGeek 重庆 20} +newPointerPerson Type : *main.Person, Value : &{Go world 12} +``` + +Tips :因为struct是值类型,如果结构体比较复杂的话,值拷贝性能开销会比较大,所以该构造函数返回的是结构体指针类型。 + + + +# 7.结构体方法与接收者 + +描述: Go语言中的`方法(Method)`是一种作用于特定类型变量的函数, 这种`特定类型变量叫做接收者(Receiver)`, 接收者的概念就类似于其他语言中的 `this` 或者 `self`。 + +# 结构体方法 + +**定义格式:** + +```go +func (接收者变量 接收者类型) 方法名(参数列表) (返回参数) { + 函数体 +} +``` + +其中, + +- `接收者变量`:接收者中的参数变量名在命名时,官方建议使用接收者类型名称首字母的小写,而不是self、this之类的命名。例如 Person类型 的接收者变量应该命名为 p,Connector类型的接收者变量应该命名为c等。 +- `接收者类型`:接收者类型和参数类似,可以是`指针类型`和`非指针类型`。 +- `方法名、参数列表、返回参数`:具体格式与函数定义相同。 + +Tips : 结构体方法名称写法约束规定,如果其标识符首字母是大写的就表示对外部包可见(`例如 java 中 public 指定的函数或者是类`公共的),如果其标识符首字母是小写的表示对外部不可见(`不能直接调用`), 当然这是一种开发习惯非强制必须的。 + + + +**示例演示:** + +```go +//Person 结构体 +type Person struct { + name string + age int8 +} + +//NewPerson 构造函数 +func NewPerson(name string, age int8) *Person { + return &Person{ + name: name, + age: age, + } +} + +//Dream Person做梦的方法 +func (p Person) Dream() { + fmt.Printf("%s的梦想是学好Go语言!\n", p.name) +} + +func main() { + p1 := NewPerson("WeiyiGeek", 25) + p1.Dream() // WeiyiGeek的梦想是学好Go语言! +} +``` + +Tips : 方法与函数的区别是,函数不属于任何类型,方法属于特定的类型。 + + + +# 值类型的接收者 + +描述: 当方法作用于值类型接收者时,Go语言会在代码运行时将接收者的值复制一份。 + +在值类型接收者的方法中可以获取接收者的成员值,但`修改操作只是针对副本,无法修改接收者变量本身`。 + +例如: 我们为 Person 添加一个SetAge方法,来修改实例变量的年龄, 验证是否可被修改。 + +```go +// 使用值接收者:SetAge2 设置p的年龄 +func (p Person) SetAge2(newAge int8) { + p.age = newAge +} +func main() { + p1 := NewPerson("WeiyiGeek", 25) + p1.Dream() + fmt.Println(p1.age) // 25 + p1.SetAge2(30) // (*p1).SetAge2(30) + fmt.Println(p1.age) // 25 +} +``` + + + +# 指针类型的接收者 + +描述: 指针类型的接收者由一个结构体的指针组成,由于指针的特性,调用方法时修改接收者指针的任意成员变量,在方法结束后,修改都是有效的。此种方式就十分接近于其他语言中面向对象中的this或者self达到的效果。 + +例如:我们为 Person 添加一个SetAge方法,来修改实例变量的年龄。 + +```go +// 使用指针接收者 : SetAge 设置p的年龄: 传入的 Person 实例化后的变量的地址 p ,并通过p.属性进行更改其内容存储的内容。 +func (p *Person) SetAge(newAge int8) { + p.age = newAge +} +//调用 +func main() { + p1 := NewPerson("WeiyiGeek", 25) + fmt.Println(p1.age) // 25 + p1.SetAge(30) + fmt.Println(p1.age) // 30 +} +``` + + + +**Q: 什么时候应该使用指针类型接收者?** + +- 一是、需要修改接收者中的值。 +- 二是、接收者是拷贝代价比较大的大对象。 +- 三是、保证一致性,如果有某个方法使用了指针接收者,那么其他的方法也应该使用指针接收者。 + +**案例演示:** + +```go +// 结构体方法和接收者, 只能被Person结构体实例化的对象进行调用,不能像函数那样直接调用。此处还是采用上面声明的结构体 +func (p Person) ChangePersonName(name string) { + p.name = name + fmt.Printf("# 执行 -> ChangePersonName 方法 -> p Ptr : %p ,value : %v\n", &p, p.name) +} +func (p *Person) ChangePointerPersonName(name string, age uint8) { + p.name = name + p.age = age + fmt.Printf("# 执行 -> ChangePointerPersonName 方法 -> p Ptr : %p (关键点),value : %v\n", p, p.name) +} +func demo2() { + // 利用构造函数进行初始化 + p1 := newPerson("小黄", "Beijing", 20) + fmt.Printf("p1 Pointer : %p , Struct : %+v \n", &p1, p1) + // 调用 ChangePersonName 方法 + p1.ChangePersonName("小黑") // 值类型的接收者(修改的是p1结构体副本的值) + fmt.Printf(" p1 Pointer : %p , Struct : %+v \n", &p1, p1) + // 调用 ChangePointerPersonName 方法 + p1.ChangePointerPersonName("小白", 30) //指针类型的接收者 (修改的是p1结构体元素的值) + fmt.Printf(" p1 Pointer : %p , Struct : %+v \n", &p1, p1) +} +``` + +执行结果: + +```go +p1 Pointer : 0xc00010c150 , Struct : {name:小黄 city:Beijing age:20} +# 执行 -> ChangePersonName 方法 -> p Ptr : 0xc00010c1b0 ,value : 小黑 + p1 Pointer : 0xc00010c150 , Struct : {name:小黄 city:Beijing age:20} +# 执行 -> ChangePointerPersonName 方法 -> p Ptr : 0xc00010c150 (关键点),value : 小白 + p1 Pointer : 0xc00010c150 , Struct : {name:小白 city:Beijing age:30} +``` + + + +# 任意类型的接收者 + +描述: 在Go语言中接收者的类型可以是任何类型,不仅仅是结构体,任何类型都可以拥有方法。 + +举个例子,我们基于内置的int类型使用type关键字可以定义新的自定义类型,然后为我们的自定义类型添加方法。 + +```go +// 3.任意类型的接收者都可以拥有自己的方法 +// MyInt 将int定义为自定义MyInt类型 +type MyInt int +// SayHello 为MyInt添加一个SayHello的方法 +func (m MyInt) SayHello(s string) { + fmt.Printf("Hello, 我是一个int, %s", s) +} +// ChangeM 为MyInt添加一个ChangeM的方法 +func (m *MyInt) ChangeM(newm MyInt) { + fmt.Printf("# Start old m : %d -> new m : %d \n", *m, newm) + *m = newm // 关键点修改m其值,此处非拷贝的副本 + fmt.Printf("# End old m : %d -> new m : %d \n", *m, newm) +} +func demo3() { + // 声明 + var m1 MyInt + // 赋值 + m1 = 100 + // 方式2 + m2 := MyInt(255) + // 调用类型方法 + m1.SayHello("Let'Go") + fmt.Printf("SayHello -> Type m1 : %T, value : %+v \n", m1, m1) + // 调用类型方法修改m1其值 + m1.ChangeM(1024) + fmt.Printf("ChangeM -> Type m1 : %T, value : %+v \n", m1, m1) +} +``` + +执行结果: + +```go +Hello, 我是一个int, Let'GoSayHello -> Type m1 : main.MyInt, value : 100 +# Start old m : 100 -> new m : 1024 +# End old m : 1024 -> new m : 1024 +ChangeM -> Type m1 : main.MyInt, value : 1024 +``` + +Tips : 非常注意,非本地类型不能定义方法,也就是说我们不能给别的包的类型定义方法。 + + + +# 8.匿名结构体与匿名字段 + +描述: 在定义一些临时数据结构等场景下还可以使用匿名结构体。 + +**示例演示:** + +```go +// 匿名结构体(只能使用一次,所以常常使用与临时场景) +// 2.匿名结构体(只能使用一次,所以常常使用与临时场景) +func demo2() { + var temp struct {title string;address []string} + temp.title = "地址信息" + temp.address = []string{"中国", "重庆", "江北区"} + fmt.Printf("Type of temp : %T\nStruct define: %#v \nValue : %v\n", temp, temp, temp) +} +``` + +执行结果: + +```go +Type of temp : struct { title string; address []string } +Struct define: struct { title string; address []string }{title:"地址信息", address:[]string{"中国", "重庆", "江北区"}} +Value : {地址信息 [中国 重庆 江北区]} +``` + +描述: 结构体允许其成员字段在声明时没有字段名而只有类型,这种没有名字的字段就称为匿名字段。 + +Tips: 这里匿名字段的说法并不代表没有字段名,而是默认会采用类型名作为字段名,结构体要求字段名称必须唯一,因此一个结构体中同种类型的匿名字段只能有一个。 + +示例演示: + +```go +type Anonymous struct { + string + int +} +func demo4() { + a1 := Anonymous{"WeiyiGeek", 18} + fmt.Printf("Struct: %#v ,字段1: %v , 字段2: %v \n", a1, a1.string, a1.int) +} +``` + +执行结果: + +```go +Struct: main.Anonymous{string:"WeiyiGeek", int:18} ,字段1: WeiyiGeek , 字段2: 18 +``` + + + +9.嵌套结构体与匿名字段 + +描述: 结构体中可以嵌套包含另一个结构体或结构体指针, 并且上面user结构体中嵌套的Address结构体也可以采用匿名字段的方式。 + +并且为了防止嵌套结构体的相同的字段名冲突,所以在这种情况下为了避免歧义需要通过指定具体的内嵌结构体字段名。 + +**示例演示:** + + + +```go +//Address 地址结构体 +type Address struct { + Province string + City string +} + +//Email 邮箱结构体 +type Email struct { + Account string + CreateTime string +} + +//User 用户结构体 +type User struct { + Name string + Gender string + Address Address +} + +//AnonUser 用户结构体 +type AnonUser struct { + Name string + Gender string + Address // 采用结构体的匿名字段来嵌套结构体Address + Email // 采用结构体的匿名字段来嵌套结构体Email +} + +// 1.嵌套结构体 +func demo1() { + // 结构体初始化 + user := User{ + Name: "WeiyiGeek", + Gender: "男", + Address: Address{ + Province: "重庆", + City: "重庆", + }, + } + fmt.Printf("Struct : %#v \n", user) + fmt.Printf("Name = %v, Address City = %v \n", user.Name, user.Address.City) +} + +// 2.嵌套匿名字段防止字段名称冲突 +func demo2() { + var anonuser = AnonUser{ + Name: "WeiyiGeek", + Gender: "男", + Address: Address{ + "重庆", + "重庆", + }, + Email: Email{ + "Master@weiyigeek.top", + "2021年8月23日 10:21:36", + }, + } + fmt.Printf("Struct : %#v\n", anonuser) + fmt.Printf("Name = %v,Address Province = %v, Email Account = %v \n", anonuser.Name, anonuser.Address.Province, anonuser.Email.Account) +} +``` + +**执行结果:** + +```go +// 嵌套结构体 +Struct : main.User{Name:"WeiyiGeek", Gender:"男", Address:main.Address{Province:"重庆", City:"重庆"}} +Name = WeiyiGeek, Address City = 重庆 + +//嵌套匿名字段 +Struct : main.AnonUser{Name:"WeiyiGeek", Gender:"男", Address:main.Address{Province:"重庆", City:"重庆"}, Email:main.Email{Account:"Master@weiyigeek.top", CreateTime:"2021年8月23日 10:21:36"}} +Name = WeiyiGeek,Address Province = 重庆, Email Account = Master@weiyigeek.top +``` + +Tips : 当访问结构体成员时会先在结构体中查找该字段,找不到再去嵌套的匿名字段中查找。 + + + +# 10.结构体的“继承” + +描述: Go语言中使用结构体也可以实现其他编程语言中面向对象的继承。 + +示例演示: + + + +```go +package main + +import "fmt" + +// 父 +type Animal struct{ name string } + +func (a *Animal) voice(v string) { + fmt.Printf("我是动物,我叫 %v, 我会叫 %s,", a.name, v) +} + +// 子 +type Dog struct { + eat string + *Animal +} + +func (d *Dog) love() { + fmt.Printf("狗狗喜欢吃的食物是 %v.\n", d.eat) +} + +type Cat struct { + eat string + *Animal +} + +func (c *Cat) love() { + fmt.Printf("猫猫喜欢吃的食物是 %v.\n", c.eat) + +} + +func main() { + d1 := &Dog{ + //注意嵌套的是结构体指针 + Animal: &Animal{ + name: "小黄", + }, + eat: "bone", + } + d1.voice("汪汪.汪汪.") + d1.love() + + c1 := &Cat{ + //注意嵌套的是结构体指针 + Animal: &Animal{ + name: "小白", + }, + eat: "fish", + } + c1.voice("喵喵.喵喵.") + c1.love() +} +``` + +执行结果: + +我是动物,我叫 小黄, 我会叫 汪汪.汪汪.,狗狗喜欢吃的食物是 bone. + +我是动物,我叫 小白, 我会叫 喵喵.喵喵.,猫猫喜欢吃的食物是 fish. + + + +# 11.结构体与“JSON” + +描述: JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,其优点是易于人阅读和编写,同时也易于机器解析和生成。 + +Tips : JSON键值对是用来保存JS对象的一种方式,键/值对组合中的键名写在前面并用双引号""包裹,使用冒号:分隔,然后紧接着值;多个键值之间使用英文,分隔。 + +在Go中我们可以通过`结构体序列号生成json字符串`,同时也能`通过json字符串反序列化为结构体得实例化对象`,在使用json字符串转换时, 我们需要用到`"encoding/json"`包。 + +**结构体标签(Tag)** +描述: Tag是结构体的元信息,可以在运行的时候通过反射的机制读取出来,Tag在结构体字段的后方定义,由一对反引号包裹起来,具体的格式如下:`key1:"value1" key2:"value2"`,可以看到它由一个或多个键值对组成。键与值使用冒号分隔,值用双引号括起来。同一个结构体字段可以设置多个键值对tag,不同的键值对之间使用空格分隔。 + +例如: 我们为`Student`结构体的每个字段定义json序列化时使用的Tag。 + +```go +type Student struct { + ID int `json:"id"` //通过指定tag实现json序列化该字段时的key + Gender string //json序列化是默认使用字段名作为key + name string //私有不能被json包访问 +``` + +注意事项: 为结构体编写Tag时,必须严格遵守键值对的规则。结构体标签的解析代码的容错能力很差,一旦格式写错,编译和运行时都不会提示任何错误,通过反射也无法正确取值。例如不要在key和value之间添加空格。 + + + +**示例演示:** + +```go +package main + +import ( + "encoding/json" + "fmt" +) + +// 结构体转json字符串的三种示例 +// 结构体中的字段首字母大小写影响的可见性,表示不能对外使用 +type Person1 struct{ name, sex string } + +// 结构体对象字段可以对外使用 +type Person2 struct{ Name, Sex string } + +// 但json字符串中键只要小写时可以采用此种方式 +type Person3 struct { + Name string `json:"name"` + Sex string `json:"age"` +} + +// # 结构体实例化对象转JSON字符串 +func serialize() { + // 示例1.字段首字母大小写影响的可见性 + person1 := &Person1{"weiyigeek", "男孩"} + person2 := &Person2{"WeiyiGeek", "男生"} + person3 := &Person3{"WeiyiGeek", "男人"} + + //序列化 + p1, err := json.Marshal(person1) + p2, err := json.Marshal(person2) + p3, err := json.Marshal(person3) + if err != nil { + fmt.Printf("Marshal Failed :%v", err) + return + } + + // 由于返回是一个字节切片,所以需要强转为字符串 + fmt.Printf("person1 -> %v\nperson2 -> %v\nperson3 -> %v\n", string(p1), string(p2), string(p3)) +} + +// # JSON字符串转结构体实例化对象 + +type Person4 struct { + Name string `json:"name"` + Sex string `json:"sex"` + Addr [3]string `json:"addr"` +} + +func unserialize() { + jsonStr := `{"name": "WeiyiGeek","sex": "man","addr": ["中国","重庆","渝北"]}` + p4 := Person4{} + + // 在其内部修改p4的值 + err := json.Unmarshal([]byte(jsonStr), &p4) + if err != nil { + fmt.Printf("Unmarhal Failed: %v", err) + return + } + fmt.Printf("jsonStr -> Person4 : %#v\nPerson4.name : %v\n", p4, p4.Name) +} + +func main() { + serialize() + unserialize() +} +``` + +执行结果: + +```go +person1 -> {} +person2 -> {"Name":"WeiyiGeek","Sex":"男生"} +person3 -> {"name":"WeiyiGeek","age":"男人"} +jsonStr -> Person4 : main.Person4{Name:"WeiyiGeek", Sex:"man", Addr:[3]string{"中国", "重庆", "渝北"}} +Person4.name : WeiyiGeek +``` + + + +12.结构体和方法补充知识点 + +描述: 因为slice和map这两种数据类型都包含了指向底层数据的指针,因此我们在需要复制它们时要特别注意。 + +**示例演示:** + + + +```go +package main + +import "fmt" + +type Person struct { + name string + age int8 + dreams []string +} + +// 不推荐的方式 +func (p *Person) SetDreams(dreams []string) { + p.dreams = dreams +} + +// 正确的做法是在方法中使用传入的slice的拷贝进行结构体赋值。 +func (p *Person) NewSetDreams(dreams []string) { + p.dreams = make([]string, len(dreams)) + copy(p.dreams, dreams) +} + +func main() { + // (1) 不安全的方式 + p1 := Person{name: "小王子", age: 18} + data := []string{"吃饭", "睡觉", "打豆豆"} + p1.SetDreams(data) + // 你真的想要修改 p1.dreams 吗? + data[1] = "不睡觉" // 会覆盖更改切片中的值从而影响p1中的dreams字段中的值 + fmt.Println(p1.dreams) // [吃饭 不睡觉 打豆豆] + + // (2) 推荐方式 + p2 := Person{name: "WeiyiGeek", age: 18} + data2 := []string{"计算机", "网络", "编程"} + p2.NewSetDreams(data2) + data2[1] = "NewMethod" // 由于NewSetDreams返回中是将拷贝的副本给p2的dreams字段,所以此处更改不会影响其值, + fmt.Println(p2.dreams) // [计算机 网络 编程] +} +``` + +**执行结果:** + +```javascript +[吃饭 不睡觉 打豆豆] + +[计算机 网络 编程] +``` + +Tips: 同样的问题也存在于返回值slice和map的情况,在实际编码过程中一定要注意这个问题。 \ No newline at end of file diff --git a/notes/8.接口篇.md b/notes/8.接口篇.md new file mode 100644 index 0000000..65b4562 --- /dev/null +++ b/notes/8.接口篇.md @@ -0,0 +1,665 @@ +**本章目录:** + +- 0X00 Go语言基础之接口 + +- - 一个类型实现多个接口 + - 多个类型实现同一接口 + - 1.接口类型 + - 2.接口的定义 + - 3.接口类型变量 + - 4.接口实现之值接收者和指针接收者 + - 5.接口与类型 + - 6.接口嵌套 + - 7.空接口 + - 8.接口之类型断言 + +![img](assets/4aa545dccf7de8d4a93c2b2b8e3265ac0a26d216.png@progressive.webp) + +# 0X00 Go语言基础之接口 + +**Q: 在开发编程中您有可能遇到以下场景?** + +> 答: 我不关心变量是什么类型,只关心能调用它的什么方法,此时我们可以采用接口`(Interface)`类型进行解决相关问题。 + +# 1.接口类型 + +描述: 在Go语言中接口(interface)是一种类型,一种抽象的类型, 其定义了一个对象的行为规范,只定义规范不实现,由具体的对象来实现规范的细节。 + +如 interface 是一组 method 的集合,是`duck-type programming`的一种体现。接口做的事情就像是定义一个协议(规则),只要一台机器有洗衣服和甩干的功能,我就称它为洗衣机。不关心属性(数据),只关心行为(方法)。 + +Tips: 为了保护你的Go语言职业生涯,请牢记接口(interface)是一种类型。 + +**Q: 为什么要使用接口?** +在我们编程过程中会经常遇到: + +- 比如一个网上商城可能使用支付宝、微信、银联等方式去在线支付,我们能不能把它们当成“支付方式”来处理呢? +- 比如三角形,四边形,圆形都能计算周长和面积,我们能不能把它们当成“图形”来处理呢? +- 比如销售、行政、程序员都能计算月薪,我们能不能把他们当成“员工”来处理呢? + +例如:面的代码中定义了猫和狗,然后它们都会叫,你会发现main函数中明显有重复的代码,如果我们后续再加上猪、青蛙等动物的话,我们的代码还会一直重复下去。那我们能不能把它们当成“能叫的动物”来处理呢? + +```go +type Cat struct{} +func (c Cat) Say() string { return "喵喵喵" } +type Dog struct{} +func (d Dog) Say() string { return "汪汪汪" } +func main() { + c := Cat{} + fmt.Println("猫:", c.Say()) // 猫: 喵喵喵 + d := Dog{} + fmt.Println("狗:", d.Say()) // 狗: 汪汪汪 +} +``` + + + +Go语言中为了解决类似上面的问题,就设计了接口这个概念。接口区别于我们之前所有的具体类型,接口是一种抽象的类型。当你看到一个接口类型的值时,你不知道它是什么,唯一知道的是通过它的方法能做什么。 + + + +# 2.接口的定义 + +描述: Go语言提倡面向接口编程,每个接口由数个方法组成,接口的定义格式如下: + +```go +type 接口类型名 interface{ + 方法名1( 参数列表1 ) 返回值列表1 + 方法名2( 参数列表2 ) 返回值列表2 + … +} +``` + + + +**参数说明:** + +- 接口名:使用type将接口定义为自定义的类型名。`Go语言的接口在命名时一般会在单词后面添加er`,如有写操作的接口叫Writer,有字符串功能的接口叫Stringer等。接口名最好要能突出该接口的类型含义。 +- 方法名:当方法名首字母是大写且这个接口类型名首字母也是大写时,这个方法可以被接口所在的包(package)之外的代码访问。 +- 参数列表、返回值列表:参数列表和返回值列表中的参数变量名可以省略。 + +**基础示例:** + +```go +type writer interface{ + Write([]byte) error +} +``` + +Tips: 当你看到这个接口类型的值时,你不知道它是什么,唯一知道的就是可以通过它的Write方法来做一些事情。 + +Tips :实现接口的条件, 即一个对象只要全部实现了接口中的方法,那么就实现了这个接口。换句话说接口就是一个需要实现的方法列表。 + + + +# 3.接口类型变量 + +**Q: 那实现了接口有什么用呢?** + +> 答: 接口类型变量能够存储所有实现了该接口的实例,接口类型变量实际上你可以看做一个是一个合约。 + +**基础示例:** + +```go +// 定义一个接口类型writer的变量w。 +var w writer // 声明一个writer类型的变量w +``` + +Tips: 观察下面的代码,体味此处_的妙用 + +```go +// 摘自gin框架routergroup.go +type IRouter interface{ ... } +type RouterGroup struct { ... } +var _ IRouter = &RouterGroup{} // 确保RouterGroup实现了接口IRouter +``` + +**示例演示:** + + + +```go +package main + +import "fmt" + +// 接口声明定义以及约定必须实现的方法 +type speaker interface { + speak() + eat(string) +} + +// 人结构体 +type person struct{ name, language string } +func (p person) speak() { + fmt.Printf("我是人类,我说的是%v, 我叫%v\n", p.language, p.name) +} +func (p person) eat(food string) { fmt.Printf("喜欢的食物: %v\n", food) } + +// 猫结构体 +type cat struct{ name, language string } +func (c cat) speak() { + fmt.Printf("动物猫,说的是%v, 叫%v\n", c.language, c.name) +} +func (c cat) eat(food string) { fmt.Printf("喜欢的食物: %v\n", food) } + +// 狗结构体 +type dog struct{ name, language string } +func (d dog) speak() { + fmt.Printf("动物狗,说的是%v, 叫%v\n", d.language, d.name) +} +func (d dog) eat(food string) { fmt.Printf("喜欢的食物: %v\n", food) } + +func talk(s speaker) { + s.speak() +} + +// (1) 接口基础使用演示 +func demo1() { + p := person{"WeiyiGeek", "汉语"} + c := cat{"小白", "喵喵 喵喵..."} + d := dog{"阿黄", "汪汪 汪汪...."} + talk(p) + talk(c) + talk(d) +} + +// (2) 接口类型的使用(可看作一种合约)方法不带参数以及方法带有参数 +func demo2() { + // 定义一个接口类型writer的变量w。 + var s speaker + fmt.Printf("Type %T\n", s) // 动态类型 + + s = person{"接口类型-唯一", "汉语"} // 动态值 + fmt.Printf("\nType %T\n", s) // 动态类型 + s.speak() + s.eat("瓜果蔬菜") + + s = cat{"接口类型-小白", "喵喵..."} // 动态值 + fmt.Printf("\nType %T\n", s) // 动态类型 + s.speak() + s.eat("fish") + + s = dog{"接口类型-阿黄", "汪汪..."} // 动态值 + fmt.Printf("\nType %T\n", s) // 动态类型 + s.speak() + s.eat("bone") +} + +func main() { + demo1() + fmt.Println() + demo2() +} +``` + +**执行结果:** + +```go +我是人类,我说的是汉语, 我叫WeiyiGeek +动物猫,说的是喵喵 喵喵..., 叫小白 +动物狗,说的是汪汪 汪汪...., 叫阿黄 + +Type + +Type main.person +我是人类,我说的是汉语, 我叫接口类型-唯一 +喜欢的食物: 瓜果蔬菜 + +Type main.cat +动物猫,说的是喵喵..., 叫接口类型-小白 +喜欢的食物: fish + +Type main.dog +动物狗,说的是汪汪..., 叫接口类型-阿黄 +喜欢的食物: bone +``` + +注意: 带参数和不带参数的函数,在接口中实现的不是同一个方法,所以当某个结构体中没有完全实现接口中的方法将会报错。 + + + +# 4.接口实现之值接收者和指针接收者 + +**Q: 使用值接收者实现接口和使用指针接收者实现接口有什么区别呢?** + +- + +- 1. 值接收者实现接口: `结构体类型和结构体指针类型的变量都可以存储`,由于因为Go语言中有对指针类型变量求值的语法糖,结构体指针变量内部会自动求值(`取指针地址中存储的值`)。 + +- + +- 1. 指针接收者实现接口: `只能存储结构体指针类型的变量`。 + +我们通过下面的例子进行演示: + + + +```go +package main + +import ( + "fmt" +) + +// 接口类型声明 +// (1) 值接收者实现接口 +type Mover interface { + move() +} +type dog struct{} +func (d dog) move() { fmt.Println("值接收者实现接口 -> 狗...移动....") } // 关键点 + +// 使用值接收者实现接口之后,不管是dog结构体还是结构体指针*dog类型的变量都可以赋值给该接口变量. +func demo1() { + var m1 Mover + var d1 = dog{} // 值类型 + m1 = d1 // m1可以接收dog类型的变量 + fmt.Printf("Type : %#v \n", m1) + m1.move() + + var d2 = &dog{} // 指针类型 + m1 = d2 // x可以接收指针类型的(*dog)类型的变量 + fmt.Printf("Type : %#v \n", m1) + m1.move() +} + +// (2)指针接收者实现接口 +type Runer interface{ run() } +type cat struct{} +func (c *cat) run() { fmt.Println("指针接收者实现接口 -> 猫...跑....") } +// 此时实现run接口的是*cat类型,所以不能给m1传入cat类型的c1,此时x只能存储*dog类型的值。 +func demo2() { + var m1 Runer + var c1 = cat{} + //m1不可以接收dog类型的变量 + // m1 = c1 // 报错信息: cannot use c1 (variable of type cat) as Runer value in assignment: missing method run (run has pointer receiver)compilerInvalidIfaceAssign + fmt.Printf("Type : %#v \n", c1) + + //m1只能接收*dog类型的变量 + var c2 = &cat{} + m1 = c2 + fmt.Printf("Type : %#v \n", c2) + m1.run() +} +func main() { + demo1() + fmt.Println() + demo2() +} +``` + + + +**执行结果:** + +```go +Type : main.dog{} +值接收者实现接口 -> 狗...移动.... +Type : &main.dog{} +值接收者实现接口 -> 狗...移动.... + +Type : main.cat{} +Type : &main.cat{} +指针接收者实现接口 -> 猫...跑.... +``` + + + +**面试题: 注意这是一道你需要回答“能”或者“不能”的题!** +问: 首先请观察下面的这段代码,然后请回答这段代码能不能通过编译? + +```go +package main + +import "fmt" + +type People interface { + Speak(string) string +} + +type Student struct{} + +func (stu *Student) Speak(think string) (talk string) { + if think == "man" { + talk = "你好,帅哥" + } else { + talk = "您好,美女" + } + return +} + +func main() { + var peo People = Student{} // 此处为关键点 + think := "woman" + fmt.Println(peo.Speak(think)) +} +``` + +答案: 是不行会报 `./interface.go:21:6: cannot use Student{} (type Student) as type People in assignment: Student does not implement People (Speak method has pointer receiver) (exit status 2)`错误,由于指针接收者实现接口必须是有指针类型的结构体实例化对象以及其包含的方法。 + + + +# 5.接口与类型 + +# 一个类型实现多个接口 + +描述: 一个结构体类型可以同时实现多个接口,而接口间彼此独立,不知道对方的实现。 + +例如: 狗可以叫也可以动,我们就分别定义Sayer接口和Mover接口 + +```go +// Sayer 接口 +type Sayer interface { say() } +// Mover 接口 +type Mover interface { move() } +// dog既可以实现Sayer接口,也可以实现Mover接口。 +type dog struct { name string } +// 实现Sayer接口 +func (d dog) say() { fmt.Printf("%s会叫 汪汪汪\n", d.name) } +// 实现Mover接口 +func (d dog) move() { fmt.Printf("%s会动 \n", d.name) } + +func main() { + var a = dog{name: "旺财"} + var x Sayer = a // 将dog类型赋予给Sayer接口类型的变量x,此时它可以调用say方法 + var y Mover = a // 将dog类型赋予给Mover接口类型的变量y,此时它可以调用move方法 + x.say() // 旺财会叫 汪汪汪 + y.move() // 旺财会动 +} +``` + + + +# 多个类型实现同一接口 + +描述: Go语言中不同的类型还可以实现同一接口,比如我们前面Person、Cat、Dog结构体类型中实现的Speak()方法。 + +例如:我们定义一个Mover接口,它要求结构体类型中必须有一个move方法, 如狗可以动,汽车也可以动。 + +```go +// Mover 接口 +type Mover interface { move() } +type dog struct { name string } +type car struct { brand string } +// dog类型实现Mover接口 +func (d dog) move() { fmt.Printf("%s会跑\n", d.name) } +// car类型实现Mover接口 +func (c car) move() { fmt.Printf("%s速度120迈\n", c.brand) } +func main() { + var x Mover + var a = dog{name: "旺财"} + x = a + x.move() // 旺财会跑 + var b = car{brand: "保时捷"} + x = b + x.move() // 保时捷速度120迈 +} +``` + + + +非常注意: 并且一个接口的方法,不一定需要由一个类型完全实现,接口的方法可以通过在类型中嵌入其他类型或者结构体来实现。 + +**示例演示:** + + + +```go +package main + +import "fmt" + +// 接口类型 +type android interface { + telephone(int64) + music() +} + +// 结构体声明 实现music方法 +type mp3 struct{} +// 实现接口中的方法 +func (m *mp3) music() { fmt.Println("播放音乐.....")} + +// 结构体声明 +type mobilephone struct { + production string + mp3 // 嵌入mp3结构体并拥有它的方法 +} + +// 实现接口中的方法 +func (mb *mobilephone) telephone(number int64) { fmt.Printf("%v 手机, 正在拨打 %v 电话....\n", mb.production, number)} + +func main() { + // android 接口类型 + var a android + // 指针类型结构体变量mb + var mp = &mobilephone{production: "小米"} + a = mp + fmt.Printf("Type : %#v\n", a) // android 接口类型变量输出 + a.telephone(10086) + a.music() +} +``` + +**执行结果:** + +```go +Type : &main.mobilephone{production:"小米", mp3:main.mp3{}} +小米 手机, 正在拨打 10086 电话.... +播放音乐..... +``` + +# 6.接口嵌套 + +描述: 接口与接口间可以通过嵌套创造出新的接口,嵌套得到的接口的使用与普通接口一样,这里我们让cat实现animal接口。 + +**示例演示:** + +```go +// Sayer 接口 +type Sayer interface {say()} +// Mover 接口 +type Mover interface {move()} +// 接口嵌套 +type animal interface { + Sayer + Mover +} +// cat 结构体 +type cat struct { + name string +} +// 接口方法的实现 +func (c cat) say() {fmt.Printf("%v 喵喵喵",c.name)} +func (c cat) move() {fmt.Printf("%v 猫会动",c.name)} +func main() { + var x animal + x = cat{name: "花花"} + x.move() //喵喵喵 + x.say() //猫会动 +} +``` + + + +# 7.空接口 + +**空接口的定义** +描述: 空接口是指没有定义任何方法的接口,因此任何类型都实现了空接口, 该类型的变量可以`存储任意类型的变量`。他会在我们以后GO编程中常常出现。 + +例如: + +```go +// interface 是关键字,并不是类型。 +// 方式1.但一般不会采用此种方式 +var empty interface{} + +// 方式2.我们可以直接忽略接口名称(空接口类型) +interface{} +``` + + + +**空接口的应用** + +- + +- 1. 空接口作为函数的参数: 使用空接口实现可以接收任意类型的函数参数。 + +- + +- 1. 空接口作为map的值: 使用空接口实现可以保存任意值的字典。 + +**示例演示:** + +```go +package main + +import "fmt" + +// (1) 空接口作为函数参数 +func showType(a interface{}) { fmt.Printf("参数类型:%T, 参数值:%v\n", a, a) } +func main() { + // (2) 空接口作为map的值 + var m1 map[string]interface{} // 类似于Java中的 Map m1 + m1 = make(map[string]interface{}) // 为Map申请一块内存空间 + // 可以存储任意类型的值 + m1["name"] = "WeiyiGeek" + m1["age"] = 20 + m1["sex"] = true + m1["hobby"] = [...]string{"Computer", "NetSecurity", "Go语言编程学习"} + + fmt.Printf("#空接口作为map的值\n%#v", m1) + fmt.Println(m1) + + fmt.Printf("\n#空接口作为函数参数\n") + showType(nil) + showType([]byte{'a'}) + showType(true) + showType(1024) + showType("我是一串字符串") +} +``` + +执行结果: + +```go +#空接口作为map的值 +map[string]interface {}{"age":20, "hobby":[3]string{"Computer", "NetSecurity", "Go语言编程学习"}, "name":"WeiyiGeek", "sex":true} +map[age:20 hobby:[Computer NetSecurity Go语言编程学习] name:WeiyiGeek sex:true] + +#空接口作为函数参数 +参数类型:, 参数值: +参数类型:[]uint8, 参数值:[97] +参数类型:bool, 参数值:true +参数类型:int, 参数值:1024 +参数类型:string, 参数值:我是一串字符串 +``` + + + +Tips : 因为空接口可以存储任意类型值的特点,所以空接口在Go语言中的使用十分广泛。 + + + +# 8.接口之类型断言 + +描述: 空接口可以存储任意类型的值,那我们如何获取其存储的具体数据呢? + +**接口值** +描述: 一个接口的值`(简称接口值)`是由`一个具体类型`和`具体类型的值`两部分组成的,这两部分分别称为接口的`动态类型`和`动态值`。 + +我们来看一个具体的例子: + +```go +var w io.Writer +w = nil +w = os.Stdout +w = new(bytes.Buffer) +``` + +请看下图分解: + +![WeiyiGeek.动态类型与动态值](assets/df0b4dfdfcd79b3a5c181b7f529c41504dddece8.png@942w_761h_progressive.webp) + +想要判断空接口中的值这个时候就可以使用类型断言,其语法格式:`x.(T)`,其中: + +- + +- 1. x:表示类型为interface{}的变量 + +- + +- 1. T:表示断言x可能是的类型。 + +该语法返回两个参数,`第一个参数是x转化为T类型后的变量`,`第二个值是一个布尔值,若为true则表示断言成功,为false则表示断言失败`。 + +**示例演示** + +```go +package main +import "fmt" +// 示例1.采用if进行判断断言 +func assert(x interface{}) { + v, ok := x.(string) // v 接受是string类型 + if ok { + fmt.Printf("assert successful : %v, typeof %T\n", v, v) + } else { + fmt.Printf("assert failed 非 string 类型! : %v, typeof %T\n", x, x) + } +} +func demo1() { + var x interface{} + x = "WeiyiGeek" + assert(x) // assert successful : WeiyiGeek, typeof string + x = 1024 + assert(x) // assert failed 非 string 类型! : 1024, typeof int +} + +// 示例2.如果要断言多次就需要写多个if判断,这个时候我们可以使用switch语句来实现: +func justifyType(x interface{}) { + switch v := x.(type) { + case string: + fmt.Printf("x is a string,value is %v\n", v) + case int: + fmt.Printf("x is a int is %v\n", v) + case bool: + fmt.Printf("x is a bool is %v\n", v) + default: + fmt.Println("unsupport type!") + } +} +func demo2() { + var x interface{} + x = "i'm string" + justifyType(x) + x = 225 + justifyType(x) + x = true + justifyType(x) +} + +func main() { + demo1() + fmt.Println() + demo2() +} +``` + + + +执行结果: + +```go +assert successful : WeiyiGeek, typeof string +assert failed 非 string 类型! : 1024, typeof int + +x is a string,value is i'm string +x is a int is 225 +x is a bool is true +``` + + + +**接口总结:** +描述: 关于需要注意的是只有当有两个或两个以上的具体类型必须以相同的方式进行处理时才需要定义接口,不要为了接口而写接口,那样只会增加不必要的抽象,导致不必要的运行时损耗。 \ No newline at end of file diff --git a/notes/9.包.md b/notes/9.包.md new file mode 100644 index 0000000..3672238 --- /dev/null +++ b/notes/9.包.md @@ -0,0 +1,336 @@ +**本章目录:** + +- 0x01 Go语言基础之包 + +- - 1.包的定义 + - 2.包的导入 + - 3.包的可见性 + - 4.自定义包名 + - 5.匿名导入包 + - 6.包init()初始化函数 + - 7.示例演示 + +![img](assets/4aa545dccf7de8d4a93c2b2b8e3265ac0a26d216.png@progressive.webp) + +# 0x01 Go语言基础之包 + +描述: 在工程化的Go语言开发项目中,Go语言的源码复用是建立在包(package)基础之上的, 可以提高开发效率,使用其他开发者已经写好的代码(站在巨人的肩膀上)。 + +# 1.包的定义 + +描述: Go语言的包`(package)`是多个Go源码的集合,是一种高级的代码复用方案,Go语言为我们提供了很多内置包,如`fmt、os、io`等。 + +我们还可以根据自己的需要创建自己的包,一个包可以简单理解为一个存放`.go`文件的文件夹。 + +该文件夹下面的所有go文件都要在代码的第一行添加如下代码声明该文件归属的包。 + +```go +package 包名 + +// graphical.go +package area +``` + +**注意事项:** + +- 一个文件夹下面直接包含的文件只能归属一个package,同样一个package的文件不能在多个文件夹下。 +- 包名可以不和文件夹的名字一样,`但可以与.go文件名称一致`,包名不能包含 - 符号并且严格按照变量命名的规则进行。 +- 在导入包时应该从包的GOPATH/src后的路径开始写起其以`/`作为分隔符。 +- 包名为main的包为应用程序的入口包,这种包编译后会得到一个可执行文件,而编译不包含main包的源代码则不会得到可执行文件。 + + + +# 2.包的导入 + +描述: 要在代码中引用其他包的内容,需要使用import关键字导入使用的包。具体语法如下: + +import "包的路径" + +**示例演示** + +```go +// 单行导入的格式如下: +import "包1" +import "包2" + +// 多行导入的格式如下: +import ( + "包1" + "包2" +) + +// 实际案例 +import ( + "fmt" // golang 内置包 + "math/rand" // golang 内置包 + "github.com/mattn/go-sqlite3" // golang 项目的工程组织规范 +) +``` + + + +Tips: 使用`go get`导入github上的package, 以 go-sqlite3 为例,采用go get将package进行下载`go get github.com/mattn/go-sqlite3`,此时该包对应的物理路径是 `$GOPATH/src/github.com/mattn/go-sqlite3`, 此外在你也可以手动进行下载项目到`$GOPATH/src` + +**注意事项:** + +- import导入语句通常放在文件开头包声明语句的下面。 +- 导入的包名需要使用双引号包裹起来,并且如果是多个包需要使用`()`进行包含。 +- 包名是从`$GOPATH/src/`后开始计算的,使用/进行路径分隔。 +- Go语言中禁止循环导入包。 + + + +# 3.包的可见性 + +描述: 如果想在一个包中引用另外一个包里的标识符`(如变量、常量、类型、函数等)`时,该标识符必须是对外可见的(public)。 + +在Go语言中只需要将标识符的首字母大写就可以让标识符对外可见了。 + +举个例子, 我们定义一个包名为pkg2的包,代码如下: + + + +```go +package pkg2 +import "fmt" +// # 包变量可见性探究 + +// 1.首字母小写,外部包不可见,只能在当前包内使用 +var a = 100 +// 2.首字母大写外部包可见,可在其他包中使用 +const Mode = 1 + +// 3.首字母大写,外部包可见,可在其他包中使用 +func Add(x, y int) int { + return x + y +} +// 4.首字母小写,外部包不可见,只能在当前包内使用 +func age() { + var Age = 18 // 函数局部变量,外部包不可见,只能在当前函数内使用 + fmt.Println(Age) +} +// 5.首字母小写,外部包不可见,只能在当前包内使用 +type person struct { + name string +} +// 6.结构体中的字段名和接口中的方法名如果首字母都是大写,外部包可以访问这些字段和方法 +type Student struct { + Name string //可在包外访问的方法 + class string //仅限包内访问的字段 +} +type Payer interface { + init() //仅限包内访问的方法 + Pay() //可在包外访问的方法 +} +``` + + + +# 4.自定义包名 + +描述: 在导入包名的时候我们还可以为导入的包设置别名。通常用于导入的包名太长或者导入的包名冲突的情况。 + +具体语法格式如下: + +import 别名 "包的路径" + +**示例演示:** + +```go +// 1.单行导入方式定义别名: +import "fmt" +import calc "github.com/studygo/pkg_test" +func main() { + fmt.Println(calc.Add(100, 200)) + fmt.Println(calc.Mode) +} + +// 2.多行导入方式定义别名: +import ( + "fmt" + m "github.com/studygo/pkg_test" + ) +func main() { + fmt.Println(m.Add(100, 200)) + fmt.Println(m.Mode) +} +``` + + + +# 5.匿名导入包 + +描述: 如果只希望导入包,而不使用包内部的数据时,可以使用匿名导入包。 + +具体的格式如下:`import _ "包的路径"` + +Tips: 匿名导入的包与其他方式导入的包一样都会被编译到可执行文件中。 + +**补充说明:** +我们可以通过如下格式省略包前前缀,使用想过与同一个.go文件函数类似,但是常常不建议这样使用,可以会与当前文件中的某些相同方法的冲突。 + +具体的格式如下:`import . "包的路径"`, 示例如下 + +```go +import ( + . "fmt" +) + +func main() { + Println("我是fmt内置包的函数....") +} +``` + + + +# 6.包init()初始化函数 + +描述: 在Go语言程序执行时导入包语句会自动触发包内部`init()`函数的调用。 + +**语法格式:** + +```go +package custompackage +func init() { + fmt.Println("custompackage init() execute....") +} +``` + +**init()函数执行顺序** + +- 通常包初始化执行的顺序,如下图所示: + +![WeiyiGeek.包init函数执行时机](assets/e0340a28184fc7c34680178c16c61fc984a7ce99.png@942w_590h_progressive.webp) + +- 但是实际项目中,Go语言包会从main包开始检查其导入的所有包,每个包中又可能导入了其他的包。Go编译器由此构建出一个树状的包引用关系,再根据引用顺序决定编译顺序,依次编译这些包的代码。 + 在运行时,被最后导入的包会最先初始化并调用其init()函数,如下图示: + +![WeiyiGeek.多包中初始化函数执行顺序](assets/101eef1b4984a49abfc27a360911e81eed92d771.png@942w_512h_progressive.webp) + + + +**注意事项:** + +- init() 函数没有参数也没有返回值。 +- init() 函数在程序运行时自动被调用执行,不能在代码中主动调用它。 + +# 7.示例演示 + +**工程项目结构:** + +```go +// 自定义包的.go文件 +➜ pkg pwd & ls +/home/weiyigeek/app/program/project/go/src/weiyigeek.top/custom/pkg/demo1 //(from $GOPATH)) +demo1.go + +// 调用自定义包的.go文件 +➜ pkg ls +weiyigeek.top/studygo/Day04/packagemain.go +``` + + + +不多说上代码: + +```go +// # weiyigeek.top/custom/pkg/demo1/demo1.go # +package demo + +import "fmt" + +// 静态变量 +const FLAG = true + +// 基础变量 +var Flag = 1 + +// 包初始化函数 +func init() { + fmt.Println("This is a package demo ") + Flag = 1024 // 注意点 +} + +// 包函数 +func Show() { + var msg = " 我是函数内部的变量 " + fmt.Printf("FLAG => %v, Flag => %v\nmsg:%v\n", FLAG, Flag, msg) +} + +// 结构体 +type Person struct{ Name string } + +func (p Person) paly() { + fmt.Printf("%v 正在打游戏....", p.Name) +} + +// 接口 +type IPerson interface{ paly() } + +func Exec(i IPerson) { + i.paly() +} +``` + + + +调用自定义包.go文件: + +```go +package main +import ( + "fmt" // 不建议如. "fmt" 此使用 + demo "weiyigeek.top/custom/pkg/demo1" +) + +func main() { + fmt.Println(demo.Flag) + fmt.Println(demo.FLAG) + demo.Show() + demo.Exec(demo.Person{Name: "Weiyieek"}) +} +``` + +执行结果: + +```go +This is a package demo +1024 +true +FLAG => true, Flag => 1024 +msg: 我是函数内部的变量 +Weiyieek 正在打游戏.... +``` + + + +**包总结:** + +- 我们可以在`GOPATH/src`路径下按照golang项目工程组织规范进行创建自定义包。 +- 自定义包中需要外部调用访问的(如变量、常量、类型、函数等),必须首字母进行大写。 +- 导入自定义包时我们可以自定义别名,但是需要满足命名规则已经不能与当前目录名称重名。 +- 多个包都定义init()函数时,从调用的最后一包中递归向上执行输出。 + + + +**错误说明:** + +- Step 1.引入自定义包的时候报 go.mod file not found in current directory or any parent directory 错误. + +```go +go: go.mod file not found in current directory or any parent directory; see 'go help modules' (exit status 1) +no required module provides package weiyigeek.top/custom/pkg/demo1; to add it: go get weiyigeek.top/custom/pkg/demo1 (compile)go-staticcheck +``` + +问题原因: go的环境设置问题,其次查看`GOPATH`目录中src为存放第三方go包。 +解决办法: `go env -w GO111MODULE=auto` + +- Step 2.main redeclared in this block (see details)compiler + 错误信息: + +```go +main redeclared in this block (see details)compilerDuplicateDecl 03datatype.go(151, 6): main redeclared in this block +``` + +原因分析: 在学习study go时候会创建许多.go文件,并且在同一个目录下每个.go的文件里面都有package main,也就是main函数,这就是问题所在。 +解决办法: 同一个目录下面不能有多个package main,调整或者创建多个文件夹分别放入对应的文件下执行即可。 \ No newline at end of file diff --git a/notes/assets/101eef1b4984a49abfc27a360911e81eed92d771.png@942w_512h_progressive.webp b/notes/assets/101eef1b4984a49abfc27a360911e81eed92d771.png@942w_512h_progressive.webp new file mode 100644 index 0000000000000000000000000000000000000000..567fec18a2ae767e7133c18409ab1c28c50388d1 GIT binary patch literal 15070 zcmeIYW2`RU()N2#+qT!7YuZ@Twr$(CZQHhO+qSW$ZJz($`$^7z-f!pQN#0JUGt!-O zXZ-5w8a1j)L0m*+ zWoq*&@@DNPYEWa>YggMCFA4@fJxM#kd)KXSHT2zo3i2$t{PE3pMbNp+hj6#M$8G2> z>D%yA{S5nM_qh4Y{XPAoxW@Ye@$=on8{Av>qxUp>7dz&g;w$kL@NNBZbI334^?}ic@eq6bv*gRt+wS@J#(U3u z(Odh|`}6a8-B^2z@7D|ddGUqt;=4=mu;b{P>?891^Yijf^2mGjbH%gE)5n|d%l?D+ zHF%$R7<;N)L@@lh!E^JY_-wcb^A7PO`$e$EOU;w!tMsG!Rr@jf{d1Q4^Uu32KmUG) zeiJ+r9PnEB4F1&l%KemnwXU!J^Q_nBr~aSMi})!0IQIU0e%)i6ZXJn@QqMMGA6j_?wJlZ^F6ydP*YE_*otXg3vR) z0KQrzO(A~5&g%tD$+iEP+}(9qs8%>wE51??{2Hi7kO0xjHysqhSJ8wI;wzM*JmhaR ziRcUh@hAoQA^t+j<+CD>IS7!L#?=6~7zG;4@$T)JV78P4+Vex47>_utWzkVl{OX?{ z_|01X&%d#HP=0Jqu0skGFv+1I?D`F)^-izPzTe9qqqBhS=_Sd{wj)YLniu6t#9c+* zumP`6-&>S?o#MemS81{h?V-hNKMA=&e7?$RuzH9E&Ot9zGyf+g&up2`gg8apqfes> zIi{i-gd>sjKlB*ORAvr|Xt`c+FSS;h!VG_d19-~+S^-J(uOtNoczkZPf@W^KI+xhv zmZH<6yplT>nRy)P3VGpqIimBC%ajg^)PF)@BUphIC@{{b5MG>{eKP;7%#f9 z1V*=>7PE>+bTQeA=St_x(_HJFM;bob%-m=p<_{KIcp1|>s;`cS5<((Z=F5Aw{RMyF zEe0>ov=dxq3v~C&!xEpIFvXL|vEy-oJF1Co1p`xCf!`lP9HHr{eA$Z8f@WL!3=D}a zVJh?}RrEoJKVpMomrYH2!nKo;o4RB4=oo!lcs`6fCeraZ6SBA1=l5#DWf<&R&_ z_z47^bjBKNR;B5^rXdO*h$}q`#aOIDHf48O3O}z_v}aq03OV;u1>ZQ@j=H_aH@w4; z2(ctNMMVAoQLX~w-dZwZ5CNX%m@1^;2PGNt#0Z$919A+UT-?yi$m`VMgagDd8>xD; z?EqZ^b!aX35jeLUa9Ks$8y@kd2%^WghW5P#`R>#+DNf8+FTAp5{018-Ppw|KMcwT< z=VHw*ILCAE_+@Ypv8%ob%I;Zq-du)7P7t{jpQ^G@nXOFys>Y`or5!+6{X7}zNkzcT z!JNiPx%wK%xZmJmH<#*7#m}rV$e>2}_%yaF+)ImNc|F~NH_J`rV}%_ne?F5wj6`Z} zxzOe>ss8*)>^nUvLkQ5*f*uB0x!q%_kHIQRX#`m^KH*%?alLJ*RB!D!p!EMxuA)| z>!V(DwvYBr49j(*i{!Jn!y2GL&`DE|R6&*1YdNtluF*Bi`@(%2^4yTHDsU?rj)8Po zwAP#gIPZ;rJj;LVQ#kf-r}?{8ve2o%e3O;pU(VAnZenYIpQLn)9*IvJ@=K!?9y{C% zTt)H6xCSmToVW(r`xc=LbDEfstU|rd=16!MZz$lVQ!KUUijGK&2$9Pj_lXD|j(A)r z7h(94!vq0m4d}+0-M9K~&Ryn~Z3t*Gpkt*$=~zEmdGdP5&SV&xE5;+7#V4mjS%DQx zVuKh8Y}X~})Ccvb@!wLK-l@Hp?U{$OhM+jkJH~CoEllzE2SIh1V<4yb&#n3iWd)A= zB7TnSm)clT^Cl6)oJvq+Lel@O#s8V>e-;QX0O0$_g%I$QlHUV-|LKzCE|cq|J?8KW z|Ad~YRD%82IMEj7TQsCHTeSwr4o)&H5idSa`C}VdK<2x(-vaoVDCjyVXCMJXK6J@b ziRUkG-idh3Gr5vD{P{(9Al+p6!N2g^=mr7js^65U*{}V^y6zglqkiw%v7$mm z53@s2GR7`0Gfc?^eF!n{rqh#3B0A?I#4EB2A&9G}v}@$S9eSth*%$}f6=TW;Ml&?KH2@r67iVdBpnpz!lXix)QZ%Vwj znuUz7s|;w2o+$L;>;SkE-hqx8i+>?HSoU?V|6e5k7s>xm zR6>+~+Kgf=NT)0p`CD%4Oc$&ss=O`3?xGyEO%94}J=fY^jZQi^S73Uf!oDPL3{vEa zZ6`S1C}Ed(#*s-`q1Gvg$XOJ@911n@3b8)1MNQ3#40#ZNdOU8QdfDU&u4%UB@1j_1 zMmS>s*M?Y;pRPPrM*P|Mh^sxyoQH8bLzyza&2Ypl=N+mv`UP^6qa*Qr#VBKhCL!r` zYaJm6)L~4-urc3xMX+khQkqxpnkup*hG6LB6|O}wD}W$cbc-ueDn0C0B8`se1_QLZ z^I0g?vQJnk61bifzmW!L@p!8p&5ELMM;6Cogx;An1yNt~>}h3ayTcin^P(IME*b>v z@Dm*3=1emm05HU0M6%7;n*WBjnfqN82Nz)dz{T#{-(+!YOv5Cm6X$`hINwP2@gpL) z6I2Ju5VdW#_xaqsdXt6oa>8BZ!C=h&aTFd)4wvx9#21Y0wfwYW3hT0_g!%75EZBuV)meV9-zMpE9;Y8u1aZ(9$=ZQq$&d5`&ya-~JxM&r5i z#bK`0D8qBQ<@cA-)R6D5$1Mlj(5x53hbz0&r!*!X0R@n@l@An(_CbA8H=Y`WKimG# zag<(_LKmV2(C}T7z4*3eG2kU_vkAJvz~H%CWF@r`oC{vCd#amGd6zqjV*27kfk&G< zH#$#;oZrpwxDVnsrT(j)I(tNW^q$=rlrk=sHfFTThCuW%-^Tbo7`H(Ub*Rkj9!tWdrdPKt17`| zB$&Ns$bnGP)ma6?ae`VKz-C`xe3BNpjFynDX5LbY2g(o);GJAUU$p;#2x3hQPgF>Ot0@E`{xMvuO^I_ zkE8!Ap=vBLu-K*6`3Dug`PPH?CJ1%<62h3RX89-ntQ29&S#S&-wHVJwru6I$wY1(i zo9lPb9;JRFY%NE3ph|x^Vz+29iTlSctfKGbQ`3+4dI&27ppGlvVLO)n40F$v9ODLY z$v4lbwIuR&blYwUXE(#X9meB$(b=baVv%k?qOK=rRZBz$&KM3nG0^%BfpS zOKx%7^25~r>ee4A^S=FibGS|&)SZJ`><9U*rvWUVmh`P1?i4Lx4FjE}Y0gEk%eW`~ z3jIe!t&t38GQB+m1f(?>X~Ev)0$9c-5;*dw2S!g{TCZf)oG+uST%Kx>YabFomMY?l z$=hG^$N7+4b(iro^7ZH_*w+9%l4C@76TPCsjggYWX+j* zrMH!Nv1#OU9x2;^d2DjUA#M!)-gJ4$ODfTtEe$-ua+yFYs9;y~R-@q>Ly}^C+4*V>+b*5A zX#pZTK8`nxIBc_fcm39Vi($CXsqF4k$MNDfl>_-lddX#i9~0hSF#*g^GT1oW;xRM& z=z-X>xB@;bhUszR@B@OU7*1!kqZdy2>R;bo2e5P-^@r+Y#h~>7?4BV1VlPn8MOFB=6Si#m|WV z81UNO>K~SgmhcW7tVQD9d6%+l0y^54+{2Hnu+-Co;;zOn9QoL|c zrWJEfC7^ZqWklfT5-=$%c_(I=;)6KRW_`QDDlD`*fHij?x$ypI4E0@) zM?H_k+X$xK{sw&G#iu@RmlEdpo!~DSx?6NZ&Yc|pW?`y}!?N)m^8^X-%wsLV(VU|y zG7WU29tH(@;tSP?ZG==ILC>ss`9$PpSKi(@7z!rR1SF$U%_K;H`IE$7ELTf*Kxg=`Fj%_Lq=5uz|Autw2fL>x|f zS89zf7Ac63?6Bb(*hzlTwN5_ujVo8KxJDbod-iY3mtj zXc1qKNkZmMx40jAxzruI?4Da#?&Zi>T&mWE;}8qn<$oQe3GN^dsA#{D+lja8eV}jC zj%r^~ll zoJLX82d#wM)3z4slVuv3d8_MSGoO$4ehr2IJw_g(I&D7Tozz+(I@3L`!;lptyw5RA ztD}fdD?PfYT! zB17zOUW>VH<<=>+7db0By0@?V-Pp0#=4Pm#a6I(Ky1x-QM#f_0Mrdgqw9C*XaE0qhT7I zeO1y;n3&2|!msMldd=r7uq;HA1S`lw71F|M*Yk{G(;sGyEgP4w1~pNcO#keK-lhr< zNo1NqKdo}{;tucf@l4OO!!1?-PmWn2aY~m}q>A3qvbPuw}1P1H8-3`QG~h<$?}8!Kw196#pLJ&(+p#Xjl9TbqovlV*bt% z!Aag>(RKQ-`fH<)#H>f`IvXgvlpEh^nXFNi`ncy+P#k>tDv+W}K8na}#4V!}7d^-A z0#rU8BMj53Y7;LiRxU(r>xVxF{-sfg#;dq+#q4*_o{TSX@wk>$Pw#4wSxwtyNmred z^)e%@@~LdBQs?fINAE;JzSx(La*?DZ{+`q|Exe+YL*p?byGk?lNa6TPaL&v>rK~Km z)$ZAc=U&BNEs6Q(ht@Jy{o?oUgRq$|MamRJQWNcQ%MoWYPp979QF(B$yKTSm;##5I zg~ul`$Ec45nToy8I~ao}m;b8ycPLk&VsNhA0}u#RkIsJ-y$ZFVb9(QR&ZpC7&n23UycvGEu@6q9ZdB z0P+htY#)&h25!`eU+=SjNBeaBqO}(8Kkd0BCPB~6?ZOZPXN65eeM;(mEHd)N%y6%>meGK( z7ln!1q>|7N{3QOkRJ#7b2ivpWYSM(7_M1%PEN;Os$-Eh0mPW01sw^6F+&jNqh(j0g z$!8E-om9Gk&D=w%Gx|NMWR*3A#Yur4^LV>g2W1Ari*_l>N>8Q(@5k-mK51W{6ljZn z`4xQz@TP4L3{kx7@dsUHe!q-*T8u!Ga2*ST2CY@-W%3b|W5V*!6XjYh;?c&kiYRCb z%ndD{!3*a5%?mzV(NT8J7Y3cQ$LU@P+ADFKC~T}9HpSuITtkh`_uu zX#u#92vhcEyEHpV<~?7_KQ1eD2un(I7x>e zmvutFUd|5}Y%d{^rO4_;{kWAjQofuD{+hTCMyyw3vgI^J*bw5vG;f;AF#EQ{e#2ew z48J=~j~9!%ijG_tjWal?Vv_Xl`W1Aegf%WSpP}b`weoQ^KTBJF*VLBSRa^e|aR9~f*^(;)~ z_?S|juI19Gv1wsBnZV_5KV7GgL2H9h_?6rgVyS}IU~rDCe#3UJJr_ZiO`il9i|mLp zwCgr=>ls8DmN)k6bXDqfX@3{^YX{6g+eY2uMO+yam z{U>Q94%~fQ4|_3;1G2hfuw6;kPl*&HBpUb|v-^^6>loOh!}DCLXrkn)Foo9^KD+`I zq?I19$ZZJg*zM{twD^Kg}N$4$QG%HFlxVloTx*>8i{EL$6rqR2#1; zsa0_$28BEKdZO}ZFDK;U^)5m>Yt;hGjWmL&;Bl9r0AU$y93Q0~V@D`r2) z7*BX|C=i$)kuhjR!AQiaj9T4W1#o7n=!~cjR5o$(2PJ)?EMN|AMf`w^JZ@Qwkgcc3 zsj9JlG7p#)2M#<0PIr?+s^dH`ZgXFb2yJZJrwF&&N(AC40_>Ry&A< z0v$|-6NA}nA70}2%z#Er#}u+gR~Lj{;W6?+PW~C}C5Exh@vI*7yzK10N8OQu3iFBn zy>B}H)8xXJkN0hB&`&7CGf>1vSUQFZ@72Xyp|&JjbF32v!y;|9388PETLC9%J8l{}n*$=GIZ6 z1m13OxmDlw0rfoE0gRc^Mg0$YI=G2dwS=T?zFdKqjl8PZErLSpdFNQMoVu-8;XYD{ z#VrDqH2gu_g~@kX?vMLa&jOf!q^LkQ&9JH2HTO-c8%Mb!1iSh9#%NW+E6v$8%ayun zJVPQ~iFD(YYg3x08;+Xx36heo#;*$gB7ayS^d&Wa5=#_9K^e9tWa;Vyd+0*jYc46U zrbmGw`X_(o@|DOWhcHjQLRVVc`-bW_EzL6Zc!H+H_v{VDC~Dsc1pH``mN z@YJzZCn>Q@+d#oe+3!iqF z3Ccv5N?>5O1ALJNW%Y^ppb(O5$Eh%kFvfFp5EIC-taY7J#AQ8A(n^8iz?cFwW%a-! zE5Gw477n0kOh?d{v$|G5aRabm2-CKB4~YA46uz}=Xk!K>&5j;2WV zPl|imPFn6u6V7kVd67mR_y~%ur;P<)7bW=7)AK@TMTbrDuFpVRDYRY=6=M(zm?olN zM9K{jk9s#ni+YSERgjN>LX3W6;D$b;;2&csz>z}gL$(wQLE)&S17q8F=OtL%qJ$~q z_}U-n(UcaT5`|VlSJhaNg)_7HqqdrDP&ublL<#KNjQbeV4gFGk|M3ibD}imEny9mh zM)0}b%dhdF(ISqZP| zvPnJk8%iigFvz2z3qc0eL=%omyCwXi-b>x49;Zng;>RNwr{5gBqmL&1RA5nrErvLN zWGx(q%v#R~%6#a_Pr9)~j#$C^eK^#oDJw)Fh@gh1uC*qKY-S7m+h)E=<$_TjGq`&< z;d4SaOsf9r`vu}b3d=G*S#KK~|7*LS?_lhC#@y^ndJa=rDk+VBlBJ(T@X3l5M1NJP zIS3|>H06D7$=yo^WB%%<8b#f0n{E^+oJ;|Km`_d@mK3suG7^hnkI$*mN8PTGutggV z;FV7}XbICbKpA-K&_3zY}{rCt}y9z_eZPO)k!)%3p`5-qjCj=?tX+}ODr^D&Hi)qW(^*zUY zo;!n)Q4P)>M0w6K-940iB4_^ux?A@oof{(OFKr_Ch#zwTxxnEEvKuZ)!ax-dNF22$ zS0_O-QTAk71!F~z`ALG-P@!dLpv_d##YV1--Y+2p8pdx_MGm;rNh$vQ5a+uK&UO`d z#@M5vAaw)Si1dwq5ib@q5>_T)Fo5&#P*BRF>b#=y48(@iIjFs4}d zQ_DTII-))JC}Pxyw`;rj4(8E`H#8RL~qRHqZFydfyiy> z-y=Mr4@XdPYLmP1_v|)e7}_u=YKf%ot{3+DhL`}>{DI(UMyqj}e8J1g0k~_kRm)oU zkww4M#3BD2)8EIviJ^mr@|db=794?>9Q&9Pto)_@!39ny;7$&~wycX61K5qH;3la% zn_d1bhBXoifVjQedr?r|TPezPB)6?0nBc1;m3DE{He)$_HcTP0A3369(emYwhv}`B zt@FRuZ?_TPrTl>?Mqs<6`;g^Hp7-m6a=Sstp7c}U=Spy{6h#Yc(A{w;>Im_uM&?6j z5KqMsvr8b=62zbl=J%6HkNrAabMKQHmObo?M5bUG@xv+A&JuqeT27#+*=_CvFAj^r ziPkQeZ~wmAH>=RMB@j)~TuSD``7Hr7#2g{7uP<`;_K4$*)Z;1Rf@10Lr1M@5MZk5{ zj)q^~FfHY{ARg+K1G5LNUFi6AI2NpMdWaF|ZOfZh#ah!Uu@JKCf;JJ6DoPyjRsQLc zQV(UP#bQA|7wtjhd{^}8H#o-sMN!YlA~y{-w3_okI=KO4AO>&_m8eICx{j_L(^}VA zsKqme1{UL>7|Z{}^5mAuyr8p%d9eW3B#WSGHK>kp zT!9r)zA=G!rTUjz@zew#=e^^Dx#-|XYcn=bS@VYvx=&NMYizNFIfLWirVRWlq->NYyIsf0=xdW-JTFmo`(n77XiCELtPe*BW!=5XZE zQxNTc5;=v6et2~r#pOYC>wkNq{Y^eFfGC2uX%u1=oBd6$WGN4?;AIz)>7)_N?Drg# zMPce;=uvxjgFjCBkUHivm)d6GRT^wfBgKH5B*z_5s`9OKRksvM?W-n^gyuIrLK6AM z`Rh%5Fcs>z^;u>&D|p+j)YMy+%>pi@W@S(4rKmrpisS6u9rlVwnn!e`C_K@1`iG}m z>{l8XvwwqKn-h+OW3`joeo=8QPBs z;)UyMiL~;@P}#>T0MHZD1QdDT>9Nikx!HzE`JbxvI?X~$nYAi`XSgmNCXP&L01 z_enJNf=b;B>u|5~$dj|%=iF-P5Oka7_45-GYU>G$x{D}CH6-yUl z1^!Y;2i+4m9Hsf};YZMLG{wvTSMa#X`&Y(_F%D*xQ0iav?qj9k!~xP<_5nQJ9Wu;# zfx~7PgF`F_Q!4ZJfu#;9E?kq37Y`u5hcedQs}{i&D*CBMbr{myaF)lEQ$s^F8g@*A zdGMz8NyJjh-CwOjrTIChUNAnHf03;8@p~E+QnnKDo`R4vbf}0Dssp?X?{rhIk^5lP z3M*lXud?>-AO)i(POU_s&ZvzIVylI?qT3AvbuGC_O|2}eldv+*Smv*;vTxXmsF;Gs zzh;W_!i}m!b!U8;YTgAue%WsjAXq3QlZ>fO+KQzn>NKvdtLO>uss8+gR&@s;6L*bG zGbM&+fs|_lHMnwQLb3dD`g$oW%lO`s+>2MJkl`3&4dWh8`fZ?$iUyZmpGY2fQFnQ? z$FwP<>P05ESum#QE}2ZJCCq$bx$pUhfPc5mMW@nCi-u_mZf8t2@FOFB!11e$&p#;cr-P_t}q$P)*m`fxzWy3f@#ZFDh zQP9IODfm(T%yfg28@ePFk6&$7qF2*HFU7isf&STe|DCVA1Dz7b8zQD%f{4b|Uu3N6 zuJrF+W8~c60!ks1Cz?Kgd4_R`Nk*oX9mFD=aa2hjsc3|1h2WDRSD-DCEf&!ojSMXs z*L0SY*zE4=&hVJ{@Y3Jpj6P~5xJ+83E>7(J=xF?qe)q2CD+9^?#eGDQkHVSQ9BC_`R+5wx=oceKZ#A^gM}P9xbP^HLGtbAc5^! zuzgMqj=O@`vVJp#GTSUI)I%cy8`GRI>7Ri`KIl(UvbT4miBM;l;$IQ<1$UInw6@VA;CeRG)ipqp^h(md z%bhLbGJ1O56fWg(K)%59^A5b1l0N4cDY(;$5#MLaD!)b-nG748!_`%lI<&q&8fvcu zPl~UPGX^Ks`>@@F-MGy$S%}Sza0z0DNN`?SfS=KgQ9~H)@8JUtmI7o%J9KBsIgu`Q zgjg}Wo^0SAuc~jX<)t#HukoTswGL0}G@}gBaZ5nl`js1qt2TgjgAO#G3EADBiO#L@ z}Rj;*#!BceNooR&*)GF zuarmIo01f*8XB~lJVQJ$b~>tJ#x5(hdRE>KBF@VBjTEZToylTR8TK(fMEo%`F8Ph~}jF;P)Vt$AxlzOD3~ zXg=Hek~SW$qT6}fnkth_+YfD-QUmYp$>Sv#;$g+v?y{oCWY_0c?D|C%5og<0Zg=B#gjuq$e^9p~N zePpn_;PI*QTJ=XoKK>QMTZbZ08h7T?Gh@Q&_nF6bQge}8T&N?;FM3R~m1+<@Z>=nE zC*pb%`%b)(~4zh``{jKB_6cc&t4~5cXDyjcI02< zQU%h>?io-!z-#9IKQfbciSUcgW4?dL?%D^Aqt_+xQzzT)cR{6+Wz7~mAg-bPk4p)o zwhY)COLcdXvN-G#Qg+fim-D5~WvS1Ha$S|~A^D~i=qrF3zi5x}jv6}s*U3f$UH{Bg z5FSBMC1nZ$u`S@V+)`Z;pPPKZ{r0moxAyT%5Y3$=LXOu(?9+uqaN}o>+N&%SD??JR zrd10wmjcn0w0u23`--;%x*&ug^HO~hvq0NY_7kLrdN~<3j`M_Z80@!NXH^Z0KJ<~L z&%l1Boey*cuv4$QSp>yx)iIEK7})sGL8UTon%7pTD$6pHEJ49|e{S9hs{XL^peDiJ z?+#r^9bSPP;Q~8&mY+IX5w~U1(Y&SBbcN`3{ zazg?mEr7?^@M(angECG$7j*xuPXXz>(0P=)UR4RRPtLp)7l!!+Q6H60I&^k#269|$rfF?75h%ZTW^DBRZ9?<`O~NK*Gph|J zu>(E|@??yj@(4yJrsivQ9Q@m{;}&>j&hcX#oW#KLvY>_aY>8zhUeaK__Ga zTu8hx_SQ)Yv6a(r>Es?HqAPAQ2YiapM?ucrQcI>@d-2 z=a5QzJ(j*;xb)IHygIx4=S29doPIrmM9={=VtR?|VZ5X6`=63Yz=41@9eN`#S zKp&2@KEYOlN+AwE>uYbNjhF#L1BHWs&L(rNrBRK0+>MrSZtU z&l4DjRDadqTRa7n<=Q=U;@8lTL92#h7p2J+ltS)y4J{{lE2MjjnQYTOa>h9j74((& zHF@8HatvRq6+%n&qh_;QOMO%t_+3Kt@%Y|j=rf-Uv~U%sQqDL@@1jSjs4 zW1VeSM2kt_8F!U-XzU2i2^K!Dfl~_s5WOG{L727>So<1=U*SVM+C|A^dM2>OelX7> z^j+nt^9F(#TUNqyx!*k$%O)`ftf8J{Q{k?c+Yy4y0NMv_aO5Y`iU$KGdLV^r+V=u% z+w-O8>#b6)q(-(;BYOCmrZf%6{N*JQ=~V9d480)6t7BWE3?qHRaa|2ivW<)503OTb zi{_=khcq~9>}Ll(5uC5zOEGFrk>y-gWLtA&gj~jvVHN2em@-abQP%x90Ubhg%*X}w zQm%t9IXh|swP3T7VCo$}g&_PhGh6#F?u+q8(h0?CvOjGyrJZZg1%-JqMe{b&l+70&G?h!+s{FlQh;cacg3%X`Fr@A+(+9VDacN z2*)UVuUb#8gN?F6*#;b6yOic=*91>aKhH8(SpVQ;aVl>h4B07jnd{ukl5z@QF!x!v zX!x2C$BnH982u#7PNxFd6kPaPubQLbBy!&n8bJ@WwxR_Wa7!R9WU=N{{E35&7dSa~ z0jW0Dk06>S|ZVuLk-SDqRo#WlnTOqk{6b`DTGqb=yT&AOT~Q)&o!E22-1 zQ10giQQCl0Bv8h?n{WnCW=vEQrUU+Ze|~J7s2$%aG6P-O2;~0QS7Vf4%D#guKFlGd z*ZTw2dQrJl=Y!A@mOacwlrysDk4*(!zO%szdeNVfElP&J2M$Z^s>6*EF z;*rPBad?BL`#+1s16@H0vXq$&@9rX;_*$wn=xx~;uc70PiZABt{i=6P|5U0%gW|jC z2cAJUOE6`4poO@vbWiNoBAKdXW^m2_mA&K;{LM8iheuMD1J-3lAJQvI6r@Wg@531h zjhOaDV{d~G>qMVSluJZzI2rLa&U;i7&(w;%yKfv2dR?vd`=b$(Jsf8dmQGK)LqF(n zuSjrb`Mb*%p*7TaALz|PE@rerX-w!E66*#tF0lZP_=lCb|V2b&GVLja5 z%~(3Y?io|q7K(7P0jl!p#~yGrO(Z|^$%P;n?u3#62A3{&;9iR1RQdyfztp>uZPy&8 zO|fN7zeS?ZDR0B+`fov(e;m^XX<|4S+Rg&V+^z|1;U@<`?jQ5yj?V-*@y8YUF*|iQT)Y@mMWOx2)tGnCAYE}A{|PrVPzyz1(EJ>JY`D7N zUpTTD*9u5eA!|z67GD2poDl)!(n%n#JxgRj4sYDa;9Wbi8`leo(;{ih*cRW?SFA+=@#rLx)L$kuBSkjv_o2OsP`8I7V{n+fYmeGb zau<0E=S%!6E(#L&LGb%k`|&S+_T$l`Qb<&zb{}poI*0`S#qW6ic32yi5`s)`(M^fy zzxb&DO@6iAKXPuJ*i9OQC1??MWbI1s{ZsnH1orBt5H(zo=%{O!y=KNbCNa-(ez7Od7Fj%>MK3Wfvju|I6=gvT;A6gIx(; zqQB&}Oz^+>Re_{_*dL#|womP+3?q@Y2|IK2r1lL|8qkCOmwZD3s>hfOC%9r-$C+oY z|1Dn~B(hf?Kt}Js`HlW!!=o3f#T&fZUw2b9liXtAQ5^7^{O4yJjHV4UD*H=eOrBN& mQsj)%*BT=frv3fon?9t~O?1@9JFz60S9(1~ZwL7I@&5qoZB1SP literal 0 HcmV?d00001 diff --git a/notes/assets/13e14c6da60930aa4dad336ce26f83145c64476e.png@942w_261h_progressive.webp b/notes/assets/13e14c6da60930aa4dad336ce26f83145c64476e.png@942w_261h_progressive.webp new file mode 100644 index 0000000000000000000000000000000000000000..95f8e612475683d78e9b621347323113e42a32c9 GIT binary patch literal 20770 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 literal 0 HcmV?d00001 diff --git a/notes/assets/205355dda9ee9e48b7c23c03ddbfa8b9d27c04ce.gif@1s.webp b/notes/assets/205355dda9ee9e48b7c23c03ddbfa8b9d27c04ce.gif@1s.webp new file mode 100644 index 0000000000000000000000000000000000000000..e2dc23bb079227569303bd8d86d1d3828fd2d6f7 GIT binary patch literal 17880 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

HB-{D-?kCG!BgX&~tyX+ja~GfK-D;_VeT zj-xIyy{H@ES$YO6y1!Q((MJt{k^j~5e@kL+|EZ96JU>rL*Yw%umgD*Vs~ffQUK~Gk z6h`FWNY`ql;@@K~V5-URH`p5SCgdc-KXNweC0}J2WMo!c zy>Qg1Wy%HHq8et;STraMBW(vw^=u@muf2!;ilhR@M9t)LqPJj+i)d9ru~Upwzt5ET z4YowUb*FD?kHo$pj#grPZ%V6@GKy@xAT)~IYPcHi#vs=(kpvrnxdI#G*Np{hr z8zs%zTm;R4QVu#r#2oEnrP%AMl%yCnggb8s5ffsl zo&}8tye_6gnnuPrgcT^9<1ZTlOFnX|eg2wI|N5>`r=U{GDpdCq?^2LN`u;bA)YKZ$ zfUB(MeffhcII)H)@wz;HaTyz(ehAZYzgJsbJ70W8F9QpYfgs@WX@qP1(=14>mu3mh4?zPkvqM5!DY#I`y^BM4u+(_9b}X!4Z(8DSBL=xML- zU(vYI?W-2WYivcRy7jgYVR*xWTF0#mFgE?7(;=&+^DdpI3rim}C%Gi`{xBZ#BB@Tx zRrMo_Du%vo*Z^y=GPiOKT|LMpiB#uF=kx8zvH^hDicB;GAvB|)d;05!@4wmVp<=v{ zH30W3j#?ad$F6+l{Ll{4v}tB|7Z{nWB}RHAnnPF)k`OG<&}mv|Va&~m+>wG={?{!2 zU2|RGSTg>+6voQ>Ar#3(<086tnq&dkC5@6{?tvCtYbXsicnfL+(ynf0w1HqsUdYoH z5ml0ehX1C~=`$h?`Q?kHuMzXRa`Pv$jM-t4XOvh#CI#!UyA#8?0b2Whe`gGcX=B() zOvl=i7fEBy?ZrGO<3G!(XLaSqvp5ajWbQumdo@5$YtAnN%|mx8WHE#JB$uc7*S!CI zc`d8$-wGMVg#p|B<-;rruOe9|$Hz&xmG3HVri>G;VHeY%${71qOjAm5;V?(w-_Y+X zgpV{UIic_{_s!61#K!PBwue@vv>I*DugAZElseO?;?c;I7kATQp9!C?Cv$8FFs?f( z2vU#ArcaBu_kH45L zkCbR|p#a{O8S~$+-?wQpRa>!gn(~B>qb)M&i?vE{D(?d#n_cisG4xv%eIi{FT52$S zp<*#pqceT5VK#$`@_LUZy*ETJSye@DnbTi_v-u|sWrL0RYc;n+IbIo_c9N9U8PW#X zGIfiQ560pZXNwPx;Qx*M2K>4)pyof|at*vM_pVV)E-$6dTggJKQ&8%_P%RxT>q~)g zN!_ICY;5cgIgH?c{}Z`!vtnQVBK-oxerpqyRP~mtj-u2TgyNaEMXo_`H$=Ph+^NK1D|(-af?LD+Vf zv!JC0#CTHdGmPq0KhCZ0GtgX7z3~&2_-HgA^^DiEa#m}=6%wF?_d&&){!qSvIQ`?}KlWd@~ zj+mvqk0T|VfG{El#)9sfUFcSZs;C>2&w`2DDnHjPYL(=SYS91Fk?4QWfkSp)k}ek` zlQD~3i?>wfP0C(fmBar^GES~fTrO@o#<;&oV7XT&y04TT(H)Mk0_x~(?A3Pm7M4m_ z&HUBXZRiQA zoO&3DdFN1v;lG3YWaQbLT@EmS-Q%57E%I$)eTy$&)3giNvGCtwl1?)zbWa~z*~px# zM3#KSsZP~u1kQ%@D=5d%j5?VL7nJDtgrXd1cIrO;ueVIkTIhu-18Uc8bDz8x1LT7< z{Ix>>(d8Zqnef$+yaKVRI$wY-b=Q&1;PB-BQZRLl>oTeO&+io|41Q!V2C#o#DE}bU z4Y6#;dg;GJmBa8)zp`bAESyh$TWZy93n{S(-KdgXDugQ{4R!1czCGV_EZ?h^f+2>H-_U&7~gi-pm zyys$%eE@J*jvwN?#%m5>N}-#cYt!mqzBq-Q`BX@u29S(ngrI#&8QR2RTgcfuN22Fo zY#B$H)3ywfsI%X&pimkiciBl$-ug6(?=^dgpcHxik)ED93SUrcpJ&Dio{GAZe_Gz| zbbXp#(&xCqx-bCUOWlAzQeJkxK{(D><}a|IFC^Y`t>H6dk^mV1O;)vrc#9^6XBuD= zeG=yax2;Ozpz!IE_d%p{iy=13_=f|-)*~YaP7`JEx!p#1{z0zAO{5=g59dg?!k0mE zMfSd0?44Ro@IXS5zp9zPhuJ6z$*3x6 z8Kz*`BhL!$GbisHB-kC5VBvcHp~qiSqLO{`rR~w{HDHhb_aSdkQK{JA>dajN$xZmWCmXX7@W@Yv}mlj!miU z8)!>(!~Xth-93Rv(+I=JOERbrQ)DE6fpJV|PQ)UGspzx_{d60aOk{RBed8es6^x2~ zgRcWU=R3-|4&T1~askqXNlnn{6GVyL^|#(e8Ic*Nx5|EnB$1uEL67yNuZeo6SSa}@-Om(lva zZ2K>aMHGV8NTD4l%Cmqmux#NkVs#V5(fa@a{ao&lpNNALbS4;&5!XEM-Mm8?{!J3vm{J{%CCpC28#igy!|qHkI4D@6Qb1K){{2LCABtk>r17V^52%WvF%2 z;@W0&DB+}Sk38_8yjyt8J=+Ja>C$`0G5F3}9=X!e&A>iB%|iKwm&C&$x3)IVa7+4w zJM)~p$fdB77n7<|!67;SK(WLH<5ae3&jlK*S;(O-?l z2@gK6@+LqA09m;xu8?Aj(jd*_s?i1_W=MLghw6rlUwFF zzgB!=EDU?ENPA6acIsPgc%znJb`~j7?N0WR4Wn~p$G*ehH}LHpeZ2^;^;{($XGwMh zjz7g>`AX}zea!Ug2dFhL#I7nnRjcyR$=r)N4-j|0H9m03R^TecEz@%Mo@*cUFg6*P zPu%H4%C_aAoPPf}0NAShS#~w6lf#OEXJ?k1IU(xCgF`8Cd- z+U57U{c7KUbl9&Cz*Wz>Z*;OV$Mcf)+G<*E)5Md?SVxsZS0WH2jo5sMGV8?x9|7+c zguv}N307iS-8@1P8aWM&J1QL=4_d=o6i7|;>@k#ec`|$m+!Dm4_yo||pFu>&iVDkexF7G+#PYf01d2Sz$Evn;Rpu1eSYvE5ARM z#sAPfYof2+_n>`rzUY+eN3mORKpCU2FEOROMn4kZZn^gSa$hz zKjZ?L#JxwOzbD1P`3HLuY_Kj)GNFrd+L?X2Do>+%-Pzv=2I>mxFcC;I$9C#|fB5`i zWV|P-!pBfCZeXsY2>avI)B7+`K z25SXO74a7fOuzV%`mX9R1^I%T*z>{@yv|v1;bAxI4gWe!o^E_%w#Be-UuV?Q$OB-E z%s9KNP@iWz18zfQJIwsYeFON6-Q=7<%o&#g*mNu&x4t*%vhmMz5iD|%-7Z%axDJ&1 zxIJ%6ylo5ruY{GhVplyN)~=|wOMhGC9m6x`^uTm$9k>`!%!dfiDj)yTe zs*rs$2H|n_p5HAnS-o}Yp+gU{qX?JzJ1US_icwNYgJ667!%iPV6pjfJ2!VL2MpAcd zeZggTmhm1t_1R;Ir7$ml=AqLTn|ufOqmL&Xzx)&z_MQ!8c_$-kWo=XJ1H=Qu!}o!? zZqS`*8C*7H+mH`W<{Ot1|rdxE@l*zGC}z`(a4OnjWLwen5w3}#p0G5$x`U=x#Fcq7&==f+P3Wn zVkB_}m3(N)I|L+8sV6r`DCfbUXioq~;Acb8W7)rNwtZA4+?1xnA(e9D((n_0H*^Z# zEaJxJK6nZ>OeT5M`%&I5h*39n>GURRqhRI%_l+|ehgCk0JMD6?2m&F0OdI_j?vUT> z=M(@P3mAq7HZNnpR|i&izjTmF>OY{rAGJDO87xS0cC*hN1WcW9g2Zv8*$I65 zO_K0kRpfl%r#5f^-1sKGHH{x8=76URx%B)FaE$2z?iMs`4)Px3sva(pE`A(V&HQu-e}_RU7ROdWzy(69Kv76S{kR<)bdD62ebbkLqJv1En` zwH!TS7m5a(cva0o;l7y!!tm#wEttuUL}Oah-|W_Jv2$~lwD5)OTw z%M_Zj;~3cxDw z@^)b?2PzC!zgU${QgtTR4qJy(Z1?+TQP0uhcMFTphDzorMYP~qo19cDGaJ21lPGFs zt-2Zio(-msc+$&~EnW&0B}2ra&Km7@=SUNH!qHYwW!AVAX`ckru1#0vOuc|!e(R`E za|@)9OdBH;Fc{Ze2a>$QWET?YnLz?=SMq5X`YEkl9ii~>xWc+SU(2^y_JO1SY}VGtgL1djn8m5%Et zooiDr_jdAXFut=x8z!hWcfy?{>d}Y*9zNK3tH-2cm=3sG66lHVyJ!M*i{TMXJ?)E8 zIxk17?Ik3(6LsA+t5-9RE~itL*UV4GRIU(jYO>+P;85fEg-jcBTMM^G*b=Fk);Ku( z669dZhAuFWqa|m9{BXPKV*T+?1#_S(xLj)*hmro|Zy8CdB*=iwN=1u3xX4EkAWpq- z3Z!aP5MY44t8&ae$WWq;q0F(?+3`iLLEd{v-yH4H1w^v;4e5^4u?eLrvv|oxs>&rJ zlD$)N8~lyjkry$JVyGvko+J;N>N{K(>YaklWbFF%mlFAke#rcz+hM`ZRd`rR%@>$F z8*HZ=&DXyEg{g!|<_52VQs&A?nAfZ#>-2&(3$i4xQI|2rjezbdlfK&H?F6P>`upQ- zTbvdA!ra8~GC631@TOzRsOAQ}8SE9?<@g$@;=N~}qZSUiy>>=z7 zlq;R{T99Eh;PP<)>gwNCAUM9GA*0uM5(~T0Q5@V=%hn2%V~CnwVEL(A=EaI7bG2t> zPKQ}Xek&v!d{KoOU=kvt?18D^ACByr{(b#su4nG!YQMWdEX4Mv+I*vA#RH+S{G$6g z$If8XYIbIT7Erg`j=sR_%KOfvriW@1KynS~+tI#(4Gnc1X^&v3K^jv~Q-Oel$KpIr z>uR3I&p;|i1m0SO9(oX$#7M#Xyf7fi`^+k>7(qIb?pI;RtD&|NzfB;=;22LK?YXLP z`hdVEdZwQXi|7B|W`W7nYAvzXOnTL-irz0o9OtvEj#%CsD2SCbF9+MVT=6wR4qFK+ zptzp9#SsR)gz;v7TaylP^vR_FtgmMD7YtY5Q0py7Q$CCf4pR}je7|dd5+n;ok>--5 zsU2C-i3IU-`M z2+Mpv#$j4a2iQkTyD^`zA9+aa-;n^yU9fR8z4_r}B+lsk;j zPjA&fI=8XFj?eL1&y5|kC9l3|dbCEMAE(~|=^n<45`t&?N`2)P*e|K2)9-Z9yZTDeV8#cVme7glx|qkgj((8(BuJ6q;@kUer<$g zkNQQ*9>`C#bMZ~}C84+uw8{%WsOQe3FEXNcv|5J=C|-wckM6v?z-{XI;MV2LTKGM^ zqRuj}x~JNLF_{l|atvo03i~w#Be?37dqMW%lG#x3kim!M(x)S;Nk9lgcQ$>gjS;H8 zKe6#79>mn2E75GkzzPeyW^{xJ!r0P-rAwpBgx%E#ME5>K3;`WY|9td~aFpXomt3p6 z12o#^6RN(#-~VZ--?Dd@_8GPgpBK6kB6?LYf*D1r8Z$X_jApXpt+rFZLf7o)iZ|`% zsXK9Ay-(L!MdYs_Ind03%}s(RqP8FnzK4*d9D+<n&>Xb$dttg8ymA1A4nqQp0pgYOH$B%eT8MGuj4uNX1F_vpbbv+*WcT}zoYQd zCwZ>?-R$vbu#(f@!#hVHibkh59!70n`WX{3@(=cMwAV%-&BgUIfMIBEDptY7?0Y^U zjX#)=%X2`(W|xx6o|Ho&f1hQA6>VyU>friA3{yUt4`aZx2}V{4we>@|@+0mYUd?bi@RsQ$ zbxG6lHxdb+dvg6aTKxs*yW`C*`6yzGsmhwj2`-JKipoSG-D`2RIxu*l{Zn27#CBgy(u0GeTrFrB9{CBZW5|!} z#e91K_Rng!g#=P3Qlwj}6_a)U)mb^$P>&RDpy{TdC%VyQK}~urw;Muor{jTv{)zZ% zDEQbIc++cs#tnU*%nJ0&+n|}rq&*g$XU;dYeI^9Mn;AvC-nA1ay*8q}g|Dlf>ib3F zmA;8X)Ee;1sqo!0Nk5nwq@2_RmG~=Fl<9dd;hu8Tss}22Wp3#inOCXCBMdilFG1I- zPdaq;t>pV0_OnVNTmm4alEseYpy!R?fY;^Ki9Xy~H;nnTDPKe?$c^}yxyn<|T^$H# z<$0b>ggJF76gW%s4ci5GD$zI~DOzL%!QOC$dvLPB56Pu35tO-&^OEEI4Tm_Q?c!h~ z{&(teU57`KxFL|B{7KPkb`T2WY%(U9H{0-85S!*SEKm{&4Td)B9N6}tD>45tk4tRX z2q_~XQN?{FcF6Z4p_mnlfa@c!f6lQ=VG76&j|XYheEH0;bm1FTX%V0eH*-Vsh~R|3 zOf_KoWN-r4WpnXyY!F{kaA!!oA_BzolhTSTDGUCPx_*t8`KmnF12n~rw2YJSjH9pU z=*jC;`zanj8FNi?jc`gVHx|{Fxiz)xdn~8owFFd7<~6daq|xiEt(Jeqh#Qq*h=m_mPN!@U?K<%Ka_p21^lU3h%LRBIPRmdyp_k!VMfJip zLj}z)SI$WzA!BN#Z1K2{fi6C2QJooAKSlrW;mC{c7AMhwJ2yX+zmDEdIfZqRMUcrv zP)SaEH~Qf|EY1=(!dvcb;eAb+$;DyE_8mkv)_RlT@}>3YSQq8K2#qx$>qhleHB-#F ziJ`FIBdweY#iPZy!`Pv{L2jDfAM$wich#>NjP^LylIwiOYFh9Hd-y4k*Wg-M_@FNe_Kk16<%nB>MOuUq#QTTHMx-^Fd4_`+WOP=NdNu+ze; z_9lur!Clpvf^I_5AuxOysn;gdi8by<-&o#fI}kuJ00E(T_kB(xXv8h~#ev~d(!4%C z(&$7WjlIkhkHzdj4CP0x=KMg`3%ch{$tJM%Nr|4;oyL`gu@}&cMQdx-P-Gt9f4J7I zIa%zNF3Q?=hQhHCBs0*xb2;iL13-|+xh^9^9ckuX2d(Q}@$A|q-CA1^6>Aki#9 z^so|XZg0B6jEyrX>%~D3frG*4YMLx@Ky|igR@Q|&5mnbfuUZdc))j%Q)Z;cilriu_ z7VyZaYNt^dY)yAih>cTrkm^tAf-Fo^Ob?MHMM`cWgkH2QJ`iV5?5Uv6nqVW(Jm0b$ zF~DuN7Pibih+U#Z0;I!sx77KqPY1)J{Q z1bzP9(+1g4JG70dM}dLhoa+O3aw#BJ9cy?PmS*GUB_2XC4AM&>+*~k_?K<+NC(5hS zt9lEX&DwI*8fS50Kk!R>-^&7QT}8{gZ^i zMraea%{;%uy*$dvvektVpbHIwz_!7VStXd`%WIXdS%HB3G$3~_js^50H;w2597APE zAxN-c+J$lWpJD0Q<>GnX3+C^HQWo7Gcz>g`ezwz-<>BaO-6YgGB1FlKHykZUwRu@& zdu;6l| zPtQU$fG}>y(|^SVEbcB-0&0=p3p~N^piL`Hf7ete`pdH(C~0YvwQC}1{2_U2h?P~a(+2f8=l>-Gtn z53BmaOn}K?$?_&>0QfMH%v5c+lBW=X=XDDuNe~mby=(hk*+NtBpWi{B*~M--msb9u zR0q=v>rwJpq9TD3%!BE59Cjihesq!F8QCW+U=WImbmmV%r!(CvQnEA#Cx+eK$BYoz zviBFz83%0NeOi0$FV_m4!BhINq~ME}R+?>P3(KP>>GJn+bzJVuf#rlS`OSzajN&VV zzNe>m1H7ZB>|q`KsFXe9Jyy*sdi5h#Bmx`96EZZIOFJ09e0`SOPBrOkf#j+4U-M~H z=$gl$WWTe`Vc&>zhW?NlkQaS32%lH6oKigaXoAWehOBsTC-xVh`m4;4S1B9GJjT-AGy1#z9uSJzn7%q=V$ zL+!j>syW~P$4Rk_fU!mjh=z`^vv6o69GNpjRS$t}=Ji!UwT*{{vFCWL_$j%ADl;4w$EyDFkQ;mNga z2b@9(WP#o3yG6_L62Vf`nvR0sOx@b1am4UKeXRoA3=_n`yGM`ej81pQDS`OM;ShCg zTEJmEGR>;wt0s*{QwRT!7zc^R#cE0%bSV|HL7~sxrc#}x5 zuy;t5KXpM-G+9Xdl}Kruv>07a93QEI9cso-60tCg)dl26uwjO5zLF@C*gS7~e(WQ_ zR;GEGBBF5~EwPinzWRmgTtySw)xXRva*V)k4P^w}_p%um#~=2kYn%6>*5Fy=>O=ni zHhDeqpM36X5I9C7^msODCcq+}fPcILfB+e-=QcmtKf#L%S0cL6jL5-fE^IMHH_O<- zg`=p@0;(vmwtrxil1UL?;_@|iAq8`}9F_G)S(_U}zyBtI3}bLS}Ew1o19)bguhlzk{w??UWK$LT+g zlEA7reF2z$E!ja!TcBYNZC$jzq#gdyQIEJFa5=&wP+l2tW()cU5Q@t=7{Pq|2Z(RP z{1;{|ehw*gh0P#|hDNkiQ$QJdgE)jC+xBWl-j^`@K7F5h_Jx7z>VQPH`>yZ3F+&zL zOyw@)6L@R$unzQg9FKp3#Kli?yIfY_*zgp#qP4g|FiRKbRN>SZwGdCqrbqcQq+%22=r>84I&+|Q2;(bf9|?ve*+9?G&U?FxW3jP;x-*D9u}KWvMnD!tYs zerZby0$_F*3~RCf%XQy6q|CJ2jfzkdQbGqt<}Q;NXBRF+Nrjja!foI*fM;0}=TA7# z_epIUjX{=f!&G*3f(q-qQ>*}9@LD~aMMV=;IRO8fJ;oWYG!p3k~-$hgYZ+Nqj(Mr zpO)%_u0n{MWM=rJ`?b5T1W^>)2WxHp1L;FW(Uc8@A!lL}SkZy6kpi5kmdw(>U*2}+ zXc6wYipQ7(8xmtrsH&NiIT?|9v0>#4RLQ~1D0?>mo=fP3hMr#B>5nL{s`iSjoFn_&ErXcSTWBH8uRZen8b^`6db?h?FG zI(GxP>y_~!_Ut}H?Ue8urhWs8w+N#e=BidOWj z#A2x$a8;ol9ZXL9ql}?0CHs|ZohQI;qGJ<*@`A;P7FACFoIQ9v)80PY>R;E*Nvv^9~VhK`UYGdD4gJ z3zmMwjtO|9o`eqB3Egl0k$KSDE@z6gT%kFSF*JL^KBwPP5UuZ8dIk5A+X+>F6LGF|yHFn`{>RxT!?Yaldd5#xlr!Fxxi8ridXBFDhzg9uZa6AV*H(aGm zo`HEqw#_!_Ml1b|jZ^iuL=xfY95{%Uy2c@$XKRB?Mc28JKC4BVIjlUMWfK~;m)L}+ zp9w$&+4PTYV9J^W2Ecwq5EiJbR`bm_*+VOy)@S;HKW-XvtF67?#8; zOIO4=YE}T1SCU8YP`&Ls45PEkegw3{Bt7vepCJsW^A%ovQapHkKWeqi8B)B@8$;0A zit>c7%<37)$Ahozjt?nOz934~>({byu+EJutGWYNBMur?P9N6D@2wSyT?7)BJ5(G290PtWAWVdJ775Pq+iwVdx#`DG_c*Ts$Ga|e%ad$HmgAI7tQbqtGUC4 zoK&g>QRwZt;Y5GjMTdZW`_z|tDwvsrZgJ)8%U>D8Fd-Qb^4M2AoT%lbSCtc-nv0k@ z*FNT^zR;YgTB06aRQ@5Oj31>R2k9vbO_@2V8Q1^}egs2a=(uz@J54{1;aPcZ2C!VM)B7=Ip z>#1#Pcz!AcB&qVPfr%7bWX8+_9r0$24!%#EoHUu33!kR@iy9w0ixq8vZXC5YM1sQn zlHtHTov=W07bt^b;66CnMXVYF;={89-a^r!#`9PGK_rkBio_lxSWAeyCNJy|g5^~Yn%ciCva#qw)gKVyuVK5?~k(u zO}j{e7+H%K-JWSkqV@94tWpSpGscxc`YY z5cFG-n$41O9P*5BhGM@Y&4rmnL#vR0>846E%k^TCuM|{W2FAdJl%MSQ{g_Vhlh6VH zaYhNyf$#7ou9T6a34jQC=BDeqPF^}j$6o9~IbJ+(oW|(8NvaEZ)pw@98P_*2?8qBW z-RmPd2=gVYJ^SSaz;xyMvLYoo(E}MPY+-ed&JI`(rUzc3l)a2Iu2xJuj&2)qSzFt& z-jCDtB?aW-8(N8r1+-w{lR;yqe9-<1dW+Z2f&DuJFgow1PvWvsCUc*OqA-s>D|=zY z@4d3yA*C6D@M26GWYMp8Rv7Y1U>GXG`D4FrY2beHb9IV4@346^HPZOmPa9(x9jt+o zOwjw|u;+@S?YlBFKDdee+q!jab~M=HFmH_L5%OtBJ2Eyb-1Q*)Z6gRTbspERoyZT> zg6pm(yn|c7RSJcN9Ig*Es$we~orbEgxQOSE-{h)+Y@lXX;?Mke>S_==9)CIoy807+ zl!{nDBcf=IfL&2OvsUSB(;3Ewy2Q!_-#7{*eaPeqoF88b?7a<_oZ6eL*)ym87s)=% ziub*y(JyN{%uI-J=VOGiA8f&OZY!TwB!NYs0Ghl%k_u0M2q<|mMmuXLAkXJ?u<`1S zS7F5b*m{u{_@F~~)fny7u7uXJy+bPbngW^rzQLOoTD_oV7v;MjXHg0BE&oJiWgIP5sx5Fb5uQIy}%nbBQf8*#HxWk#SfSbP}Zim=%3phdMjHVt@C% z^2ByXKA7%U$`k&wi{5Z=dbc~H343y0Fg!<%N!^HK(X%mYFe+S+?u!b~ILd5NZB)Zs zN}B~o zV63jELKQU3C$7NPVx!3z$m2b zM!QV(!2<21%ZBZ1aa*CTE@1fy0&^e&-%!}jBYxoSbxd|KghIIT41?UoE``ei$Rqel z<2k-+vwYnY{hGa=YBjn&&d^We+kNo%$3&@RxobqBUaNQy0c9GSO)srrt0fxDw0Vn| zk}Rctdel%AL4*adM3C*1jbx?pl$7OEpX+-f#1N+FA-g7hclE6qCLKul@R-=*)=_Pv zjqduE-8FOk;J=CelLEtQ8bs4zVjH1+SKk;@hx1B{hpnr*rLi=Wf@M1#^1EdtO)7DE zwaSa+qqu%G50XZpCvi-wX&}?Vp9bH%eEn#{{>8bpE=<61Nxz}*A+CJ`MG65CYSo5! zTwI^sOGbgk>lx$-S@s{ri*W3%yuZyB1L;(Z@<1w6A&|wr3qHrcAI02e&iHsF;p#(^ z5%xRBmtBF99C5BkX-BXBgetm!X^^H&tlvGZHZvM1uSGmgbD7hxv;A(G58AZV7Xd3*bPLxWeS3>E!>ZFb@tj(i|WW zmQ^Ucv?!nu2(oe+K^(}ebf(bb>`P(@AoN`0IdEm7PCkjmeK3{vNCrAlPt^EG5#FHS zFbIE3gCiQ=b|zPa{0y#AC6VbgQ0$qKmXkp9r-|sJ4jkfY22bbiN|H{J{WQ$Nr|wVf%}nt?`&HQ z0)-0u{za=uPfXBQONirHs#>Z5_O-UYNpbvvCf!3`NIjv;@A(&+U7@nvFe;;bIm&}! zj*XZ+{YAw%Ld_UGfI=C9=KNZebuW^p0A>!UGTRGdk#8U-*tYpGF@q#2_W~eVlD=bg zRg&K{cBHMgd1KB zcZzE+Vr_e&4q4+#v1|EN3U?NNI5YnOoDT4f?4xw4Y$4~d)-my`#O98Q_R#C#`dC-rq553_+$RKSsJF$(FQT;F{nKe|} zr>ha&lB?OuF*gr#SX6Z_YJnh-`C(DQ*Jdpzd-Q0~osaqWdtb3X0D24B9V2yIu3;Q_ zX{O==eE7m%=13IYahjD1wj;EY`Y}zZ%MC;?fYsd^PO{0{^2DC}sgqBSJqQt7bTgekzC?c0rhm}_(hOC6U`Ep z5i>{(|bH%|c$@_3w3Sid<($YKIqYJ$) zE-^Sbj8CCn;!4;ddv`P4bU5hS-;C%Bdd4&1lU|ja2is5<7BiHS281|JZg|6HMFtBu z#B?)wvY?PJ36El!=d!7!m$L~s<9vtIQUZcYP|kbAZ?Aft*lj%oY(!4cp8GVxwGr6H z2sXRFeVz_|oi(@g5swuu@Gh(prA%p4I-9sfAX-a_yGwBE*#fL3J-i6MQA88%ENeow zg||DmLJ0Hp3j#XxHSbSjtKOC7=1I54*kwM5bR(g(yGdXk1q%*)rjo?&S+tR#v@N(@ zID%fDx0(kez*2HgSDx-b>n@=N7eAX--+d>Wx>hQ9`TdS5&s$goKHKLDGzah~vmsk+_z!=04NTxob9DSp0 zVe$X@lIzHM9CKr+zWagF5iTe@nEuKAKLO@D8N^e;9Ujf0!iQGx#Fu*5yN3lWkuT&P zr!EJ*8sr^nG)S;5;GR#^IdJoZ)%_H%mBGBFB~;L7*FGb@=WjHv{;Gl{?Z==ir!@lW zP&@GX8}MO$7`9H(e(W-v~r%cWfi0}ucW39M~p>GJ}hHP)rQ&l{rZO} zndD^b{t^K>=&YHrHh}HT-^>xF!zr4>GUqgB^-Jqg-&(EJXsY>oQKPoZzn&6hVsJI& zGQ}++w5@AO=-n|}u%c zoovyli`By(Qn*fx{AId!*7vuTIt-mH7$P->goxs^MJP_^_PjFX%=o@aGqG77S|SA3 zuT~TTof!0mIzpwnQH!Mn~g-X$p35K((4%c|x-@lx>zF99|th}&sWZcn^EP4aTu2dF-K-PQ6|hAzS`wvVz{ zAmL6y&6`(sE^#rmfINpJ`=#y>6a!V3l-_5w@!UO$HV3sO8P+NP^nv?scu!^#*9}tA zN3MwBrHt}YNzl}|r$~C<=+f;OWzVtBAHqMW;AJ)zd*@$Or%_WcI=b59Q13yu>Ucy> zR&{YM5S7b!vXMeLxxDhZDsFx{*0upH->qM`_WLLm-JZ=dR$`M<%H0XS8%_3p64Q&! zJCgl!4(Z68&F~0sTmzIWCmYVso{X|4b z)nD*;*+COXR6=TIRW!6)KlE+o?(ZA&Bb>q~*VzZ0ySHKwh@gRHk8!Yb)@yA6x^BvcWnYEDOEdp1916t!C0F+u5qTP z3s@c2_#@}L-KG)>0V>41@d5*#^xaiFnxUdaXrG!`IR#k$#0KFXAKQQ!(nq+BV+Tp zf3w+CaBQjOdfaIyn?Le6of9y(BjwOF+I_7y9;e1tl{CkRlsJy$zlE6n!2?JdHcx0m z_#05HBJ55UtES~x@&5z=7vJQx`8>;=ybOD;YckjKPwx$TSX2)bkvI_rm|BYTkXT_d zfs%j25zxSoRvxiy`!~R7w@6J0k)g&i zd}ZtR%Z_@VI8&HkSc1kdJD6Zj`3#87L!;M$}^^Ct93LzIMo zVz@U7@@Q8q_){RE`HX{zw=|7uVTy;!$~SCi^%WJq(zN7+@IzfUZTY2}K$ocqDB%lS zrUOyM;~^i9mk;r4fH@UbybWu^*ILR}GfBwZb@_tOV(hp+hoY?h^>eJ?h!OM<5Kf2H zEPK$i4`~EcS@ACja2jgbeRUq;@rQSo{5T>8zvH!=L`^aS>$~;q700W6LT@%*KBn|P ztGLyB3Th(=0pVC|lTC{WY0@I5pk%F$=N*#amZYKY+P-GMjbg&j%6rp(^A}Tni#rlF zzt4!qno0>*{QM0ClKuup&F~TZ!_kI@HMvF~+p(#!C_tjS@CW*aZy`~ale z_+9l1_7|?l2|vN%Ef88c+sggETOG%;H;;GW+TtL9FicVCyX!jb0`C+5r-LZnph@(3 zcv;rK_0IZYmmCi@6@zKr!^WzaJX#>|?4Oi53BkPQ1WQ15PXW5svW`uz8gBC4#w|4T zhEnMWE98#ME(+8fqM)60TY=3+(kkL;!XlOE0Vw_zt(*i?3c`-ul=D@CD&a7N_JEKx zwsNrGoJRny=l5S-XM;2?LO}YPlYdk7cn0B*;HF+7)fHVDDB(lC5Z5${Usnqc(9e#x z8S0jKFFR}Th3Ywk?4$Y{jwnQ-mtF|9c@jVy*U8@?KOI+~I^I&#PIBgzE6LuiC2vd7h@VLW zK9v616h=DWZ?)$*gXKm4}ISdExpU+*NYwGFK2uO^#AHtn$r=Q zJ&jpEb=ndfk!)`|?T@=SSM1a2+*hR{0q-&+tQ8{qpb6?-Z;4tr^Cdr`C(kz%0-l|j>> zyIf(ps0J1W%#9K8@UUP9!-KYbL5wSAG`l$6|Oq~ z_6VT%mZLxq2WuzI>kM4Rhi~u9k~sm`59>4{Mf_32O!Rzvio>vbU%7O=3;LoU@U*dS z92byETHbGF1)DCOf8{?Wu~1;?)O`7d)G>zmXf7MP2lp59SbT|aDU{E2`iTvz3O~>K z0K$gQgNg?MmL2`1Gbk{JI-Im$`nTb#)3usMvn=AfE4L&KK)LW(joH0j+i!HDdFuzR z!+}@s{u?hyIy-NbfK10mx$fEiMzBR^I+H8ptoMsTM1NyOVETz&q+b>p`YS6ZJF(6z z;HQqXreBRFEqK#2mD462i81|8qI+oZpxIr{%k+ha-gD=KcpLj0V!-N{P>@%#T=+-4 zVp9D7^E>xg0+07pib=_+(icg*|MX2Hv;v!y-Q2(o?h=Q z+C?1A2F^WK+~c@AD3j)QC%GIE-fq2#LVpq0+^Dyq3k)in9Zc4#2iT1hBO8bMxk!us zg_DTK-DJ;Y@v|LNgV8}+8q(9oS{ctC)u%@ie@u3MISa87l@-v8GA9o}XF$&-+_U_z zM|!}c?Lf=NrHoE%!yxk5+QMQ;|81U4x!+Sq152h8Mhj=xZO;nB97rDTS>fw2d7zM< zcYcsqh{xdtE{U*qWw)0L8d?}#U@ zk7XBiUReb8tyQ)vmfkYusveNRKKpjwS315vZh^2bz{ma0D)rlUlo!}ZehxrQ^L=D2fv$5pzsIDW_D zY%flOLWju?Vyc|JjQJao*`JSY>V(u0Wme{CEAmUK=CwBc#xd)f_YDe^Z&c{ecv7|U zn>eY9Z0MZeI(50pZrwFSq@3q1!d4%CMbo(POScPnmmUK~>i}LN{le9HJB}lNCFLW< ze`5@mS$UL&1Q+_eRbVH?$w6^;HJXsY7DDp8g%aY98rEk6(?X%Mqi@Eim0D^HdbIuq z+cYLbT+zlK?9@*M6U9bLJ_Z4`a!F;LeaWRtS<(Y671V7ont(pWri$Jq$rVgla$SP& z{hGz>T%d#Q_9_1R@-RYSqk?e=Q@pq9c}^hb@bB+smIxGOBOSUsTRu1+ta~2(Bz?}lxmIem zm7~1CwgPYmBPuK#i~i5Wpid`z*W_dq%tv39A_AEkGn$a-k1MicVV%D2foV*k71G{6 zzo1-qmE!R2?z_H%jymZ+eMngvz`r?!8v9I($Wgg&H;DLq4$b`)hOSN42^3riu)`VB z;X+ks(FN2F>tndZMht)Pf~TvOZq^+bc9>+jHIG73IYJT4FvheBWB1i8uXiW$eQdb_ z>P|h*WS$|kk@iG+Ax-1-oZz9lCr7VSurG!w*B`W@R&8nddhzM}Onyyf7PYThN95G> z@l>REe-pgejHumE*q#Z`u|aXh&_bVKD7>0F{h!iOkw#L}+|+0h1Toy-#tSn8#%G?( zFib%8$d@e%=GV>bM6Owaw)WZ*No6y3BGp_KOKV!gD+d=xHrx zgMDYW$S*F)Pp|3*i-*Jqoz)}m4J2ro2>ao=AnQA%Wn_oB84TiA#t87aFdlBEUF7&3 zfV1LwSQ2?tA{zH-lTQUVJ~#HPlfTntpw@)-wHC+!>Wqe!i2B;kq8&&*r&Ju6_I20T zx1w`Wyx0&HLFR2gbwVoxZ08M~qTJ=xS)SHQv(L44olq6xp+!$A8;`+?^}p5_>v9hK z{L!ElFFa;g8~Y5_lH8e$lU#Nq3d?`J-UO^kVY!4X#8XNG{jL$sGH)r~#C>L?7F5}g++G@;)^=(&mSc4sXJY((Hoo|u-3d~sO1Ma5w0;^} z!U?LmVhbSW%ag#{?dGP-l1`Iv4%LQP?DaY*r<6y737cA-K7??z8n?DoKhU|vs5Jl= zAA<(U45HV1L>8&Td&aY6)TxD!Hfz(QcPrP&S&QN0Muckr8OZwSSV5g5zc$TA z1W6ixM^6wExDdK~nvZhB zV#_4dEV(!#Vae5&RH~r1Nk0SE$>FbiAi7W}XYZB!uF}&(#Up(R2a7m|^t%+UEG-7Z z#5>(i)eV1NHWQrG$$zUXjGpG21b=3)VUh)#>K7F2qQ>Zvs4xT51BwdzB}ahPF>Qo> z+V;AV#f1EWzxwkVgp{-FtNIS=s%nmAgecrK(iPdQc zfK#kA$spH@{2-wnbG)5v^Ba5*=0n=0hm{~a5Bb6k&Xul_rXSHRK4syn#ocgHokh+00JX6bs!$NPu~DCjExwe5Kh);lx; z_C?LABhwD9mQ%gUMfXv{F6m?mg16W$!Z_-HbCg65ILIWAQT!>qq_HRKrR2o-L%ol9 z$N*%jM@WA*GW`Zp`nPIwECw7dANM=H{vQ!ZJD-M@lIGukrv_E}o2tM5thgEVWe7FN zYeB9{S`D00Clfmc9-oPFB&z)?HD_1-c+V^m)Jver0Fjzq}Zh$i8 ztZ(k8M|Vh=JH+pRueYISUwpS>Vj6bfR!fn=n2C@#9fCsR;d6-KYf>Bl018ptWX!cC zg&lS4Z{HrQE}FA_aw`)`N|L{*_h-_;L#?*l6#b@Pmu#>zksQ7iM}b(7 zoHwL8by1E(POr~D z@R0IM9;;V;^g245S?{v1N0nI@;-IoI-GbJpEx90RC&IXtBIj$Y5y9e?bPFCyK(Fqu zwGWd=iU$syEI;c0)cS63dvE88+|L*$k@tkyWEmH*p@8xAA9UPvPXCo!#57G;57RJa z&(7190BhdagM`e|7@H6#WZmBd`Jd+gJhz3yK~vM=XX+7GI1AWSGP~6*90E)=&PZ|e zD(WBO8bN};PbmD-rMbIGb9z35lyHRsw6jqkXy~~KAZ8@oKc4FL=iBy(=ng?VJWy*g z#2Hl${pc}6XM=0Ozn%Vxsd*BxGsV%2p7++TKj`k;CyMFS^i?9dG;}I;rFh6fh)mT3 zL??eLAIehX3rv-azJ`uk;`@>?5E`pSSm-OGv){b_l5iJ9_dPxL9tSl?8!T;5f0I`K z7}ub)9SaD;my!$?<)UIBm+|PPpLWL|s7;f-V-R(GLGXs+gBAgJ{!~DZ9&3f>Hjr0< zEcbVVa{k(CL!!9dcm^McdK;1()w#(jcez0wNAIQo45U~=Dv{r}eHnz`>zxQZM**S8 z2j0@U_A$xUh^n5ke0pb5PON~Lk3)bGu8u+vWe%;W^3L%(=Q>zt*+=>H0{Azm>HV1L zT4T{!{l`&XN62O-`BUC;b!UXFx7ld!%=%m%>M2 zxmaX($hYQ`x$pW=*@l1K-w9%S-Uq+%ij{OXb3v%F`{(r|*8jVGjk;AnT<^LEWUw0R zcI9MCl?Lt-I(u=2t6^e;gsED1abz16@oR89JUnh9XYtis&86ytEY%2A5k+Le{K^4; z@Xf6YC2W^^6m0wnUr{k&M(bQ8KQ;Gw1%v{!p#GxOGV#Ui=X>-_;i?euk35o!2LI|O z&b+@e=kfL`3$Tukdk`0Hu1q34=eMsLR(}qSh)*w?xXP#)O9O42)#gs=)`cf_+Ppq~ zwD=NTn~ZzyMAb0ey0 zkMYm|T07D|pa7$tiAszC)1v8&j$iz!DYe7JiTE5i`k8Dk_hexie(D|ZqI9Qn&;Tv` z9X+;HSOAlM$oS`(GTL6bf(X9ShZY7*t>cPK4Kma-D9WhBvO@$rAShJq2*_scHj6i* z%s|7)1DTeme0pKWWDHj%I79_{sL;z+a-Du(NBOHqxGchw{(uxu|!RPK}*oZk1SKcU3XkQ;#~gfU^)OFv5jo^=vqUsMwK6?RIEPBO9nUkMpxebbZ{#6hnJfq%%^H(bOhi!)?R*>HCQ?+;2k&)S5lO)vnua&BEWDx5EQ*9E5tOT&J9X00s(FRdLJi57U+Aiz#`rXAHGPg_yR< zoZVM#ilC;F-X4)&$XoL4(d%#RVcuw*eg-XSD8MscY+u?MgCq+&w&b+sp~YZtF~oO7;T+@AluuU$wl&@BjnUJ5x^p2*$e$gh2IjHNObNsX@7@4Fd98YW7Y3RPDol+RTNq{mjVUxRe$oH;PEpK) zgs(C1g7d-f`J#2vumDZ4gUn*#G2PBc)TLu0ag!I(tXk~UM71{u&*rFdb(I*;kAetK ztMFy8pg=}CZ0xlQ?#C8h0JG6|g&#-AUXyX>h_Qi^QLsU;gM*6hC(uL!3NoW5?VAWI z`Z$9G*yi3_Egt&l|Hxtap!HVSez-FrVJxn#P$RQ6!$l~e@l`4zzVx?_h@XHvw9$3A zXo!5y37MyO~nHGA!pDFP-81Wdp( zzKr{|fA)Yf!uD{>3^58u(24RBc)nH3IG_j=d`{#AE?OxhQQHojDC`&I&$1==m>wSw zwllmmaOGp)?ep+`7*I*Uh7a;Ahc=v#@0!%y<8QwHDRRJmuh9@!Rju3C2i5f< zpm}QK^&8_4ag&_KCJGc($cFBTTl%2x`b{rf`W+Mkgm2j}(PyO5(}MU(|GWHp4e$F1 z)1CMJFMq54mP>J^EdbP!_#wv>tlOO5EdY=dgn#PW{ltAiJKnO<^g zm1|I~iWi1a;Fm0D!f_VYmbirtHFVQc3rbbyFE&uE#qW`zfmb6!;t26JW%9QMr+91RzvY&}T6ToebU4tRj( z>`ubqG5$H{Ij^Oa6%TgVSCtSd=PN7zqa63tP!%BrFoa+nC=rU^yczhR_rc}CroIK) z<#PnQ?jhYI{;ya^y*E^NWtqpDBeTv4jO{YWC~iWsT#h#N+Z;*xrO zN3}nEv^L3;S7e)&T}9RWmv`6CTp$v}$BIPmh>@dA_hBE`?}=E))sC&bE(y+5(QHIy zq-f{uoR?RE)_R&aabIdLA0Tpe+i?9HR3n7E2S$P?f`RpVi}gH zXm2~rnb*86SNR};lC07}pYwonUnhy}kC!JmavB?|=q`#{8`92l3o6+c33Uer4bnZ5 zN$0;(Yj`B|#sy}HFk@o0pC+n8!;zbm>Eg^|MolK%9q?8v&9zy;lFcrW9ggEtvyJx- zUyG9fDPJmN5Iqgp!m-Q!z?x_llc_XmUC1hHnQAfFcF>?E%5{%SkZzWBuBP{XWRI(B zp(5Z4lg;h$_OF9zjwNj3Jxb(b>iqNQI$zT}`gz4=jTL}o#=<=cNr$6;uvNgTTmk5l zx2a>Q>0WFS*Uj-*SR&mm8Y07h`T$g+W(z4E43m#g(LBg*Fg&-I5^R_eFk;U6Hh-E1 zS*fz`Lx}bckSNisPve_?w&NeEzn!@iLJ-nJ=F9z*iEE{`e%^UW zGpy%Iv!4RUb1e~z$fFo0b)}t!75s$P_=SdV3KOO#SycQDg)G5aw{tbx_(jHQXBn|W zt0ypI)&)myRtO5q)CQAa-u?l+!$L@yuY0k4{u)Mw6n)Rc+CIu=h+Vqu!fevyxkn0| zDHN5sTO{mx%(ydi&*BSlF8BNwC2KRpl@sW@P{R74>?RL z1%Qr-C?hp@?z#GS{{Ba{bB({6Qg=aoWj#Ed?_%)uB+bx4c%2k%c$H87@T~n~0LZ{Y z*)wa`*E|$cwDv?wfDkB>yR&4IGhn6W{09wGIAl25SmSI z$Ir)=E#VjaE41Kwz0tu*Y@c8%$Js%b{k9~zF8(9%{|_d}lsj996X_d&E@7-EUdpUz zce6NamGFGd*Brx;k1z~ImSA!Np^40)S(81noa^__J1u6-uu{qEBb%2gEixPW8E?5l z-2w?#VAZ@JLY-#zKZ~c3Kj_Ylq@p{fn0D!mVxkqwdGtT>H;aonQRaoI8B?Z?oqBj- zSqMk82pNjG5i=l4FkJJ~O}YH-1PrA{PJVy@w1~-!YMepgdZ4>l;FFB_?EJP%qHkx#gDTg-|vQ^X)^>lnC|TE9Gu*R!tr z-(bAv6&Z2*N;nY72RqK`%_Phk2SiY_X(A^noDOvt)FjKJag}n954?RwXdc8wrg23f z_3FNO`+a7jaR9|36P1P(T2i&LjAwhB<_1dz7uVHj_31z^A|T!q-Bnct7{q5Gy(8IO zpdQN=qyn&yTMLS?=hj}Op&8V&UPUN=kO6C|IKr3?;u35bqtSNlp67SM2!^~=Fi}V1 zF#=C^(Kim%3@J_^`mObS4t-f;WWI`Dp`E;p(I+KAzk>T2Urm1!9Zpwdap!*VZ;((< zNXE`0(sEAy4>{-y8ZPp&={{@S9deA?6Ghx|H9I6zibZ&D+-qQ~@z zeR$G7lBi*ILeld@2ff@0nm)tyq-Ezce5x%p9m}r`$T=qksY%^np&}mDx2aRr1Oz^& ze`392O&wS^w}hnmeiWl7Cq``($?|2p?1l(44_kG{Nw9UL3SG=z%=}7e&!Z;H`JnJl zYK>**3$Q4Q88mnkC8C@vi;-sPfw(eB8Kh94@Ow{|Ut=%#wk*P!Hw$i&1wjQFz#|AO zc&rJnb5U>jjp-T23mBi-t9aT_n$k9bYF^02%bVtOMYT!~?h7Qagv4%ZyYkgcDeY$4 zUL|55C5Q$Vt2Yq?LylkDbfQY_oBvHMsWt`W*sN8f%+Tw-WmzDRf-;vBamiRqwQfd~ zMcwret0P_J{TX+djiy_oU&5ph1Z>2*XPFG-p&>p9K7N0uxQarw=EiU6al}ibiHwgN zIlt$-H!T1HT+I<~x3Lh_1##&FO#&+aIbc$6-O;zjrnn(wEikPP8TX630l2%$%`F^r zVtjo3GZp~VVd#?bCQwEDZ88{()`yBYROFI+!tIHIEo&b+yX$v`-y}cTIlr9r@27;V zMx4xpT>}J%9hCTo9i1O)MPxHd!c>mAd8frXF`a1N?EAtynw!%wx-?netTVvpEL2z+ zwP71AfIXBEnb`nv>rXm+k_RCV8J(-lIeDkfzjUV$b@Yu)mUzwH|&S|__iDsIirF5 zt#P6Bb-1G*yReu$l-c0PKT&~ZG+J-cDNgYZfn0%0Sc`uINPrmK;9QuOR(iVU+t zExGJit>~C!4su&PQ1>dN1DzAKVS!TYNbj|9;|Qz6__-pKvABAFH=uVp?B9&zXxgT3f zuVf}J9?LOB1rAdm5X76CK~>>*#bj~Yh#zA?dx~AlR>p|4rA<&2jDi7f58UDI{)P1F zRu0NBn2sP5L3V9c{gS3sJqqqFZjsF=_JKq?58sLknV<9Vs%BMpiLG_$!*jlDe75B9 z*}na$)WHKu{1($5LVm3WL1=Ns&QFu~qs_Ycs3;200e9ALmm~f&0WJ zQ)hIJ7c`(TY#a46p&#C~6FLcPDCE(PGRdy#&!>4)cyDsMYhs^-+Y0a&!xB8+GB*2x z9HSaSF{h}X#Kjym1{lGRo_StB!`r}tGQ2xzaZp?6d2mrI2)re|d#aSl6H?|;cLTeH z+J5CG`moKUu%AfkeD?9iyHpR z^cZ0SlLk;6!&V$2a?(S1F-la(hT3nUN)x^u6Eg`~qqfI%lY?*@YLx>(a6uz_2(H%c z0D@08`2n6k4W%g9fEZK zi3B8iQE@u$$@K3;}ptidvLA7Wcn5#t*+TOZnWv&}V0;l?J6UH?# zl7H~>t&dRw!&$Z89j;)?h4=~A!-9hw_TZ-N5;gCnK~n?DrH-cr>Rs?K3j-6uh8U#( zE{z#J?+m?WsTctdIsUJVYJ#J^Pk%zR=XloN>*I(`H<~x!IV4gft5*o3zR^fC!fCK%a_l$J-B0HWgae8&vdbqm*kJXJJ# z8xnu@pqi$HAP+(1d{_~`rNQKP%3RwcMs3c<2V4{cKvP9~WQ^j@l;@Kp#E})tW6uL# z!A$Jbcx<@G>I;uyzq6GP2l1AHF*RHtInHl>xcBjVb-E?DBIP6OinO1vGpd(0z6N1a z@BEqk`>LciSn`zm&v6(B@%TcAo(Xc1U$cGF6J|d={?R8D5~+mOttvT9v7DmoaE#nF z*8*1r-_*P25=#JQCVf#?6ZSqiZi(w}vqytr?5|{)QV7~RtMydi2vqz&)}+o9>0oOj z0332RhRh9555zAdRB&DrVm|Bv5G2UxJnRI4DzlU|1A7_%kW|(oX_gXQvsb)i4x&7F z#(kZ@9?b~ws~s_;V!wwsmG=ds2<}tCx|R9$ZAZel0DPZbuz5!z*KJT5)SE<6mM zQG4h^&~4Me(9ZMU0hEWTm^k6Enf$NSc@=} zYlWE*|0~;GC8q(6mFon6)w`WKl)Qe3PmQ{@yW>MGL_G}4I2^r^cIe*EH`Yb{i_UWh zA}3e3{R>Kyk%&{u-M$Cm3b!I1)qJ}((4l*}9vMW-aM=8P^;m;?9PBv{Yfdq<8`tn4 zQ39FX_8g0H!5wtlr^2`O3IGN*j#JY}fDY~>AM`Y(H!P%~2HYF%^At0n=!^~$&8?gu z%Re;D4g)yg`^$JHxg{z?VplBN8H`?+2=)?8+P1QB9{h<+gH>8O)%rhYR#l>~KUaaG z$uZ#pl>4HX)cd}ctmt0hftcuc_Y9n7Ia2lF0WR<(0StqDQ<>|M_k(c7=$!rVE#E`| zV{DIH;t()d4&G~dU)aR9#oblrz(~MKHGT1^oBEuPEOR@A5;8dnCcuZYi-o%+2$7zQ zc+!=>g^_^t?(J&f=FNkh=ZF5>y#Rl@kKV0P6|ElzBnRHvIrOX7hoEUFEEIA`{ojhe zL?nYpVH&lb88}IG(WpUz)$TQYv|m?kjKEZ>i1Ia0+1tM_qD0!sy)>9r;a+rTSNt?HEo?*5}t0&cwnF ze))Do6&3F>@t0cRkisYU=vE(FrqQ%PtgN!O5ki*fpBv_fls=vfI%og@000L)wC16G z!(OZxe<~sQVc~iamw01UIaAXI_!mGQP9(e$$aC(Q3azesHun5G6~N?P}G)!pFIc^Z}U2Yk1JxT-&u z6*5a9c{!??c%uopb`G*h7IN|jGyZzoSyo2Z_ zU6Szw9(Qq;Cqg~J9G(RexRD?)J$T(XVD~?=weh=_sXPkj;T1|79@;>~3SOeYG&cnR z0j@9F6qQ*Ph1-4N5(8;RSAvP8*E&bHmr*_@jLy|fYP~_+Sh!LX*g}Vl$^iB+Ladc8 zRdpe?Wv6*%!B-4SRSY%O$LWaH5VS$B=3%~TM0c36*lRg~BAKDw{!s($3(@|vE#0I% zGEc5=nV`ISV$r)y%2WaXkiiv75X4}ycpNB!BfFGkY8t?`4eNP(x0djygbOYDrU?Tt zbv^IWSGyQ&a-l(c1$OSrYyevPfFs`?GYWX24QUZx2W$SSwdQlVKlJL90Kw8jLq=X; zQpX_#14)~K0a>G(gAflnwSk^qE1GP$Jm2G&rc9S_Q9zqSSG@l##5BKddbY&{J8?1v zRg;#YXdMCFAvr=SvJ79^H?@_T!Ty0EW_lisf}k3itJ4l3jaa^9Klp5%Ur%2S;YcRD z2}9VCqX^}E_wcK$oT{X3a#i*5F}A_-d>iiYFgI$13AYYofo-ZY0s{@f%RSkZj<~&w zhL>mx&g9g2Tad_(F4zs|#E@$A6R42I$G>+3Q_jD`I`#_PJ_f)fJ5M0(aJIZoocU-U zp7aUhy!;K49YPFZ( z9W^TzXGGbNQnU$^h4)i{ll!=va*M0uHOt8# zZCDLAtniUd+&wt*{zJ#$zjoAIFNIf)eFq~~ZPl#`S;2nK~fY2%DdH2KIUy7xhy>V5&UZu=_0%`mWMf`1NfTu@R*v8z-OT zd!WY&Rn<*`rq$y*sQf<>k#=joa$z2@)T*iHMU@g(F(z6NQ`@W@L1^8)MP#b?Ci{K5-=wIdUBG8ZYR$2sl`omhzC?eswz&SDH>OqnpWZ;%f(UKu->sEnLJ_}06 z&mrI!g9_T!>nKYg9qs9l3>_T=a^v(=D??SO1R=quTh(c8WNNDcf#}Zo+L2W}ReU zk3rDKly+Qrv0`Yl=QhPWUdT$99-Ox{_e6^LzDzqoF3kGH!Z4FdVaOI>)0HN7sMV)? zXCAStuqAd}Lt?rR{Ve%@FzqV{!TkwaLe)hc$&w*a+N|&_JAb#LJB}rLtn3R zafx;+9h@EPEXrWmU#hT1t2;#{w;{z>>N+c=V&Sz|C9HLKc7I!1Zq^ofeIDGht(Ji;fJhW1m2^9b-HXzj)9>ZnWyT=2|>k9c$K} zx&#iFIy)Ap)N6|6Nd5NC_Oy1>T0-lsnb%>4%29c8+}Y_0_`cWGaP-!-^+DD$dKpq$ zy6`b6YVgIRk=NrFGP0vRx}6S%3Z1U2^UO~@`~3m0%)n9bU2vAIzf>C*g=tu!JhtOB zwGR@f#IIO54_M!HY*|=}uEr79YH!fB?Qxt>{MVOH@{60?YAh}=unGMEqimyrt7sp4 zZ};BoTJC!Py#Y@4QDu}nTLjzg^t0*A+tH7_xTKvjDB|6HovsQD-8(OJFnSYHINqU| zFftL|ka%|h009QxL5%kSf(Bytg6QT#C4N%i*1!l<?aAi0 biDSpntcPvkPXu+;)OtJ{NEZ#ZZ~y=Ru@X!V literal 0 HcmV?d00001 diff --git a/notes/assets/33a21416936ef1c3c549919e0a87680e318aa9b8.png@942w_317h_progressive.webp b/notes/assets/33a21416936ef1c3c549919e0a87680e318aa9b8.png@942w_317h_progressive.webp new file mode 100644 index 0000000000000000000000000000000000000000..124c4aceb65f3cfa64a847582c4af0dd62347d17 GIT binary patch literal 15400 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 I0000001PuCYXATM literal 0 HcmV?d00001 diff --git a/notes/assets/41174379a6968c2226a0fc60f0b19d2ce045dd0d.png@806w_260h_progressive.webp b/notes/assets/41174379a6968c2226a0fc60f0b19d2ce045dd0d.png@806w_260h_progressive.webp new file mode 100644 index 0000000000000000000000000000000000000000..cbae5c6c6cb94a5af1f23645bdd6159f6fc2af82 GIT binary patch literal 9908 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 literal 0 HcmV?d00001 diff --git a/notes/assets/4626ccc778fa93883c3802e0849befd5360f1362.png@671w_615h_progressive.webp b/notes/assets/4626ccc778fa93883c3802e0849befd5360f1362.png@671w_615h_progressive.webp new file mode 100644 index 0000000000000000000000000000000000000000..b51985e95c4f7a6d2b192a317c5c0d00b356d062 GIT binary patch literal 7228 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 QXg~tX0R(0+C;$Ke0Q$<;p#T5? literal 0 HcmV?d00001 diff --git a/notes/assets/4a251c64e46b578d48f7bbd228aaa7cda333967e.png@938w_554h_progressive.webp b/notes/assets/4a251c64e46b578d48f7bbd228aaa7cda333967e.png@938w_554h_progressive.webp new file mode 100644 index 0000000000000000000000000000000000000000..09c102e44ec6ac33353e1a70c49524b7dc534d84 GIT binary patch literal 21350 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 literal 0 HcmV?d00001 diff --git a/notes/assets/4aa545dccf7de8d4a93c2b2b8e3265ac0a26d216.png@progressive.webp b/notes/assets/4aa545dccf7de8d4a93c2b2b8e3265ac0a26d216.png@progressive.webp new file mode 100644 index 0000000000000000000000000000000000000000..0e5700d6dc16b5231ba70f71af9e9027b7b0425a GIT binary patch literal 270 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

q$UGs@Kr8JbOEO$)j{t$W46;+H*Ro_XRlHMn&ht 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 literal 0 HcmV?d00001 diff --git a/notes/assets/6430f2bbc96a68ddeb83b826ab9fc5fd41f368d7.png@942w_452h_progressive.webp b/notes/assets/6430f2bbc96a68ddeb83b826ab9fc5fd41f368d7.png@942w_452h_progressive.webp new file mode 100644 index 0000000000000000000000000000000000000000..330b587597e420d9e602e54dae356efdb016216b GIT binary patch literal 19824 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¥2qC72 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

V)dp-bwN>D$f6c;A`eG;z7@@iYgyi{of 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 E02cQAsc~Hj)y*m!RRn}nW!JDt=OWZk^aH*za9 zkG`wKe+1%MB-bd`AD=0UaXhqcE-1#i?nWK4vWhBQ)7obiz}GcRph}n zl0u=VlE7jlN9kCO=hG4NA8O7z`TIH$-x6b$&02Xsitc>&Tt$RghH$vlcS4_Q2 zIa0Xc7>gjDo05RCj5*EcL>;EvQJU`$YF1QU8#HNiq22ZXH?o2CYS_;q?xoj@Hli*o zRF3Gn>TAcIs-)GT88tltfWT0N8Y$xn*3EKJ)(|K|7LNc>X;=Re~hbWh5;MU z0n83V#p##}zWYu*BtV6(_Z8+q*-)TYnq}i6-k}fU$Q|`Q$Qk>^_D11>uNq_iQ?IV1 zzI+~3Qb8}4c^MTfE=|hIvz}(pj2wEq*r-HaWREn}v1cN{gq^aU1qfqPz6#dH{F2WW zalin7aVLrn;&Rpz4tD)UYmBQ7?`0nHM2|VKG0?zzVDP82D@}%cLYFobd91G#09%=# z*9NlNS&zSgA3=&?$zpZ3r|u!%!hwHJ)K^sHY9VqGE`u+xEME_f7@4DjSJQIfFwm^^Mcuip~ zQnPX-N2zc7Af#CUA~=yu9zHeQdfooU zF`SNsd&A23AR~_Ne-1jt(P%{{`FJZ$jW=>-urD#}Fso69@^yyCw#M7#Fj-<0SdF$U z(lb%1Or{x10ST-XgSO5uS?IuJ;fjwIY4q!xF8>-26lfS+MZZbYs6rl}Y!J&rnsqU% zURHG%4l*=^8e6QBQ>rpOjcbrjQF!IY=dSaby5>N;nYN`bPqn z$-AWJ1kd+}YB<*;54-uo$7@K%h4 zfUIlHvDnqS|NdV27R%!Nooaw)%I1P0w^NE%-^&e+oH;I$M0^J$wnt6P>6sK5_Y9J} z=*s|G0zaWP27iSM&sm?PVf>h0Xj_GXQXAx0A`%%h`p)0pSy01vErYX1D)b5W>|h^< z{EUpHSpYY=OFRxG{KhL1hBZ>C~4LVbR@uQkLU%zwO;s0D~S83h)2vYNn_Z#5O=$K|r9m>kF z<|hxtS&~WQz_&osGJkpNlrabD3vIX@WbG0Gvm+@7?w>S2R*396Myt3hmIo;KNv#)D z>XL*U0p9sp+BV_nGx-lLc|Q;1`=A^y+vjcz27j7=I)k>M$@qh%*Ri_4)&*1D_iAF} zf6drMxGfCG0Q-U~9%z*KQ`(9tAW#3$_d7D}Xqj&%OcX)(N4`TS%bIaxBNfD!YKyrXW!$Rk!}JPHnYA7PIOmoudM{IIk0lZJ z?u8jK2^6Rx#fcP#3Oh6r<5!RDx?t|QcLWlAHau%#~$SN&eB>%;`VzzCrjjOAo!@TMWz#BrDHAjpxN=fRDR<26dhg1K-H~1qRW` z3#*b~UB|AtO=enciBlZuR)s?KEzdzUy81b{>D}Xikx?#r!&w?Jw|SAJM+9&*P@{OY zai!uD=bnn-F>q=LgE);eFfo~O-Fb8OSquw^ft+7yd{b4;NP9#ODT~ZM-n_rCdl76X z1!8!Ssg4?kg9TxL-km#SEhL9oo@|_E;3k>{Hlu92t;;&Enel2Qhm7IPd6v?|C5KG8 zez%E{PmOA79C3&V+p4x`-VLYEg*-xMK%ai$i1rVE0;G`f0m(PsqAO(!i0jn7P^1%u zi!HV!47zkIpSUkGk|Ddpj*1psO23E`=W1fhO(TqD&zWy}R?$nrGTBwunfwX))IBgg=iR7@-~9;v zmK{AVS|UsOOV~5kCx4|5&Y~P?)pLz@YLn#rrRF*;_wyoJ=1v-QO#|`C_yGYOzDR>i z{{^z%Z4gD#1w2X+hn|Hd9WhocrsaU7GK8thKI=sZ5?x$kz2N{eKoTgkxDVkVD-7vO zw?2*Zt_7fM7Vs(cDJ56ySX&F`v&gIUAJ0Adjx3Iylap(N8WTgy;(4HIF`Svtzx`>> zUT9c6X*mL1H~H;+_J=nGq0ySXMyhcwsnQ#%c3x=KAtN6d>oaK5oCO2nw2~YyPRL^l zQg#iJ-ofb{gJ4FFN56c7GTt$4W@M@4I8j(V_Zt^?map6>3IBFA80CM06@q^yt{bjo zvv*r7#|SJk#Oc2_p_VOpw%Zl|&%vFkr=KM(qNQa;-QrZUc~qt>%7>Fe^!|NGaFxfK zN}X-bJ_3oaK#9 z^^sG1ma!ij;RG@CXWxZV;FzneV2etnllQSgSx1znI1i9cA$8{fTGU1ZO;r@Pe~ae& zGPZblt2gbu5>3;A-h`#N(urW&8E=;7`>YdPxomr+x@>EP_|R0X4{*SdQJ;PlOM+s! zdfD)!^$d_CyMm*#J}|lrI8w4`d+;Jyb|GFp-v4qE*=-xq{r*@;MqCK2TrB2*j7>#= zR|7MN3^FhnE@OIW?i_WCC9YM+4=Klovnw@pad26IPpI9P21tX?i1yW27o)#!zDQTx z91aGG`9?cvf)`lzt5mVV8!fX*Tg3I)988l40F}M%q{ETG5$pzWoc^N65`)i0ipufg z1%-2n(h;PKa>Q#yCrZ^W3Sb0p>?#SAzFo9q6)<}Wa-X5NWpsTz11WhJ>va?RlCA|f z8|eeC244VCD)T^Ip9k&lms``vtxV^bpmh1diZSq+;t~OZj~9~16hsk2bn_RW7t?7S z2srfZPncgW+)|jqcusx#QE|JRbCq5rx?gWJiUFXulFtD;z#q$=N;6@+tNzp_P7Vr( zwEh=buiCwgh~!=OIeCojIs11R-i4EO;EQCu=IeyV)9kwEC?-HU2bl;2JMXT_P**ZT zZo~2E*yxRXX!EPx@5+Wpm;;Wz;Vq^vH~kU;bByO4O4JvfzMs<5xZt14cS?%}@d1k~ z$-o%0hCs1fF1F%JIDpP0O$-dK*9qgGI=WQq9dQnLlpzm25Lwr3ty@&hgX1W1+UP2c zsbTzIx32b8&mYVv7tScz*ol>X!B_t>T@TSy%nE?<7Q)Uvd@7)R9|O$f2%uB{o*A!g zcb0Hrd-u7V7`}N4Gk>|mTFm$q8^bRv#%dJspV~^n80C(4+cf;~jN7^p4Vv{5rFePCXa_IMR&A<%|cZv+Y!+6Y~x{eqy5e-04TwNPr)grnle3D0Qz?A8B zyjE6B4+;&UHm^Usm1h^UZ05}LKp$hiv=qB73?h2}%yB&ZerIJ}xBLt%DKC|Z&J=k7 zbY*Q4rZ%aqiVzF-O!{679S-{i=s4=BJB<<|sz2i7Wji>Cwf;#gB41TTdu95*NmO8D z0en~-Op_PY1rY?U-Qmq{&8d1qS|i<7slTnFvygkb1@-YfK{zAJTkVEiM<4q>JxpCbfy*e1aCIvW@+qXs^Y&>-4s zaew6S-QXtXR0u5bZ~QxqiOm)tUF6UG`H;8nK!Zax#!oMHer!fo)w^-QVhQO*W{GnE zXTqfRcrhbqz|SeL*a}S>|zgt_+(h!icGgrA^fOppYhf>#j{XG$Et0k3S$^6 zu1hB+1g>NTFKlKhxTM+t8e#|51r|6BK;4)? zv87r!Wp|nmeHmB4aNGM@%M2^)3oM+*GOn~5?R*P#IP8)cW;OGn2WD>^zmBoSZfH|0 zRlm2wf{cD%1JM{Lbo5S;)LstZA!D??QBcvnkP+s|k+I@S _IUSuCU$|9(3(dic) z1;F$gE_dc-Mzl-A;z(xDW(239Etb<|ssxK@M}24^3exCsD(aO0qF!)E&aJ!F-7Z(1eI?z6<(MI9RZ8mwQAKE)1UR7Sj2jP8mUChP$OgokBvh&hk2>(S z?D=nxTr%p=?o(K5Mvm5S}mGU^P4w>Oe-f^MYw;+=V25bL%V*LagBo5Z3wy7vV zz#Z<0Fxj6cAVtFcMg_Hs6+?Nin4}rUFS;i$}tM&;WtA$+(G7(P2EyZQ7?-J|?lkE~q6wMglz|%{r&k=%c zO;NN((p8=ub$}Bq#7?-23)+GgDLqg947*PE<)%y=#+Zv_%rB)~ue7p`&e`POjH?-RQ%PrkH#4u+0!L=^ETLLDQ5 zdZ9RsG!JoicQnSQNgaPC$kwSVICi3{2Ap;)1^*Ij^orF#>Y*)Z_Kw8KFM{@z){Vo( z71A!5#Sfg7z%&6#9k${>qpw7i8-97zt$R?fl8j+$C-<4 H(hV%f-O9EJrFrRM_ zLjnd|BC7$P+CXd9*ENtFtDdmH&+3zd%qIwP#)24yn?;K?6(`?fZhwuIQ_Ak)B>sNw zaB2n#0N1nD4bHLQUS(y zJpud#G*{kYd`z28KqZ9UU@$jC8z^h|l%7Mja%B-ZnU8iNa|+IbP@U}gw|R<`m}myy zC|yAA)T*PLwQ|fad=o$|!-<4Wf_q`S@q-WuB9`O9K_^FKD?l_k%I{T~OSCY*EBkSw zI(-C@5R4900inNdlkockr;=m;AJ?CdrDZeAStbUC_Z3IpU zS+?BmuDxfs+$3N4ZR5IllHvC zg^+Lu^U0I`e~qqYuvBR7D*9~em<_WM5GT9k7JRJ!x>=lP`la7^nfYnx4_je<73oY? ziqC_m;?<7Q)ZyV~m+t*jGh+0C=z~_QC14Kt@J>oDJkUG;$^6wz6$OhX;VPVbNDUD? z7yR=W zbc3>Mw(7R`*-M%!vgFctYux1}+|$$J>{8ITa{`z^5UtBQ!d9vu5OsLV2;tA30}r?WOX(UN8)Cn~*i8XnRy4a~#g4 zu%e5oTzx%G797Xc%qEpK-D($Ye8ySX2p{KXV7Q6gP*VXcS^1ABD4Bq?9?PWAK?h?N z9haBi`^BHbS%>2Vd79y4#c5m1J}Ws5m`iyfU22300OC)(35b@k^IK#6MNV+pi|z_b z2AIPD={5GkgA^IA+6Ai9dU=OF6!gd6hB#d(zpLEx{GpeaBHI&PF=~P}aa78mN9ijc zf-Vn1G6bj?w~h`dDFTOHkJQ;%sR%}Pw}ir3O~pS}L^=IH;Y2|cH%~El(BHBn1KR-q zjx7c>bZl=@W#SvL`&8OK76a9%q^FiIbm(+QLp^)8Z}S9UTeu2L)eS6 zsv>s}6l0OOrR88^Yo61o$pY1T54U67Ul|l3uj__AT-V-rf<#GMfL4PEKDNvo9D&-* zl+`*A`p|6wv$)YUN|h%>>lJt2(@r3lLdE_+M8Hc_`e8%CUBC&UiYC zE?yx7-H6PJcUF77o$)23J>O!9V_Fx$0le;_y|X$)&tS@!DWB3^dv)A5J*2yr+gKlc z)>vl9EuaL)(dPBfeX0_O8icR8d6fMipyyZ1sJk}G7>i1~i~rN&kOOpg=tPP8QMh3tt&XlPcwD8PCc z>goIpb2N&8Rge+o28KIbdCR_j9J9u|zO|)t5MUW) zRQ@9}=#90iz}Ca%=oMwO!h>Q7wu(@o1QBgPuOz)rkQ(tKBbyfK$!gbY&GJq+u}7c42>WXe^jNw})ZeUH*gnFd zE$0VBK#_Guq-fXB@Z6gpTk*0`p18Xg)Fq#ekvAQQH+f-0L8rVsA$2MtUVkbAqUD^Z?pK#nCEWoxh7G! zl29yk(TdJr!PqKD_~8Rh2qqUMzpj)z0`tKSF!`me=_FN6J=Wr>#$TINY0B~~jZ2~( zH z4jmH0$vTX&yBo6oe*V6`GwnT+lG+`#;kEtL6$(gSAYuwg0+VA%sGCAAQwqY3`*dA* z&kWbLyUM#Yr{Tr(S9$fW0q0>MlJy;$N%{}z!$bg@*bpxO9d_9ox9Ke5C_0`ER z*mtj{2|=gF_t!7#o>#A!+kPlBe4j!r3C{d+Fsa0*AJu_N#-FB{l@I9JY*G ztofzJ94&fs=V-sej@2) z(+fb@cu;f{a%;sFuH9OyTc~2#Y1!1||KMf4(xQ>_kcLJ(B@YoYTDFb>SArB|OBEtC zVXMuzXXX$iwY(%G)_YFP-&!h@$qt)hS0dUaYP@@MvaXRM=i4iJ`_+ROn;?+ym^wxhR|$AaQzgS%5L?pQot1QnA0m@J zOnj%#MI*4mVU`2})g8$B=7>redypWYTOU+Gg+odRnm@c<1HIo{*j>NpKvau$4w(GV zI+?01*E+2AE1chBht|FWl4TlWww{+J8jWLBzzBMiVxSMjUf5yibwQ(NHN=u1&=zwV z)+5dm0ds6f4}MR_iUX?}W^uCyJ{+8%HU`9q#vpOlN{lS7F^29`S=aO+1t@a$$rW5Y z!9IGC9jFhM2*S}$4{b9`{564hTijS2p<&b zFVP*%kTBzuz5VTfVPm;Qew8{u=2w~z)OQRBJHd$?0+Fur$LK~_4TWkp@NAes^wG{% z$yZoi67x?m%vOgjk!2}9|E9t?W4Wkw;<*YWtNKAxvsh?j7n=_$kmXod|i8S=k=W zjPNV)L>#~smkojzsr@dD3l4?T5Eb$3R?3P(;_)m|`vo@A!Nn*6m=ZF_8KeSLwXO=o z(EhKDksLN%+Eb`}ArI^Iq7@7tV8tt`!-kc`@Po+B4k6G43;d<}FxBu%Je~{Ct65KY z!TFAtZ3=PIr$&Po0q_ZpZX&oXNlXn71W=4NHT8|rABQJ3nhz2|P>+QtG)PfR$9kXpr!UW>$Y`NfRy`CNDJdZskeNNInUBD zidQ6bm+%0xr=z=al!pyB_UBaV{@ZMk5!R5$(Wyy}_?hT|JzIjP<%9we{kIVY#@@g= zUfECHD|9|=Kr5hCA0}Y{TaMlT5;H#IQqMshS z1BTEX5tZ1ZEF*ucj5a&XrS0zaAWcBf$o#mwiRnx1i=7Q>^`B4a3Mh1N6#q1P=9x?~ ziCZ4@#y0^pkRw1|T>ljqA9C0byM_@hc!iipVIW|omSSF=B|gDe#LWutd&*@lfHXh= zSP0Mo6L!8-KVIGOZoZ&Re*0e+Vg{;PXsw6@)bJ)bN&_emhk-a&6WRB5R9)rm46(0N zz90nmen3*pMpU#C*p{lZLp7oGRE|is7K+WRW^q5p?t*zmV@%Yffe->FstgDxG#Zr^ z{Zc;Ix_-C!P8&L*hAjdEj1ZspPo_#5SC)cSfifboCR8d#{)QL1P1Ih{)6ww7Zrwt3ix);@u&Gn-OAE&N$lH-VCC3dwh3P85fg z1wgZ<5Kw&jc_(TR^d68!xYsmueUC;(w}2IU%SjT@3(ZkU)p>7uwD%FqOiCq(oNUig zUIz#C3Z1hUM!SBgdZyt~xRL6jrAS{d-6;V6r~2S+4Adej(iD7nNYWqi4^H=6T=;Kyr!YRrRk)#%9_KQs;`3LAMP6blus)-&ZeR6X2mM#DH|*)#naq) zKuo=8$I_n^Z+@4ZnTiJGgo0y~=A!QAZ%&-@MMgq!=POEW>g3$PF%2|AA-(7Gu%GWa z!L1FrHsTs;wW{OwkD^+NiPjKzynyBgHrj4}Y{sp*`4=*~qGLRjsaB&zy&uDc-Gryj zvA!F3?BL|=l}(w>HU3?^Rbg2)e~=y(PY=If^>R^dPuy|$ z3KOjx5}8H){FDeX=AT~=EiO3af38z6`sDf&1dnT=rsW=JhdAj7llgIcwRQMYC3BdV zZRp`L)_ESG5#%P_$3j>j>G}Rq)5$I=Ob7eqj@}Y@ipBL=dS6N!jln>FAzWQFteCB#zf!a_^JhBmdhfZ1T-`P4$v&4qp^)jb%LCKv693s#S4L_^p^vjzxMK zgKwB@L)I-w^|K(u7#JHt`^Y38Py~d?f-2CCJYP_oD;QLP7%t~C%LszHH&MOo=N~Ur zJgXkX*FB%)bghpD4!bf0etGU+ubo<4cW~P1UwsT`$$tKEldWPJ*%Bk4H#?6!g2O! zY|}P_G6kZf$fj7(M?pji!#e8{n^){jMDu2Z9Is?qr^5a=XH?Qoe(L+SXLFVSyaGkK8)}cDTJKOkO8e%#Q7_!^a7x`T ztLpetu=#<1c?FM@AE}+~J%<)*&wDUIFHcSoV$Ru8DBAif4^Hu>N~B%tNI{w8R! zw^Q$rr9LR${VC{Ua15SQsn*>7J5U_)sa@zv31t%Wf5p;$0?6x`$S>H+Zrq56qvH7j zp^-uwr(T%ZkbHY&zf6(hR%2-sjlJC$A{T4Ra41gJS9Q82_uasc_IeM0{Mso%lq@v8R z{dqn#2k6|daP`WhWDd9LmJ)~i9lLY&rVL%9_REyQCy~hLZHL4mj`*{aP=hBG0Hs4a zJ0s!0wP=mDW2R|s#;o+fy7P?OCV1#j_Q}!7n>|R)W5jXI9|PYr{z=leIH6_V>-cy} zQ?&Yw-2UsH*RpNiJv7X9i~wwcy7---Z7EB>@hobMvsk!6EQb#;CM#R?apL-f;7od2 zu$@0SHY+ri@^#R*@`6>+QcW!o&*)DaIqT<>Y65l5Y!EC73G>y2qm+aV3hLdKm2F}b z01*AX0wnPZN>w-ktQI=CAMt81eY1Wg4%0Gx#?$@K{WF#sU^~rAuwH)jNx$zos;9q@ ztez(YS=QP@e_zGN|G-d~p2*S>_g13hUKFEOZZ`Ewk&G3h=3CBjQIwN?2H!r z$VOA^(j|?JEsqtMut#h=j#5)N^)66T>)f>I@05}FBl1Z78aSo@{OHh=#WdzCjb3SAf=rogLJdq#jJo|qD?f&p~s(8^ZA zg;ydi0&yAh7}{D2=XMa3E)6QV2APN^@D^gNw4%-}%f${&#-X0m0cjmouxkj?S)8sm zKpL>H&@tkYaW4RN5;R7oagw{0Qg~N={xN>i$ zOhW!5oyN+w#I2;_p0=b=+a8`P(&6!lOr}tAZ^<~kXrO^JTg8d&mNxL!ll&twQ)NP@ zteL2vTy(DjQ6lk9EUk8%REz9RS%!0?U9LROkxetpaOE3W5Y}Ad*P0O>LhXHI*+Im^ zV4oJREK-y*Rp9FtLNUlsnmo1B`j5<|1`<7Th^#S^*6yB^TJVKvh-T01#yY!Fq?T zV!;l}NFFJQdQ`BNu;3Kp=jBq5-55L5erB~E+3MHiY!?Y(-DwJ{^5`fV50H!d&H9YHskwSIwR~;tR ziJ>bnJkT}dm-c?~hB}IxN0NG)Nd9Nz3LIZ$yDJTyypur&xkn}Z6#%^%{Usp$8@%|K zs2*sBl{_g~Um^;)UPa33;~X`V+LV7sn$M5RLw-<*kA?7+w1Xr}JQcOB3L6)VQ4_ff z%o1ekuU6OG2H{&0bf0duF&iqt)w5r{$4UD`8!eP2P8D(J`Q#SUcws%BV5Ct(@lHd* zV^)WC*m=y0If0C;YC)Nf^Sx_``LSpa z70Tu-rexkYuf_cF;N(+Wu#*_#a^JtYwWkMQ^f#R#tUV9vzZhCCz2QVm?)e~yOB9DM zI4<@%Xrv^4RU?uuMdRBv{N8S+zRCGe^fqJpNA&Ek`-Keni@vGqqI`u&HISltuwPnA z>T4!N3CEzvCJKk2R6m*8n2!J_3n(Z>$nsC_UzD#6?w)ZtNL>QlM#&JL0KSl6>rDHV zUHl@kqWOW!_-o#@b+B>oHf)9rKD8QTP@k1qEb%|e2V$l88@fX?^?w$I1SMvNdT*M2 zd_6_$Yaaw%rWTUcu>^`)sh9HI`zw6koT>)q7plCfzFu3flWh z{s0H9rIp?fL?m1eb6m!NZz(8i0iCs-8fI*fiJ6*IPy5V0S`}d?rWh1w7zs6aCC0L% zi*p_s@-s@^UEM1G^x~^=VV~Y7b~+%Wh9*+1N5koh%0jRr&55{i*|oB*KU;0SKH&xZ zS`EpjCITKcb#xVpP%&%O2%wO5hQlIq9cxp!+dufInOnbN6~hP*Td_$yEp8aM%9Z7Y zPN0esw=(8#Zc>qPRe6okQ3S3Kb$a6-3MM>vm&-Qt9xbDyL->;NJxylNISmF@G0QS- z#M+T4F=AQhMwuPGhbg1urj@IH97Nosx@~ z&=ZFgd#>6EF$4stx{YHAR@c48TMSwk5V-hbmoD1t(mNa0dF*ISb7{d3HI{2*=&tns z1{#z9owUD|oCtqvDTz}n-n_-d8*GhlzW{;D#gsGY$=FC48@E{rXEp5TYKSDn7rU}p z_nvd-gZVgyZ)fyr1kw*jKCdiPzqc*7iMz!HEHrm_Wt zLp+VVaM&JqaESqYz4XuC?Ec)*-dHWY2N7Ai0gdBq^aJuM5t-j??}a4Q{Idt^ZpNb9 zH28G#D=eE3PLJhvMabL?d5P+1WmB4?(Ye{hU b00000WLlhS literal 0 HcmV?d00001 diff --git a/notes/assets/6b536e2396cd0da41aa7e26d9c1a2f9cacecdb74.png@288w_446h_progressive.webp b/notes/assets/6b536e2396cd0da41aa7e26d9c1a2f9cacecdb74.png@288w_446h_progressive.webp new file mode 100644 index 0000000000000000000000000000000000000000..15f702b82f583f2315a2a3d653414494b3d09c54 GIT binary patch literal 3624 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 XvrscTI-r*LFENy`Zx?0VssI20b|sGv literal 0 HcmV?d00001 diff --git a/notes/assets/6e1833b21e3963f9c14a547fe2771595264d532a.png@942w_411h_progressive.webp b/notes/assets/6e1833b21e3963f9c14a547fe2771595264d532a.png@942w_411h_progressive.webp new file mode 100644 index 0000000000000000000000000000000000000000..7be5bcdc62c667d74d476a2aec7a31b64b567652 GIT binary patch literal 24430 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 G0002&_J9rm literal 0 HcmV?d00001 diff --git a/notes/assets/6ea5df085af746954c716a7838370ceded6dab69.png@942w_354h_progressive.webp b/notes/assets/6ea5df085af746954c716a7838370ceded6dab69.png@942w_354h_progressive.webp new file mode 100644 index 0000000000000000000000000000000000000000..500622a16e6e80301214220811e2e04dad6cb96a GIT binary patch literal 9692 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 literal 0 HcmV?d00001 diff --git a/notes/assets/861892fefa98d4bb566d1776b724995c14f7d0f9.png@669w_737h_progressive.webp b/notes/assets/861892fefa98d4bb566d1776b724995c14f7d0f9.png@669w_737h_progressive.webp new file mode 100644 index 0000000000000000000000000000000000000000..8d36f2a12dead2fa9adebd408b559dd8e197301d GIT binary patch literal 9796 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 {_dI`h6t>@S?*Nk^xq zBeiux^fsMzAboMYO|RyJzgh@PQVOP%RAdjzWTU&m=(-~rZQLpRUJYx=(s6xrN`7or z)nm5b*`l_++pyfV=}gDwG!-1|D|`9Jqyhc*w79!;Zsz;D$27YcIzz-t?Gwdry#*^2 z_oqZ5l_|31viLUxS1QE$BzToA^q;eh@u754FTCns<~LuE=MIs%N~ zILMEKC(sVG_#991_Vpj^MIS@4Lh@WhT1QNT5elzGKi*q{NBbJ+6kWZrdJUlk3Fc?0 z`N&YJd@mohnzuDAiCT#+z-#b4A1NP><7%lHedj!<L|4ug>+-Sw^=ki&y=9M zL5MDG;-;lzS(7o1X{#79&q`TyG^2G?wm@9-Gw$DN6`YKP(;h(ZeMPl5UWySyn4R68 z6IpL&+{QB{ZEAr#xQMIVXsn2yA9hmfy8O9Qxnn+E2-ZRzPqe6na0iayWx#b>+Xk73 zm`;7>d_nK>41#nSjX0RN?|ByU+*_bwaBy!v-kz*|Ebw>n?uUkbxr_a6rd7h7NyW=C z%`JLQti$I-bi%J?m~{X<0fi_&YBztldZuy0m<_SC$LiUrm0azF&%T{fy9=2_TZ*yt zRH6Dh2cdKV&yx@|TP5O|R-*Cj6h1(_+YqaEQ}U$n!qg2E8PUl#V=G-uh3A@UENyLh z7u62Q=DeFo8Iewo7hAWu;Y9>pgtI(&;?raaPl0b!L&Yb29^k?P3dWUN z@c`D=z)M)58e&6Lyhe2*E1Va104>MYP^on#|?@aXT`;BGvsxi;i2CN$OKRh~hHqKXyL#96Y-2A=19w|Z{y>^Oa2 zXVM_U1p)MyyVyb&b{l60n+zK+UXI3(0yN)w{iz290LRFc)hZ*_*816CB)%A{>#$f0 zE61c;e6a5xVv$cAO&ho)-S9ofBAUqt@&ZgR6uCo*`& z_}@B1^?_`QKys}}E7b5fjU@X_VV12zr!CJT%n9TTdL?5B=;U|TC6TUniJtyYNOR?H ma;_iFzsHFMd3mUrwX=O?T?8>H^;pL-4lV?3$^IhgZ~PmfOIhOp literal 0 HcmV?d00001 diff --git a/notes/assets/9df3291e8cba1df403b00f4dd67ca100e0b52897.png@942w_447h_progressive.webp b/notes/assets/9df3291e8cba1df403b00f4dd67ca100e0b52897.png@942w_447h_progressive.webp new file mode 100644 index 0000000000000000000000000000000000000000..04d9e24fec2b983db27bb91b743019ba921038ba GIT binary patch literal 5926 zcmb7|Ra6{GwuYO=g1ZL^4gneolHl%v#)C_6cXto&4#C~srIA3OfuMm#gS!QnIrpA9 z>&}^3^Kk2>>S3?iwd?=CT2-YYD``hp+spWqo4(r|Mz(DY+OIndB;c5z#Nz` zQN<7YbFCcYh%E6Q$|97Smj4=@()+1eW;UISKB~S# zkc9)*_`4*J7h)6YAX|}5>?)jlMj7D`r`+!DpP9fq;vA0Ed>6W`G+}AP3(znBRsc>6 z>eSTE!Cl*L5F67DZ4vGML=)+EnknZD8F6^5^3Dp1;OsHUS=@fsgGIQYsJ?=Pm$kjp`(^T9CFAQPW#rTNuS#C!3?J0Ik^Eb}{}ZW;v@nwxB?v z6T_$*EQNsnCty}7ft;r&FRh^R7ve4b`GGO$iQ%vI%wO&_DIys3 zMpDd34zuVd=lbuBmMaF1L^we-e_^jr`IVcD((pO8riG*hui#ZMRA8LacVSkm5nQpN z?8jPN_%Y9mtxlaVL3 z*F9*P=#G^YHv?^3-*}n1Tg!YH8QpRgC0OHFTS6m;d4*=qrl5yl7GurDg)M%g_bmkC? z3i_-obA;lEnFw^=7o)FICvWkG6#{9n`B2IDl2jYKE@E@nuE-)AX zcz!XQ0{q#KYjG?SBT5MDOR>J5-aoAh_fH<FEAc|==m8WeB z~tB(Y>|3@`0)t&y!k<%JiK0BfB6tCSrgbqzv22D&Uxz#BMTb)|fDNr)f;>iYe!!?@;Z2{^6vZ&QKd1)vj-ld<*TIFP2orF&zn^ z&3o*^CXHY7Zq%y{hWu1H@W;&vK_oG8=1Zily}$gKw#w6hTz*Zyz$rI=9*qV0-(? zqHhn3A{Q{J*VtSg)6#aTcU<1Ru^cJg1F%m$8ugQQfc6$4>(JB-`(|J7#lln=`oURx zN+hoSxVc?6@}2dkQn|?W>rxaSJ8^RaF2geMceG?q9|dNquB6i8yyFLW3z>o{Wf-Uq zTZT`Hq9O!9xEzo*V$~b3;Bq<@cI2Ha9ZE_Z!@ByDr$z!$=+6(661IH4RhPUgT25Q$ zdzm<`YD5D%w+~D~ZJAn`V;3D8SOEB2vmX0aI_yTrbf4XqXPYsHXUTdcv}Xo84F}^a z26w#Lfnaw~>VcN-y%08wwr%Zve*K!yk(v&#ukNFutq%HWOIOBq0J*G1^YolkTj8LL z;!wW+bbW*D>&3Mf6KwD9u$l2;m!<*qFX>!B*yA{nkYy@x_=QAxNhjQ@^s1HT!U}0{ z(MlDgqhPGUZ7`3~MA3B6F&JV>K;Aitm}jZrd$OirRS7Fb=xesVQ3OY+2oS_qTRv3g zRKQDTz?q>I+6T#ya&bUE|G@8F%b5h^LYpC}GI{f;liJAKl!&ksQGSX>`-z-VTGe&$ z^eVFPkr_m;D>$N$&n4;(U#KgH7MD|8Dh)6e{GswUW7HA?lpzlJyu;(YVVG)u5s^Z& ziM@+B9|w|9AlT4cK;sKh_hY$vLs)?T+V#STn=v7(dpe-sxyJb;mf}xbsdcl#d8nmX zko~F_i6sMI*wVfhyCAGP*l4`1m;-DjKXzxbRvV?s4ZsPkl z#8yZtyUjQ=aG%Vqokr2YZ>*`y{HFaiPt6gntY|J#OFT=E*V|=G6;BC22de=LkJktc zePtR)us;qlKB#6tvCRCG#-_9J!hE?∈Z-yHnA-!X&@;iu>jL8q7DvzQuS|^g(oy zx486Ot=KkuIbHPr+TDyqze_+N;qsBxgvC9h-u94GYOkAO!SqvgaBwhdM68?Nn zTa@~BMR6c9$unIAG zkv#705iq5RIi}5f!iuq3xQVBk%|TgZq|B*FVRSa-^f~}(T*r7I`O6C_-mF6t z09XT!f%JGep?Cu334@|id;kFTQhc7=%I9|XrKDUwt-Z6I005lTEME)dfd{c&1HHP7 z)0LbR0sugDfFrad;iW}})z^&xGv+}!m}!plw|o;%HP++$KKAhxeevssL;%Q#(H zDImrkPy~RZV9muxS`67c<(nKl+MtKRHcdA4JF@qy*@v|VM#5w;@K8J53rCX-mf7C# zob=UnF({LAIFyvK`)(UI=A|cG7EUZ6sC}Bfwkwg$PmPV8%-s;w*L3NS4Pgg5Q9a&f zo^OT@ouJ5{hUmt^^-(l%2WEP8&NU;K(DzaA4;WOL9#HlhtJPGBb!>|U$OkJ8m)%vW z6b=ak&q+llU+MMubc~N=(N<#HVDfSm$PC})iUj6UMkIkNm0!EapJ=(vgxTp37k5!I z>4IEv1=!SY7=&&U6$QUVF1fgoy<(fWsgSEqP>NhU19IJL1(`x7^pEhbk0*bBcsKcx zy{5bRn^B}?WePm>oLhp!S$#Lb+uO&DF%MnkK6kFQ{~?o~kk_yNagBq0ZDDBucFXHr zpZ!Rr`ownpEq*@pK4@O`BxDYaIBt4g@vIy|^04kOc#=OZJM zM_jL&6q~G}KlZq?P3gY)xu!F}+Co8c3)2fJwH%?r5A-9cxO%A`QC)a{8UN4=mWWi| zY9*WS`=xEMYGA8nYhu*4|GeQF0a>t+^6E4d0LD1;IE`+we$hm{mKS z%dhDv@REZAH%U)ijhg&k!#4v;OwIeFi@#i&nc$x< zi!Nd&$i^$VlT~<%1zbvLtYAA-et0@7d>*(faGP>NCe43{bh=NM9gwYdO&nC zI-ycZK-4B;+FrJk8>R2DTd?O#1b^3B0$rE1r!DPjSZickMBN_FfB$?^iPaT}ba9J^ zh3(U$_Y_*66dH>+>VZ>tVYCk?G}~m;flnNq9ng5_V6sV+B=_mr2|B2Ic-Vk;kThEw z%N8P|R~V{N0U72u)f6I^TJDthA|92$A2!0N{yH&|D`+3=Yv(^|ftRN?U31~x1 z-KSB4Y+9VLmW5imfII)BFP3p5{?Z+LylKPTT`|V1Nb?#8LF&Fb7W0bAK!wH?528Pl z%IA@v-rk^EoJ^RoZ>hTA;y~Ye#ceU+FHjRrFUvdK(+TQp-LAKDgic>LmpZ`SEteXe zXTw7K*v1~~raf>Ibholf&MM$Srn^%iJZ_yqAmdSI5CxI9dL`AIzDki`d@EkY9c33) zLSY6Pl@pWSk(3!*GK#s^SL+0KoxnG?15MV(=eAwREem@fZta(?m@3miBIk4V+=$2` zc=Ga9Gvyl>UM_{~^WM3SyZc`-pm42R)|tVOp$mSZ1PD4J0zbNiHvPl0{BXZtSGB=Z z_$drdn#Fp2BThiC??j2GnLrnF0;gg|?3;`(+3NbM%m9!Ytr}`l!Z&VX!6B-^xpm38 zEVij4vP}|Lpk$1g3(!^1;a9gQG^-tdpixmcW2Y0pFGvYRf*}piaKh`qMlvS!^sBAN z-pgsaYef;ClW29igpfP8-_^pGALEq%j8y@pHaDB>i&uL*8UY<^c<6gxN)f51mD}T( zk>dWW!A3(dlFJzcQ90@zQ%?j&L{5@lDI7gf7fcgZN0WR^9D!WZNxA!ZjXdF9*|oab zR)jD?0d=!oq@o$W^OJ%yXSVb`UQ!w6z*3246XND`DWWxm2PQ;Q^=BRtui*4lmRZd6 z3L=4~#2WF4Tus!)*%OcjIi`#h;p&fX4lU>0tr1N_86)*kue~4yGAKd|MZV1XfvL-* zj$O>hREHV?l>q?kY}%J~`ZcT`#6NC1aS(ib;LG5M>U8Yy5IH2BLna1MVRp!n-!Y)U z&e(8Npj)i(oE%BH_$%Ys!6BcXbGKFmvTxYQriU?udU02sZ;3`H?(t&N?{~m{eNSnj z4=S2@IrDlAO@%+s7y^f?JxAZbt>!igE9P+ftvzk}`IYzCa}9RqamX{C-2Z4I{cG%g5MEy^xa`ThCi5kVX9-%Mzo-v3;c zp*N>2RkbSmR&r&4^Dv%t3uxIr58VBVrJ)jhBzB322VSl~)fZ!B7k4y%5}yg9bm!Qu z+tr^=fNSV8)Gk}zvNCmtJ#=t-B?~v;O^bDWEOSP@W+oVmU$mZ~~)X%L0>%i)Gi3 z0t@W2P<5c3d~=ImZqA~4ku(%8J^fgjubaP#RE`ZkIW3C-5GFhmP>ou}-=LeT@40{6 zCMX6^sLpm74NBauLRy~jG#6~DsEqLLA34H%b;14)u{t1wDPL9r!m<+pgMlMA#`>q? zx8Ei+Q*+#-bC@OloXz9-;fSNuwN)W{dXS(uMdb<7pmK+yb9)s82?S30O3Uugn!k^> zG(Mnw5>VnBRXm9LN=kw1ePt&s2Z>dXpkHI$E++l??V1u2qci{|F}bK_c_tY~r;d)E z)<=pRT8CF7Kh`DiA%lHAskkx}HV%u#f&?D8uCW;#WMZUOpDeYFH~oTdNHS+NZY4!2 zjOhF&VhAYn9sJ?f7R-nDOC*E^-@sNJNB#RzVZx7zl&+-!Sno5SVU=t8R+Gq_x(`YQ zwUa))eD(aA8>b^H z7<88W?&o+Naf{4z3NBKABoUhV&=nkEVg`TYWto8&fwZT?WhuN$*bQS zf-dKq`|{ngb$lmSj+;EWY=<1=DE17IuK39q3yA9gxU($MUm7;A-AEAb!$ki42m$;9 D4IpyH literal 0 HcmV?d00001 diff --git a/notes/assets/b83caffa0941d9b3c929e09be07098d5e8563960.png@906w_1031h_progressive.webp b/notes/assets/b83caffa0941d9b3c929e09be07098d5e8563960.png@906w_1031h_progressive.webp new file mode 100644 index 0000000000000000000000000000000000000000..cac6cd8a706c7f23f9ac5952f2ceabea07d98439 GIT binary patch literal 30674 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


d!cUxVYAu6No39e7P+b7>wFPHYOQ@3B zRf;n1dzViJVemvxvfX3!mtt#E6NIlGa$bPWc(MXtj$YmH<(0_L@N2piL__oXLAQ?m z(v9kD?<(_FzW67K!oW8RY?vKY_+MlM^QDLg+?f z7SuHM2|9Siu(<AxfFSBZW79-rlqpJXwa+ z&uIsBwKSJ zkA!EEgCr|jr|94I;~;8|$F6wQO$5xrhPgt>PaVHKPfNSQ0O0~wd_*?S20)3OqMIUK zA$5)}aP8BL#6qH!35r?GU%0rou(#vDicj)I8P$qVIAim?zFd3sOm8m|>hqPrrJzr4 z4L`|Arfpp_uTE_I|Fp$G8a{tX`F&ec#6TscqQ@C)S^^vq5bdQun~6DMlKMoKQ$|*+ z*+JW!Nl3Ha$afTGZo_geP6MEt`p3D%tD++6X(RIVCgU;EdcY4w#scmYBx>?H-t1=` z5|VFnfai}JaQ**@5UNt#Lobxc94M95h^-8~+U!M--YM~Bq?{|W8qtPrK%6iN?$eRbUpeJHOYuRa4L^V_ z9svgkB8r@!+WT3Hwc`oN1MWCy?HPpUs;gP@#g=kzHfiWB!&-_Lgm zV2{BfITlvO0&>97_L2v$<4NU;Gf*n!DwNv`thoVN(s!$fjs8Cb-!U_6kO;o@zQWA7 z`;q5Oucm0&B0k~gi;V^v@d`NhH-Im;nKMZDkcJ&m4TJjkP`xLuv!SK#B)cM7r%(H5 zbf#5^v*uvSf6;tG!%hQSCKpqczEsbhzEpDoiAQyMi zo`i4KH2dYPV(E1l86656%WKl;gdZ=Hh^`_~rUE-hQ)h&iAioU`Vmo981+d17WXB1p zr}fHNYm~70edFMsA9-5^a+XT>@KjSp{HW*ctLN=AST{L$ss+{O0+A>3kiu4LBi67G zJHiM4s=_)g4`l1x{$s|d-Jr?Cra9>!Kd(`hJ*YJ^En z-_G(TS93Iq}g*tM8TCdF8MKvOmp{!|7kOyixXR~gYxuUq7$8ZE|yN=1~9 zxtW~RSUQcYiO>M#B`8qk&nUt_=hG%Ab3o&13=y{ms$kdmIbS93rj`rWk7@vEi^m8j zR!FL!-*Ti4Vb-6kL0hpeWadO*RuxVuQ%5H_U{32jsCp^UWL2%eTRwMYYR?rbNVz=n zIM?Q9tV>pem7FiuM~wIID!@nbO;4La)wsKMSceYHm_vhj?B8*mT$a(CZeq)*e+eIz zp#sWfq9OZ)jqpPIZmAFn`_c5674J9?JdJ54We>Cw&yX0Afn3F7U9poK;=Jxf%#k|Q zBE~Ly0&cCq+i4{nVEUBQy`^I-x4i|tVS64JU2R%PJ_wPG1g{7l|0`gmK+!Jx-FY2z zVd74w*h)|6Xq{p#1U{5*%XE{?87UNcuC76G*X-Z`cd*4Pu)h6_+w z|7>CXPd;zDw&E%^Si+reYh~3IL-)d z_9!dkw61XB55{p;_WtXJ_j}Fx_aYfxjF5Y$VI8hA>v|1GyKYJ=$YiOdm}IU1=wwc1 zKae-?`Ku!fDlcb(@33-9*#Pq#-}XI8>$Eu&>hCW+b%PI5BJI*Y9jcEme9C@Fw~5ty z9ZQjHAnpf)fr9E4egT>w>ZzEc>ZoEPATHw6!fpQg`r!s-(Z$1FUh68d|8cb%%KEI38sM!%qcYnLbH#?0*o@T5)*)9sbd zzI*Tn+tz$yBO9J`JripM{a%-%z!lTbk(h|yFM3_SCE5`BJ%;OM zj{;?h)nfo}P}j=UC>j2AySADz;|R+HUK&8sQMZ6tj(m4dxR!s)k9D}QQCVt0(4EBa z0{1VVU-$#0nJ{}~2tC4!Fm+4;#3s^UWRv&F!q}G{;uAB+anQ2@g|1*Hp7osKM(ZSF z`cArS?B9L97r?9*2ECnuhUc~OBQ7bw>%DQY2IBGMeyU@1Jidqf5E>l}_A0z8_Hs!z z4sKkUqI%O5W4~eir%?^0UIw0NqhO$iu(rk`{REpG|9@4p46QrVl&=^mv6PF*JUS$5 zOrF_f5tjXhd)L$N=32$jL)WlvmAecEW86xm;d&wR5;N^ZC&N_b!^z&-St%x@juR{S zy_PAUbj8Mt2d{uzU0;%_Yj-NtF=tmjg9gN~DvLqBh}$A)?K>G8My`Z#qqg-SqTW8( z1NhwkxgnRzcA-F^fupx^X@yk$G zz1vl^PdVNwUF(k^f8pX~!QE?>;Jnb&@oClfg^Ul@|Bm2{us=a<>uE^*mB@9z9dF1v zN9S`ZYG$gm-Dx}z^)WaXRsD_xDRhWik8s_S^WG#JoYF8bKW*z1Qi0qEcYC`?sN00*Va6{|M&tj)R_%_Z>Z zP8owT<&F7za`bd%stO;1enAve!5`;Z+G8&rZB{$cg9y*v$ggl5z1X_nePPUGmPc~x z<3xg?RVH@bdVwizN+l1IrC$xX%}vGzUfUcHaFIeYjxwe};8sMe@tS$wOh(WRkujU&;H9Hg zm`)HSNH}*LBIQ%iO0S`j@)`1QGcDsN76hf_9iHtg1>s5v&Bw96GQuxgnxWt`bPzM} zQ}yvFC4=_NU)5}h9<_i$;S626(QbYM%}F3S!9ppdQ_ZIPh_i$|MdsDW@nC|v)`{=H z1WYlmKpX}Y`uWGB67R@zWpJ$*^*P>iAfamdIXO&V+5AH7-U(i`EZ%~c%Tk=XlA88x zekPzgs%}J_HT5Hw2aIQ&-mt)2O&d}C7MOZ&9K2r)|7>bq@JV<(rpRu;7MtWHN>f1#4{HdoDy#f%iM|nlp)Uc`pf_7kpB4GD>}JHBMRaOK8{}1y30C$ihv?i!V~fZ75)QA)mYhxbx|g&Of|_0{Ub( zEy(g_RWlMu@vcVpCyMbxUbXHjr+Eg=vzM@Bb>ebNw`KsMt`S5bwiK^ z>if+*nB#*!rOLBocQTB^*azJrkQJ4ZXSKoGv2vval}N2M-qT!>2(~?R%p52*T^B=N zIY|f|4a4SU(8p|3c`{klUg=Wq8g}K~dzJLM3W`k<2S0ftwGRq){^~`yxTADqA-Dtb z>{^>fJgN86n4KeC?5093l}i>vbD1CKJ3wjcfZo=eEh|;zXbd}WDa4)5S<^bX6@g+B zu*Zi9Zo+HcfwIKIhYau_!zb#P9A=?0af(S@7mUZyJ$b57!HzkZ^;$sD5|P_9X>lNV z$e?^c6KyUYC*SM&itKLD)is?r!5Fw*D8UL5o)O8r}R4!dy{18!Sld{Hd(9*XsxOv+Jsn{9hdfCXI+FDP%BYLFG=@{%FITk42wrcJ! z#v9n{N@s6a(N4uN4cC3f<5jqn5Su9H)|NyyM9mb0vvAca1q2^H)hsRsio>bN*gd1A zb&R(@z<70J6EX)OD`}8Z2>R&GRK!ZszOy`}Jt~48>X~9W8+rDmg6W)_c~Uw@VQgd9 ziFFy#CR5KbUYUglHjcZ*ThNT#_Nos<`1_IxReaJ^JAVJ_Bjy$VhapOD9+*a*WE>xQ zv%?Y~eo&TL*4mbgk+U$H7iY^>wZ4`$H2(Mj%k#h``%`tp1mrcvXR#_WsF`)!RN!ul z1I9l<*h0vTW796==I{1d4ie!~*hsDHGxnx7C;UmW#Hg~MRMX}iwt{1oEY&F*0fF4= zznMuvZqgbX5oMM!2JIqQ&@ca|^xyd2pi5{fh*c4X%pzvQ%DLiIS=o0d)sbe`ms_$b-gNCG!uYR@Dno0rK>5PjM>$5BB`_8ZLIjBJX$g|#F@s6Yp2 z3@#W)$vySjuSjC=nFX;p%Hr~l6j4b)D_ypMq;NRqnBHgLNQYm=9GGp?H~SQ-fv+)G z9m6wncK@Q>(_bv?_krpcCfxvThrwRdn?4Q?>-#iz$|ek3p{) zBC?5ZZKCdq$C56k*kuCff*;zX;W**Xi2ZQaT9@$9OOOWsS^Mx>H$$nA#Q1oS^uG{q z%4Uiea+*Gh_S90^4}J!mtbiL2d5@6&{4rH z!d*k3{s0rkFCm!@ysdg=TUh>kAnFbyL*~;4bxs_>5t3X=6l9Q}gmAyCtOh}Rt% z!a~cX^Ff~u9D>U!G`6T~+-`-0il4JSl7xxnECUO^cN4Ntu<5b%0X~8hU#JziMhYBip z$IBgGAmA)2#X8Q`XKjamF(KpjBtf{W$gca+1YR$c##(<{Bln03imnI8S;|KLA~6fr zc$J_6X}K?@->tAIQs2UBHA4)e%Orm0puCs%S4MmI$4TVN zd2a5eP#0Xr?wm%_u2QWbA;H3|>KMpq#wl;Ij9V+?m_%Ytu`YA?KQ2n%t?>x$U02Ho z_5)MN`~O!tB|@1i4-6^8fK_NktnN&97vNE3y#q~Ky3lWfHLX6>7#*CT=4^W)CR(a> zf>g1ZnsSthM2j0p*qg>Uq~=)^MFo2!lBjB zto2D9=9D;`x`AoEKIGQhOT~J2=R_8-E{%WGW0bUf4@UgK6Y~TCQ~2dywrcup|`zBsUcR-n2;|Ly+M!@EtSvW&vTUpPR~~ zF$0}sQ~qd#{f0_Dpt8)=@?(~evpFsWT*9W*yL>qTl)SSw` z*ifFKjHb>aWLg{@&l=j09`)ktv#izES&*9T5~55W~S7SOYRA&EvZn4 zf#sg89Xi}E1*x9DFyzW|L~c;c519AGjV`x-(P!ndZ@3l(0WAA&$t zwA{5KG46VNNGl7Ar|UE=5Ywvq&51F*U?8Pu&dU@Pp{Qbtyp{uWs#fgJO#~K)G%IJn zvt^;Vo^k^pYcU{V6@d&Cv9ZWP^Q-x_a2AE^=*{G&cs6F822L1wG%8&2!AqsuaCvlp0 zGlg9hYwhH-=h(XCl&4m}!%{!1TGxh=onu0JGu64Sy|YCXIzGVPNnWiU%UBjDryK1I zxrbs?>@S=m@2Pm^3uGu7;glAMMx440jwJ`3%pkA}LR4(+$yFWU1dT^gI5ycveF$Bz zp@ibNP~8JDTTv(`<9y|YU-9o`_oTCW=*#TUXpbBD_}{V?;2n+T0zbON%)y=wyYm7I z3iA9fx^qe=j*>&1@F@gxy{X&JS4)=$9YrO^e=dJnT(ejZHkO(iX0N7zeo6})^G=wJ!H`>FN2L*w zy;9{t2WhzXQ;3)AluhLAATBrnx3Kf1Rs#!j!H{g?KpSeVMVsi`a=5GQQ7-RU zPF0}1nwm(`BMCqzA>7@$s?Jv`a?U$APe|Y z*U~HaXw_tDoDItRrSSCs@48dK?0{Om&bFM^&l~};g@aMHz9t#Y83EoMLPZW?x`sEF zaY7^cQ2L7d)=~4B{Qg5SvvSrun~6<&>2*U~ZD}UdOqPRLo4g?ohgNfC_Yh5{v|iVn zkAUmwk-RACABqD>0Tp9hF|?@IS|TFn9a84XLRo^#~y)r+S#DYL*83pJyk3VYH0DnJ^70$Ng_I>kwOAipEGb$%X3US-YnW>o62-;2#5AJW7@g z@WR7H@s@O$ccKa4Em)e!nn{8s;Hoaf;|T(AlO=W-8CJl;N@jqbi=s~WzJ2|kJQ;p+ zv>6^$9LeJ+b;ILfawXFtUWHE3!;LwMhFK`_m-1)iQs^zA7ZE1cd!Fmz!O*NF(2}~_ z;qh!2T4T+;KP>cXk^)P<01wk#R}jGcc9B~ZZ3dtztX?U;|AgP_ELL0$wt8U09f7}H z02c?KjE}&DjwUm}NWP&^T?mQWy}_I4P6gC#%B)YZ8Krxw(Z;E^fmhq4H+W(wc&_g- zA=VZ*^cJHul!z2jw?2Sw`oW0rS`Oyl4Q=+SFnQeiRZnlUrnoql-NJ>WD7A_;4mmM4 zk5GZInF>|fQQ0wjC_Kw@B-a~O3U`i9Acn1JaG<-W5xmY;xu^j`&_+8Z6Au0gNnH(g z2sha|_(7-eWEwdK!nwRfpc+lOG{`;ZzmQo;r{UR_DTjH_#CwWoPR^n(d0ru`Q83Qg zV)z2^lYz-UleMGzff+b338X{=OXGmnH}|laxP?=7aZ9LG5y%1?-KZMTTSnpZMf?>@ zSP%FHj@5!Ma#gcwK87`D7qxY0D&>mQ$N;(on4Q#w@G|nWr@SU4!q+F%Ig~f=_RCWQ4>lyBJF|Yr0GIB5k;DNb=(+GMAQ@x8ILHd1S^lu9 z(Q)^LFVSW-o24XM>3bG=0(GoW+N9;B9H)iShaGs59f`pm&R0!{YJRE4_Bu&lbP_$z z(5Pyrqo2vW+nRnqak91M-CP2C2wj{bZ#u0RP_^PQgq{Es!jI->z`OOX{pOf(J&z^d zQc1ZTUF65lqmEu!tLQE8swiDdk0Y+&?@)O2q&A3p3vitHIrq?U% zb}>a5QzN9{i}NGQ2wXC>D72ZkE?#9&3cvr?1V+5gl}hh=z)dp2Sp!mX?+b;(HFV}O zQ1m=CTvrJD`%MAlQ^T^82oOM_-*HF}2&h0|X33byHa`i)d4h($lDT7zL27ePE88dEiHH_5JHs50XoPatWs!WcqN>K zDFyMAi9M2hgnbc~>j)9Cp&fC&R}t+zt7)&m!$-KcOmOZ(8xyCuc=+-!zu(MV%e|fR zPAX0mLH!xh0i?uV!Te6q|FVbey{Q}XaTWPEUH&7MYZXeGoExOBh15P`3KXSg0>60P z?~;;N=yY9V%!kj`2kHowUWC-jngTb6k&gyuVEntE_y?W`*aJq$W%E_<$iQO3z^ynS z-{RKOw6$a(Blfr9bbfskDm|j;gFib#jCr7dmrtfkYVB}34cr9oABj?OI?*enFIW*dJWs>OU5RO-43Kk3+ zd&%Z63Cfexto@E9`5pS9oFjkp=OHD1L5`Fp8<$JKP%=B7LrT5#C+h))XAPp^BSy%Q z#UM-oLh1~7{?2mVV-`EnSq})IbBOOSdQ@lKlJ`x=$GvE=dS+7h*bqrkxJYYrHxgTqb%6&J-GY=LLpyz+{!`6{oQX@!Jl2><*)N-J*0ep z4MuYW%4Am6q-7}Q&vMKA1et9_wYtuZhr7Y&POlAPFE9-hA7T0?N^~`#MyJjtt@;IS|MN z%A-M&4E(GoJ>-*vf_jmx5bidjI~$f@(y_h&+LI=sd?fFZ@ZA!^n4c?#XQLl0Xw70V zD=hv`<-CL?h5rJjYvlCPt!s~MBbJ4D^*&2q=_C|s57x_t+t0Z~DDF*jZhxglJ{g81 z(%&VHvwE0e+y@U#a+JY0`Y!jb)mF?pp1gEwb~`DWlsZS-Zs0+1(O<-w$hWixZCNFZBB+M^ParxX=m)=5Y z^CDLg%!})z<7!g+ZAaF_tjiU9OF21Zi+Ge?bmZNlXT5}|XZJsac~g3-7^p<0ky=oH z#b^I2>q(Ob929KSUUE8>te$kBZ2Wos&hwUblI;LFsbq7PV2R2#toyGKW*8n}SiYxR z%j$<3Bvv>1!ti6T!5&+0N2dghebhHSgcxlr8K~w|)X$WZf<%}~)E^1=&gBmwfQk9H z6qq&F)NRZ9RwpVpc-&C~atv*q@5F?=L53XVR#FXUeW5LfDdGr&AMO*^Q^7HQ-UwAP z9qm^#=~Y@%+?d0JmBL5^dH|E6aN74Ef^!InPEz*kq6_a;u8zy6Q1Oo*af+pF4smai zSlN*v?SPXw+}>dv)Qb3oQqpY5vA2#5(IC-|C0a`^kK+X^cV?;vKwmYBabJd5f8U_5 zr8Z_+9nj(35Y;_5?q%xyZoRLKVrd%1pqk-y?~TKO>_{H~LY$S#zf9>ph6Op{toJne ztU#11T?Q|aD|tbE9MdmE=0sdRx8n+N;|Fa6SKv(%Zq8HSIRxI(!^4eAjEFWf*WN0q zTo~thsQu6DGk9$~Cs13BkLEN8(Hj)a*Vy6JJ#sX#`^;e_j{Z075w2m5W&d2*=<1~1 z+}9#s_kR5luXVF8@3K^#Td%Zkgni@k_^USRUDMI{?EE*`C2{%Qw;tN)v>r7&ksB8g z+E#K~Tfsj0Q3hV#G8S`T2W6s5)-~H&oT8qSLGVpkq_wSy6ik>$FW@Um6mVtG&}(HIbC9 zs{k~)sSovA+IfRilF(h*c}9HiL%9;Vr%l7#?c05+B}tK_2TjIERo0CwPZ9+_`UB^E zC;@LbH{wMB!|u^2Dz|5lZXdz)Yk&<4IhUklvkf86(p#``8WDSgj7>hZ==87-LB*jP#f zSDe=^(tmdM@w@lMH}9$^&Zfh@kYH*KzS(m>%kpgbVE~CUedb99Xm{n2TXqi&@j507t z&H42{ox?)u-{ui$`pN(Mvz;iJ)-$YXSP~cQNSmck?d|@~;wyVj0|b*u^%|*#LVvGs z0%ty&wA?+4|7Ka*If zl%M9K|HJ#io`<~mMYGDhnh*t`hTnD&GzbF}3Y}UjelMe6j6y!#Vg0WvD86TD3u%+X zSd6sm%;G3e0Ua-euUhC}z{?NtTzN#r7B9?2@I33-i;o&BuQetA2<4=XdY%w>0Lw`k1`7vys>a4{@_fnGrn6**CmUKsYgax z-grOoaqGctjqHiB2jRt7=eBis74aM2kf^0mMLzSEH zT~!deA~m=DpoW*CwPux?qaeh@qOLsK+h-C#4PKYQYjy&%qwLmP zz;}PFRP|=Ywe(!uACPr{y6hS-@P}W-?tFu<(F`vs`<5xpfh;c&9zEp9Oi0&63<i)NB3X&RW|N#QAGLd=S80yZ4TG*wyu-Bje*7h#Iv4jnXvnELO6X!qL} zuoLQUsF%etMTS~$oVbTc5hl#D&; zJws8Cw&Onh)=z?4y$lPl-~dZW7Ja(=M>~QWCUnX*t0ZxvFd;Z;=!-AoB%B3MWGe07 zOuL@LXU}VN=mt@Fek6Uey{{wut3%DCJ2N0&!%k5%fvE|YEAA{!t~7hY<{M)4mNV*F zg(UWqAaY%+4t_Xs1Kqd{;+};863eqK=Oei#@(nX_Ujc%9683Co8ZgpZXmaRVPJi;E zu7hvTkIyC$3;vjhn{?5EpGL{r9wmlJ)||?B%@c>DL73OHG1~N+0J_%A4bdBXM^vm1 zAAey->}=6#+4!cAlHr75&TLLRm8B&DsJIf0vI82G$_Q&Yp9|NWQf4R&1CwkFxp$&o zY=K`syO;}>!TncW*hdrCWG-&$$sPy!iVR3Y`nKitt{{;FnmNu)!2^gR&Z4v(vXJD> zsO1ZLQ_1L3VAXW~yaSc{J6L`myz}h{0^*_nflu&9Y9&?;C)RsNg;c_^cHSfbt~XK0 zivu&Du9c{&+de90V!B3-FE-imFzx7GMHlp1qy1@9^l{VKNjKTjAAULY=1_6@=^%o3 z&D0KqQmdJk#fy@-PZQ20MM@|8jz>?~1fnT%nZ2dTwgs4g@`0H`pg_5kvUpxS& zUN!tI4(JH~)Wv9`s)hJ6%rzwg5O4WQXXcmL4O2ZH*)6Us}(5)o*lIol}-+&<9Xw8j9ZUyqn%yz zUmsTYMu^k;E^rO+&k_Eo6zvTC)oGh{taazGQ!?Aw6x#`I5A>kMw`s&xwuVeAqj=)k z39pFY4@BavbILXM8q%vR=BzHiTjmGoR~EmHy^XT7g`Mu2VRIKK0~XK?+jRP>#;b3U zlx1fO;KmwrO@3(GL-8C5LS}&0*{B^2F{bCC%?DSiyjmMmq{QNAA!WCGZ{(y^SkZ4B zfq8Z9_h~x3jer&x3uK?kd&AVmD8L@HzBxA$dWp{~k(`a?x+GcvGO$LPy2PNk-9`E| zMusAQDkE-*5UQgp<)zqDR3HJ9DR`t72Uiu6)Kv?XQ;w|_{`nHoc5@c-c&C@Vt)e?M zKrI+)R&X|2t0maun;Kiix^K1k|ISGc!u{vUxGSO$L3qkEWAMGCdDZyfTeiH<4~VHI zWFQ3N_h*1GT}_+qF8DgLCr$(Pf#>YwZ1i@ch&eqD@hwXC zRmGA7Gr7cUB;ieq7R_}6TyC4+a1pLP4WT4r7b3Erp>lhFv26UzX<9hdbV&dp+`#x; zwtzrC;nsPbIudet-_LkPjUPPJ2bUoKeA)imCu^Ba*mY4wZNCq?Y{{8J1n8OBApClj}te|g51 zUTDtn>cg8I^@Ea3A0*)hi!IzX=$sBrMUcOTIEp)Aj2}?J?UOuz4#Y1T=q)Tb1PSrnZ&fs8*neY2jJ z1i0Q=WIQOeV28u*`nG!49z`|stQ{uRMYt;`tB(riLiOzn#5CAQY-m0 z^c}@pRlnq8jl6wu{Q`|x8Y?j`^s~FbAb?!Tu9)iiIbk^f#MHl%BNH8crM_2}CiJya zF`erJYS*?0@I{(nak4RpvGFZ2IK~g2I8fVv(mMH5`J6AOr1_8yrF}&vig^(y{(8Ut zdMoKk=x+p8zhln7o?wb(5Ea;tq33f|a1;$PyZXT#quhK_ZEXOjGzn=Q#s{@gvczD- zrX0T=m;P?KL{;7p-5d!#r|&p>SJCn=TuvFT$ea0py zc`HU0r=m4J&iR9D;SgBhk?w>ESI(qq;STF6YKZEWlO~8kUR7?gi?Gk z7@11rilHQWxoUH8DMks~E#y zt#4tQ3S%A)oVlQ~x#|exw>7s+8;sa#+=Z7PtWdMBrPKPXqWqlM*L2u5`XF6U0j96obR7thcWNN7G4N2YG}UZDvVpyX-6@k~5#arZ zoH|hm1WBdJZ0&+Yud?nD?mZh(+AZy}_5l-1_>My~YE$^BzJV>ei)S&Y*Y1_h`aAoY z+WANJ4^@ok;pyImAhX|r?Ck9p@>0ZWwcSHk;cw${5p{e%L)7Vnv3l7%^&6 zKRa+iqVwvx#ybKTTH`TMXJqrJn2Kr>3;`Jr)G>@EO8H$5-%u#(vmUD|w;rz){id*{ zd&5j8SIag3w6EezBDKFD%MC)lg$X2&E!X&y^T7z7Yk%E}qp2Ik~i%*o0+95CiL zq}|_!E@Pb}C-5UBE+SDLh~XA!;rAn$Kdvc=?f2MBDU=Ovj+X;KNgM(G+PW+hZ0ku} zG(H)L5X=NIDgq(m=;Wu#7G=Ta)BE0?7_9je8{-dMqP)9$QY!~sK8;Od@%Wl|xETf$ z-W!r89+n{DV@55#vJIC!FO?$K!1eGHpvtQR2oH?Z8XBJeSPIayHecB?dmyXC8~+vT(e>hZC@q7EUx-!$HWz) zc|7P*Zrz>C;Kx=hKV`S5`Q7#!IsEQ$&F|kA{)u22{S0x~uNl@oC5fJi2@VJs5Ms@k zgbGSG4~F#Fa^up}TE_pWz$y*t-8a5bn$}E+WRCzKIiX=&l56AK8VmE0Op_L*&43)? z<|XOx8qSe;gSo9stxo*OQ39^#SVIpjK2YeG*ui33e{ui2aE`60BS;3cTHE->4>;Yc zYA?3?{!>xYAp3tIj~iA`fgg2*Vf?nIncaNieTg@?Hp0Jmhr`$-SGpjcxO7F4Tn@RQ zPCUV{{kDfd6cRj@&wDwBi^E%M7U7?KwMq^3LChP${B6V1wX)C>es)qeW-+Mtms8sv zey!G-+jy(>K*%bRVuJ_+sX`s?*y{^t5r~9ujUpyM%BjCqM;4?CW8L+pi7t%{7_c41 zJ{a@8&|Iy5v@iyyBR~9S}IJ{E|pYMOR(X+fB2DR@7u)?008I|8MaHI1ixW{ z%SnGFTXYEy&8%6^RpfIEV214M#nP6DC=K*fiJStNP)iS4NH3GG-i>r>0j=8^U83tY zWZTu>2*_4d{JyITnyqsZj1~E3hJim(6Ug-1d&%yOKL_1l6fuQp*F)PkD#U*>0NX@P zomL&z()XT52nEbE55n$x^b^pra+sP&{g5Z@T8j80Sm)g=OL4eJ#$lrhaX+imK+)>$OGx#!7L z{l%GX$GK|cTsY);y(W1?b^tEP?au)?TK0iC2Y0M~R_6{-i91dmJc=zw5DyU}CrYOi zB)A5Wy1r3y?7`|@q#In3QbNAw5`EW47nPS$rmwRIQpOuUnGV4bQ_#8I;`862xpQZ2 z>ZsH!p7au*9=FC=`HFW9DJN5Ku+PB*A0^#d@_?cVIt1KQ-i>)u-07a&ZbY{3k{`V>9Gwc5KNqo6h*<8tIA8aQaH) z!tgNb`IjR9fNQr`8vaJW*H^ikJgkpUG#_qWKY8My1S%*Kd?!mg5L)$BWd|cxaiGa= z-RO0B+x2o_3TtN+N~wqRqLdp(2>r=!i)$`|A+DBSKk$(wtS*RFvN{m8y?=miJ|Js> zyOjSG-7_)E+$&!+(w_JTF8p&1I|H33@23?t!9@{+G6rmq2&R+-*D7M|bx@U(+G;ML?rZaubFz|WHs*VxKJ7DGC z>D~_P3zOj~Gd5cm8X882nALG9yIs%9b)k!Ammnl5F-p&g zG&a2XQesB_7iFCynQ^r636KSvQtEj}>9K-G-0|mFvh{C*fD`;3%v!wng=?W8A=d4V z4+-Qq^}((tp{cvbRL8|)nyMs)pomroBpkcSK8Y;|^#;Td41T#Nx3#C&u~kH;Vh_@8DxfNwRLK^3V#af;7V0a;w8P0jP?N8lxWhQlcL#c>zM{ClJ`{$Q6pTHr-&Ckz0c_>cv6NQ9 zZM8~*%~$V0F_ElIEfT9sUU`}WN11>5))L$hR9G|dD(Q4Q@=Lbr6mX$*uyI4IISslU z;u}_j-!ekJ@NJP})4o_GjU%1_00hDTN#_K%SAnJm^(No%YSR&uoF=iV^WK5Aizxoe z8S*~nHqK(QO}e6p?o^C&1641!9GtkHDpf2WG^yY5{e|g!0>pH$`Ft-b;g^CE5`9=x zkZym7$$e_vyg%O;rZb2ch?&`FbfLQA?SOwup8~bVCO`%-#yw^tbZI4ouH3;(4J!=;xg&1GG?$_di*!Gu4m$zey zl2SLD+ND30Pyj#m-6kkLE2II7x~2`W5AMIYB2-ao!zD*QEDI+0wu}~AeVN5r&>5~?OC#TTOk9$>InR}Ft*$FVqk0n&=Se9jb2@QY?bH{& zdW>3?A{no#iN96!B5gT4*I_cLl`F<;rlC(B^-*Dc@#z5ayK3Juy}WKffgj>K$MbVz zE{W-%0M3=Kq6Flf>ZxMy4NEnfK;~hjXVcJ#*?6f>~k#hxtto42qzzoCWnLw z31o&4>!u=IsA*+(mXX7Xv!j}nX(pImUw)rSMh4xogSza@?^k!XFFBOu)CR4Ksbr;N5 zF@{ac-EXwo>-u^C-3=bQIPKEicXyIb$+Se)AzqxZ zjz_09lB;PVP=%CBQk`ASOx8=T3E9~VyH~NrOos;6l5amAC8f$cSukS{Q&O(M6G;R^ z$VLh)VXy zt{w72wTs*TRMbG%8X*G7{MStFV)fC&xI{b!2}% z0~};2^K-Vf(ewKa^jSo@2@2YZ0U3^-Ei+S(8Y+rC34^xTagenC(UmUqdvX|w^ZzJ8 zHnSr0rLA!1%figY_-BLq+q_gQIB$aW^?DX!pP05fTXE{ikJy}0r#?xk*%}=UNmpy` zSY#mF=Dkxlboc?OXkgUY<8{D++H=3Gxhp~jjlxELglJcBEMHX8sceoxbfse8X}8>u zfaF06m|++QsObY)*CxjU@}2%G;!14b`B>wJu23p6!wK$W%M43)GO|AGdy#X0FrFy| zQ28p=YFM#bCYj`l9Owj^dALEB2>kr`Q}&3GTk$?$3$11{Nw0x-zJES$VAZtRvm$}T(%YWfIDK==Z<-IUE}me%InYFfb1=%G>mX#BEH zebRzs1j;s!QrcpO$U}K;6QF}JFcyk%DMe#qxPcHPC>XzixxDs>!^G9oe~2)@E7j3f zJTa38yB!f`YhL$g+fwz_g~7VGsst)yTQDc9x|(?py|4!fE>*%D7z>wt&_}&#$-CLn zMTbA9s^skE+OD>uA|V;DXo822vu^2K=njKy&Z!_jJ2akqYW5HM)qC!Ul8%w8EM;~a zZy1W+2r$j(@_DdwlWJlw%s&HYMFdXx)KjXRT7q$G$&julW8`5{nrD;`9nDg-WOm1&vE;01Sy;yJf~RaD^*p*3A}oHl8_H=w3goaa3L0W>ikq5-062 z$Dzr1NJ31M2i^W&ZT$Uz^9JTNR!^)?1lgpFtz>w{L|?Z%&B@Cr+M<9F1jdlw(opka z1JCC#jvV+_C(u#DHJOSA!V>+W#Drp39SguDDN~^E^NZX%bVL#t=I5e27uvd%0>|_j*LMyYW?+EA>+8s>U#zesK-) z0mX0fA)@C?eHv3Ne$Gov7*(7Ts$s-d1zB^S-&wGWswT}Razy8d=FyHkC(8$;FU+kA zovpnRU(h6p;919T!+1Z%&~Gs(q;vc#?`B)3eBN7%dUquaouT^lBrIj(h>9N?w4obC_qB$al-V(* zdUuk~aRHA$h(<7gYasW|@fm)+FCCQ8g1>lqYj{=s*fx>csgh8KvEC2ccXPgCtWKj} zTT$~}mu|peEqDa^tGkI+pP0Y+FOJI+z@986bqsuJJO#cCEm$EM01%RwG73M?NZO5p za_~Ue1QNekKNYE9u8I(c9-I1Vx;IAkqbm`}Q|)DcwAjb%>%;Y-l}(t3T`9efYri3A zcJ3}DfYQ_0a#S}GJ#c>4bdS3({n(T-aLK@QGykGxS&R2ytwv<`u<&xrLFvE*>&HZa zog@g*MT0C9Od}nA`gY~17XCvtoIF<2V!m`d2x7ivT|&O#R1VMvO#V#k^mA+~PBTR@ zSG`(psM$7c8 z*jmPj{yXj*vUQep*%^HWa=Cb$UgM|g`z?mQ#(@N&MjOj!( zN{#kw006$r{Mo}r+lL$28xYuAjA(#I)ccYNIa&!F^1NUo=o|3}ClUAZCVx9gYlS*I z^>6HbHSgO-3wKMzdr4KaZF1cceM_H2W@=*c32{Zh6)pn*) zkJ^PK^X;{1$sDYQ!l2a>5_x;kMgLaL;g(kEG5zDs@slHk@=or+B9u-$dT5P`y*r-C zwfwofV=_ZLj~wlCF}t~&Q=;n7$Z;b=EyaC>-}HsJ`RvPkFs)auuLCDgK84F; zO(7<)K1%P2CTw7|np{%cs~nqS&LnV8Hg$~#?DOq2$+%l`aMX)&AORZjR!{_ErYlA2yuK+5s zEc?}&JdfX8!^MRMw^z82GfM13`Lv9<0xX>ud?p; z#qHJYK#MB$TOwy|awBO?$A6I|ocz-1qO&B8IQte@kar#8*TOPvPg&{Ua}r>ZD!)=) z9b2(dX}@GhD1HB@n)C-HQ!2yO)9Ugc598sLgJitgY63wuhjZW!@$?3MbZZ-)gtJ17 zqbo;%4AGgiImPGHNy}kn=QxdCuN@pLj0UoiJeP%jB4c3xaj7hzd3Y&t)y)+n>GTUqf>>btLBFTcF5zsZ8X2h6xSM#|^E8 z$OzCp8|@X={~q_#3NDk)jUY84UYsQ;RJXs3fX$@r;+ z4M*atMV#O|PdaY&Up(Fl;)G~%B;3cV8HTdP@JBw1V~uP=9m4xaN0WG z=;^s=&DrCk3XiI!R@Fon$c_pfX0&tp9zP?j$u&P7=|&l zY2o$9ZDIetX8{0M#m+5lDZ^DFTv5dORQpggPo><@EG8Xf3{@%s7t>33`oh^Yx7N%` zo{5g#*FlD%&c(s4Inv@gW>N@3rG_p#X5W1P)^;S|k$%_6_Q$*%sVN#(S#H}P? zVzqBtu7jfs&tZm&Z6ocf#w^uMYD)e}IYpLu#|)M(_xi9N6c~2Za|6x>5?M}Rp!W(} zqK#kN71fygqF%xbG;Yt{oGFHBI(Q40prG#JIEF&%-_<{V9x z?SiPFh5*>mN_|x9k7hsyp%=(9Y|{o4ZO(bs;(u^gD>6i?x3-YZHDssbHYdbg&}+Zr z^D#7uZ!4L!&-hIa!M*Cs%6qbVWT_Z^3;)CZrxW7}cbTtQq!b+nx5=w|xbghvTYsF{ zXn~>446!KG(_DBJoRi(#!AJTHG0sa2^ougoFewaaoRFs|a#;Po?>67(l11c(C&VV7 zNUH$gW43(qG@RsXR2!p0Ea*4jX2H2T5I{Z-b+`4gM85&E5R!Q za{z|XRsB?a8-6WorAvf` z+lvd^N5v5B4l>q-;~@(KX%JrQSKz>*i`2$K+acohN9!d@J5#p@BCoG?U8?bQ1WhS` zyPqd`SewG1aaqysu{s8nzF}fUfw$7-Vee`raZqU{OFsmg=)&>WOL%Mr9}p`aE56J` zoCt~8Gb!u9f8zT6C2m*)ETg*7c6o&9&8z{oc>-H=!%ThX*5Oy|Ex~$KCfZleoAvW` zDeJokxGA5RR&kkoG_b4t`?tIHNT!+H?XU_PX_8%=NMKO(GW~mdfR;>fXJd~LM#^rg zp6h;6U^QuvgsPcIq5N6`DtLjTW6xZMWA{QfEue@fs&@5eO+z;q^Q*4gzm18R+oW~lZljKqm^2+M_d7u{ z^vqvv`nMSpwRoJmV}99s$OYDbg|>%~AWQ`cDsNn?WOMP#&t*PQK!<}HqU7}()fQTtX<$hWt{U;b&`|!40xkIg zcTehu`4nR^tSX<2t=YQap7#Afs(|0>E?xm#&Hcd?N-d7yZ^`wLK8dpS?|&JIk)!V` zI?Wfflb+XiN8$%V&hYVW2f-5H9ofB(&FPPzL5o+5G1Y*bGC z%b60a>yv1Mh8e9E4wP+bdB@#^JQY?3oz(t9+6{0 z`)Sv$qF=N@{(r?JbI_HSOs|y;c;Eocp3`!EG^O3f;N`t+fjxBOWDv!WJVj`R#}@!a z`8B|07iDCi$FE7z8e=g&oZxWVgopRSQK{x8@+7RxDeV3v=q%CGg8SE&t!wLl5j7aN z^p|8){|DYFs_AXG)kTNnT?v%EKk<7GI>szr1dxKqEMSDHW0oVsTFweqWZP8Wdgu<4*LQV}CJ(~As;gej zxt8f$hDk9s`J#5QDHylhv)-eGmG?M0P&WM7xm}jt5&rj%&Cmv$8us=7&Fx?S^ikz# z)QF?zChy|BMuT8tZlrvxSiaHGzJv^^a|jx>#1VL{-y9wT=(*00#ExdI;%6J0m$Yhm z()mgdN(KHy`-NRC55JS}=z4?Nk+WOB4uEH6l%nC&)4J1|)+U#zYcL9{iP|YZu~H3* znlKF*#R(q`hvgq*u(KnpzLs}9;1{VC>ixkBFbl-gO)%tv76vc-J<<4Nk?JlKx1Pe4 z4#}x$q5`)tkSc|}BG}0iDK)dfoS1WAQI}p&9lz{%E-M`=WFUexK7m=N5nZ> z%Q3<`#)WLP0DzaWDJj2hLB;^03<4u;8zAxmt+JDL>U(Jr@Tr?yDClnx1VFwBZOFv! zlX2(HaXko?NN|3SITrmaga5;n)@gP1<`FdHgU88QUw5Y*xJ{HAb~|#o=L^Amss<7N zl(ySZX=I{LO>r!=M?wzG-6e5r20)#9L9(qWP`VONRsmamY6AP8m3w<9e*TCsgPL?qClCYyhEHL{eu8VgPPWya((rjp8Q2`A9 zd{iB)(?9$%LWsx(u%@E@w7*nq3NJ>idT!-($2(^akdd}Zc9XV*EJ=7zLXH8m9by55Rza%JFULje*_uo6$FnwR zSBJV!Ir)B-itw+>(_u?v-e$(d^(~AY@;mhVr#aXVVC+?ldp|joY^N4tGp*m-BgM?b zoc6znzwbV~#?PwvLZ+;WTfVmUtTfId(OOmi1?L*t0V+NpHVH|a2V;bdu2UA-IRuvj zk2WjVizfc7iLv*=5O5!;Kt1&A*5S-QIw>%j(0H3vAZ>{{H;uEJ1b#A1_^PQ5P!m!= zP=IACmcTO+w7xDE8SZn!>QBCV4ua{8{Dh`H=imJ7ay_A;!4<$SB5VfieDAJiPbj^A zzfS$^=o|1Ks6*-H9)g^LydCxrEc%sOdf%Mz;e|X9e~5A4K07N)QcfS{w%VEi&ozK! zJJswFv11g_S61WTQl9L{c=-bsZZh@45G2%jC3VtmI{-n{Xa?TjGeeHyN+_#3zLg-c z23mJ{+?aBW;6K>CPiWBE`Un}RCC>-XHef;p6Iz?7&~P26p#E`8t2tCmPXH$~eoB`? zDzv1N5yD9i-wZd!&H@|YuH|2{aFu`I5DD&-=lR7xnQMg$rz$)J>W!z;3+E_-7>CU( z(z$}^LwjEryOnW*90&Az(g}!n?ZsGNe>B;Zjh~zn=~EkpNv#7YvrsNSlN1gToFMbBLT2N&*&0agXX!@#Vq9NXcZQ_j(clO}2msVtpz1M`0! zhP4}$GUDonlbN_hx9O>qPoEJw{sIBqb<#0d5^u@{EJ0;n{AQ}5+Sy85%D&1+Da2^()wY+^`$MLip1&(0^ zIyujiCbZiVaKfnhFgo-IEk_4 z=F`^tE0#U>BWtMSoltQ(dzaAI3(;ps*NVlrII%exxGJ(*7LtUWk&mhQfG-?=u7w9A zS(bGdz?z8Rr0KY^KauyZAARqB=7oAGbauv~{Y_8(7?vu{vl~xC*Aud*_wm;66*{ z!F9ep!zCPTzOV!*_ae%N5sfMcIo;ckC8yLgD$QJ})HyJEd1jKzHK=AKbe z3lr@ATYHze8CmeWd-J77ye!(I*vS~yIk&d4%mpLda%ICuY+vqOJa@3$Bq(cU_8WCu zep^XN68hYRYx3K29uX1Iy194LDYvn!I+oJ5Y zxOwCjX=^?%BdTlpm-+r{Y%ZtdiB15mk91(v^fB~Szv``_$l#4kw=`?+b@%JqtEuY`?QdQ69)PTbd7o$N0u{dtfk$|cmKq^c zL0-vH6;OU1Z3zgX9SyVew!L|EU4OmeD^RK`Fx#`Jx%w*!Y6OTeQpqVCn;fdt?tr(WxQqJex-K}JGVC> zE)twwk#%G}mCqGcyEcg)7;gW6=Om&H9SN{r{VjNwOyN@@6-nb0R^eRqGp!0>_FuIbkZTDl+{xI8X4m0yU0Wr)O1V0e9=%?pCsFC~2M zw6gCM1br>2_;z`~+2Z<+6#~5a3V=@BABXpKM)B#f+D-hjR%;Ayjr39{M#Ec0>;yv% zzOaEQ|DQ2X>*^+$QZ71vPjGN#7eBG^)R=b?cQ$RUC?;MqZ}7Bh)OZk6M{Q#ikri^suqG% z&o>70l&tN^{E<|4GpN_;*f-ZwgD%0Ee&B^qkH0ZjY_X?YDbzE5OOvKlwcs zg8v8|2!me^1b9?nSkq}dW6_Fanb3jrTBx$dFxx3Q>JV3^sJ>ju&GWk~)THnvCm{S; z&FHd4rKUYKE>1Xx`j&hPK|@`MFqEvU$f^XE5NVpquoi;?E%_$rK{jt9s*%8ekQp76 zMPz(h9_zN{wXmj_axpPtV*5lJg^&I!yoC>OQ7Tc;&sopm|Bd^%9(-Q0uCs zg$=ET^w!C|-gUThO}}nPgS;$6(XXFZj*Y&nYNc6C`p(SQT;zx`A5&^rx7<(?AC(h9^3k^a2fiXHLq4mKtXp zQZ07<&jOpw)65RMJTwl*^tBa;qV$+ z_dSG=f+OY?M9l@@tH)lnJ~M;Z-BSGn zfx8gUF^A6S$#mJ55w13O^LdaE_XmLIJsLFUlAJ5*`MLN-ci=4-z}r-d2_j%N3!E)! z)GcO%6Gf#37MOmHribW^H=rtFiRPn+bAoFk)(fygLqO};THe_C@cIK*pXN7#{srtP zPcHO1ylE%ty}r`VUq2{0-s%<$R~f!H^+fxXJeo?b)6pxi&(uO=6V{QeBwKC~Fr<_d z87P@Ngvi2LdJIY6_bvP9h=k={V_W9s(g?GxLMUWHXQgEhqBW>XKaE3x$=#T#LRFEH zTdHzpIat!7#Sn|~-$}#w5Y)EY?k$%*Sd&qLafkwhH^q{(T-&C&26&dMbVEqN!g~(V zY36%h>Z1ES@e4ns)Qi~Td*G3UdtF}(S6l~ JQEfyN001D39#sGU literal 0 HcmV?d00001 diff --git a/notes/assets/bb07174f845a5c5495945a63f03d5870a832d1d7.png@900w_624h_progressive.webp b/notes/assets/bb07174f845a5c5495945a63f03d5870a832d1d7.png@900w_624h_progressive.webp new file mode 100644 index 0000000000000000000000000000000000000000..cb0296a7b1e7877b621d721dcc3b5598084a18c3 GIT binary patch literal 26824 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 YJn?)z@>hpbM^m-I49I`}F#PHM1I=k70ssI2 literal 0 HcmV?d00001 diff --git a/notes/assets/da92a01501b0356acdde8107417b0a067d23cf91.png@942w_459h_progressive.webp b/notes/assets/da92a01501b0356acdde8107417b0a067d23cf91.png@942w_459h_progressive.webp new file mode 100644 index 0000000000000000000000000000000000000000..c005145737b93b22c0edeb3fc3b4b2972b2a233d GIT binary patch literal 36690 zcmZ_yQ;;THw04Q6ZQE9*ZQHhO+o-f{+qPY4+qRu=e|w)e-G4+!->sV!F=FAFV@_o$ zadGK*ARrAfVMTRCP9pyQ)<_BHw=R^xKfHKOgZ%i06AJezv`G0WQ6f-`fE)qr7@xh=Iu;)kq9dedG3UCCl0segLO=7MET)j74I{XA21D1TSzsK(guK>LP z=|5R-e}2wB@}~pj0Q^5kzmOkr^<-X0%`FNGh#nP2cv`B(n+TpZ$O zz{!vP59v4JkHUTad7mI4JHP=@{wuOo|D{imUjWFzhW$zZiKyoI0JQHG{`LT_e*5=z zUg@g9x=hDC5p;2F)7E4&?trI5?2WNb?QvAEp}MeZub z*+&*Mgxs8sQ#e?_LSfo+;=te{k9UA*GMG7h*jY|44=tUsm{=3_S*12dMeY2NOX%zC zd9$2nN9osTnns^PB`sw;yHHnyBRL{|8BsQJPcMNDimx>vuc>wi!0EQO9PSELf9z>eM+cnt`MW>Y6kX=S(rYYVfHhkOnMKIHjGAcEKy zg4*Ji)0~L82@byt!_jOj=*9rH{Oa4^-RR+`h$z{V*!W{KaOzi|F=`fDNWy&~%6`^428^ zo&o3o<=djR?GfDwlMWYiX{W;{(Z3+zlawmqS!WtjC7s~f*_p$85oc}7^qUtm+j}Lg zXp^03Ri}e(xXArWw0yr5L;7PGMAsn|^uI?=RY68haZ2S=an`;f3Ob+$txvNCd$qaV z(;{rwc{rWhXPD|d_f1-Yy|l{qkyak@=U1}>O!~j8GAqeLpED5P#GUu6#&~Qi)IZ&) z1;gXfa=S;SI}7A41he5bPQd~jq21C`1rEDm(*6(KW!dv{-99l)_lZ*GB!|krX^Ds& z+EnP4M@g>dK0%r*ySAl$V{0Wjd5P=8FBK?P^jDGg6|izmTndi8+xynq6z-c8 zG`r8{!X^t56a0oq%1N8L&ZG8w}&lUS>Y-r%&E!n?Szs;K9Ljwb4a*woM_1e2Zsr2x&rvfOL3s zWh3E4OCe?l4Q~Y z-YPWjHkyxLV{pHA0{^B>N5wB$$Hl6e6uu2jWJ!e5XaPwCaeEg8#9(G+e%>0JO5(E`pZfz@- zGMmbQ+!h8P@hT(rmssVbzfDKP}J4*AvjBaFb#@2hpf1aH?BC z!a#I!7Y`Qs*tQJ5v`bShD1P2<+F4-d6Frm zv5^oegkQek#!Obk)3ovl8+;Sjk*QtzVZLnqboQBGPB76)i`E{ET~1@DpFj4z#05cq zW)&0zsK|sT!hyQ^Xf!$bbZR+ARuSF!Ts4!t=stCCH|(joPLf4{ICIc!qHzlVQ)!1L zI=E4eAkB(%P_34juwPlYG)gB}Jfdh%p^okEs@F`;SO=0g^`bai`zgfBqEr2gy$KW$ zBV3luv-nSn5cqD4H1k`PrG^Ai;!BMKahgnQ#W2f_vazyijGGo( zA9abTU+uCjOE-N^S?QvyUD^-|R(Y}Z(`mn6`;zb4mzKhL2Fd6E93S|}jTtD*h;S~H zJrbKpJBYuKI^@)4-a3E2fx;4N_^}5MEcQ00(zQJ2_+=m!9-^=Av5RdgPCN@PV*^B; z6k=d%1#r?;w`UFr;?2PME{N;EA0)k)qw4~P=ncnXDtQLeWbO_{BMWO^^q%A)N(3o= zFC~3eww^IfBG_#hoInlP%-wUza`SC+&W@~kF#wOS!j%s$TA^C)2J2Ylb-$R~^+9tc>EC?-FRS3Q*d8rIT6xtD5_TiWLO(-xISQ~K!D9dn(s z0^T7$pkK>z&tSbBS^Jfpyy0KYEg1o`4)oA&1xXrpF2N5#o;LI6cRk4_%YVm9>zlvQ zX^LP~_;eWjJT9YSzrn0*pfk^!4l=NJ-gMEX(F7y8# z;iltGSy{Z5{c?n8VVE;1YtzBb#_oQ!ZODQAs_Z?0?ib!fM-^&M7dipfyh*H*hp!$E z)##Gkd?}t7ew?-uy;ir3evqJ;UA|z{eB!V_B~2%TZIgCR@Hbjff)@^vJCS_$#Lxv^ z?cv2X1(*zsVQzbs!r@rJ$T2F`XEwg|TlwC$`>fwb0~wd@Xyjbs058VpwtmjzBA&_M zt+C~^rPWR(YR!dSu%s^13Cj!%1HgVF|7&s$t+u4~U!v<5fp`D5za7AYm;+&En40y6 zF@7+8uisNayoR&LU<&BnD-Y0k!ItJl*U8FV>kCI2IyD(@!RGWrQ5c0DQxW^yn9%#_ zSN=Y~a-_D;>^^C}0E}{>pB-N)815yjz%NI0JJ(6KY3pz}d2K@(@-#Pav#^ILZ$twP zn@D{?)pbA~tOo^@^_jcaTnMSg8>+Xw`jN1{Nh1;DZv9v1g|Cfq!MOB!)UR= zBHJj2r%mt&6vxd{fdeJeO6UA>bp5c`ut^GAe-7w+D?*@aK>_ZiwqmJJry+Wdi0_li z`z-!^VDBXhFW*g9l_%v|U|uf#8Hw2N&Bcqna^_HosS?1maQ4mExJtJ*U6$WZ_J6w5 zQ8V#x#HCLyR^y`84OEWdy)LFv_KHx}I3>tiz;wB_e(t*An+HYl(X3hkle3_!=A1Nm zj`?e2{%mS}T3Up4V*?DUu>62wYn&azKKX_XOA)h92H^NC>-TLwdNh?BtKzy zGis@G!av6$(s&W>0&~A=N|-vqYSCvg{TZ>$e!1>HwwW&;azjB8)Sh!}8|{C8c-xBd6=78dh&;mFY5^ zR0iPc;V|)v5w#=wM^DbSC@DCcw#ko)QY(TToN&WTjB>z{pF?>3(t>hkl zNOn780o5X#^Q>IsKTS0~=ybyJe9zh=CMbsgx0Ww|s93w9c{L%ePX7PQlcR<0O5izL z-t2$K|GzWs|1|rc&M5gj8z^}xzyC=l*U7khybkuYtSF$0jX2GJQ~ODK4wjz(lh)&& z@F%ys4!Nno%6$$6BKmgQ>~uk0BOaMfN3Ei_yDDDo*l3dhryS?!kA0!L3r)C-8a&Uh z&LP{dYdnR5Jed{CY#82Hi&C_>Uc_^2aDmDu{K_K&;W?eixudq6P67$_{KbjlmI%6_ ze)Jg9({;8a=zw2GwRn2X(K(+NENQD;*dqaC=t%B1@Fu*L65%BTvgMreX(LU@k-kkCc+|>5sgjy4>G4c+4!L#JTtABcx|rMF9~RH;C!$i?E80~IB_`(t zLfc`wok+PKJq|49pZDSRC?vLd(LR;;{R<(g7}uhcHpeuKNA<9=!sw`IXK=u;aSwWa zj{r$|V0#P5tYn5)PPS*#Dj2>hTF-g() z4LsR5_nMcooW7ZQeM|5y!pgvlovo)~?uO8?VqdMb^F`gf;5%93dv`v75x15<+k7gE zeTb-jO7lLRqj;Bi$ab3#5HC(r&MA$nq@raE-g;1z(aUC8BZZN?S)7;LK*w)4jt}GZ z_hxX5FRIa{_8F4DIvxOVC{LRN8`Pn9eyON|^S{h##dc7~4PJzdD?iB3^-$EDM2K3WXH|@{+*TFX9c!PQuBwb%(k)Qk;nyn#wxjYL$GCpmh`vkCSUO)=|b+h$o6}4^%&bHPgZ|smtq?uW}MD;*Ep&=%CVK!P$ z3W;uu2^Y~DB^=Yq%P>Y~>U?wNdxZG1iU-Y*i|uO4r#9r^0S>wPY(+W{GDEh<1XQ{s zhwSm4IOhEu$>XKAHl}nHQ2HZgv_qQ*zm=!h@jpFkR&(;dzQfy(-wrLhWG71R`j!nT zvLjDlxak+>3)*kO5WaMBt~9=8D?!QHQqzNQ469w(Nm-B`*#2?iCm{ig>|e`_kJ?73eyujE9$ zPZ2Bc|1pdR)UdUF%tN>8Q~7gz=lU;{Nz&EtO0RDlFErW8(29rxEqO35ew zCB)xneG0OLuKZL(!#S0nC8a-}vcd%WhJ@~6oTEb?p$1oR6K4+H`N%AcX%7=Q9NZvs;FK^@r# z4+zGHT&vyt{b_F8Tf-_AQGfdoan(aO)lt}OPWi?qvV|)p;l)2{blba`d+mCM%Ma*?49N?ddN^!P#`D!M(e$HdI1)9+X6CV93s-t+uPUSE-7- z-d`?#5?zFE#tl_d)?umE076fXM+wrQ2=^y*(6_LMOF*Q;~TQNE)})h^JU zMiu>Er+Sx$duGCp$6)%k^9w)clv!h3<4GBnB>JhAqIT4sT*qP02h;+?r*3pO#JL-3 zu`3+6Wy?CMZvUQY6xG)7oWkv$B=}aAyZzbB(hLAu#3|%&5(t}=rzLpn$Zkx%@uPKW ziKme-fAXh-I+;5m+>ik#Coi2rK*-vx{{C4C{`l9wr-nOSDr^an9JPJ{cXa@BVFoBG zF74Y4sjq%JtT(lNPvHIeBOVV`ZG559#yrf~4y(Wq1EzSBMJ5_2$|%$YP_+U51x;W4 z*^Q>M@~WwJav=`68OR7*h|WfSOx(I;|7nV(sqQ~&qB$3EVL&gF!9@RWk6Q{{4*dWO zA+J#^P#gb`3WMY!bK6w8jc179arHzb^V*t^Q#w4=zaO+}3LNwQp0fJ$-{#{J`*a*6 zR(CP(v5mMEn5qZOs<6{`Hn-cflb*|#R`dSZjjf860$4FU;_BwzhO8o7R3ZetwrL=8 zZant4B~VX;tt9B8jv`q05ZLu3*qyko^d(ExI{nsiX+W0S>%6yc47&M`WCzp9#Xd&8 zp<77AshD}YI9V6Uj6mVXS8QYOuL*flY(V=JjTP4imyza8Sx(MRU!5X8A8<$bUjBWN z0RqXkXE7iH=%{RQ4do@=s#1~1S}_ddsOw2RjF35YfwCSpN+;H_rmViH^Y|toE5@G{4X9L=}DmCKe7pmdZGyrH#_72FlbADs?{@Y|6BvIr6F z!9;og_EstmLY`6^_)fHkbr1~2PmFp`yG9Y>ls8-ONL7u+xu7b!lwk2WF{&525i&RD zXx!?(tm~~1BJ-uw@}r%LL3f~uO-pO`Ui`4e0lP<|2mB6 zx4JY#6B=?)$HcTyE}`-xu?EpKn>II18?6e&Fa;i_@W>FGwZ!J3qW=SE{AmgwcB$nnnq&;j9MG)Fl$b)^0 zS#s>t`<+}DT$AP%)?gkoVb0dbucvReid07^w19@80VT`}!!}xXQ|FS9gwfHH z@XdA+>DU;q0~bjDK6?d{6cfPX$yB>f1~w4W+YvwD6uvCevusvg(Z<8WWX#~?OOL?` zfEL2TZAvgQU!*qsF%b|iMF|9Y6^g>XJ|5yMnPOfX$80aZWVKwq)_7(RPT{P}zR=?u z#0^(lDb%E!bIdD4C_x*2=IL_q#V2QgCJc?h;DLy5>$mHT^XKk+@DC)WNa$4OAq{a1 zbS#>NLCqnc_*yyZiW8i+2VJSqT@FmJyosk`h)JrwTRR-{PaVOPf-Lz4Tp}}^3fa{I zsn1UG@g|uJ_x4lJ^A^_xeWsJPdC$fTB&7X?-C8hD?s)z8$c(sJrselngbgS4j~17K z24gPFFvevHmzC-gMwMcQG&F<3Q-2yS1K$rH3VUKn*o}h4WG8`!lOqXr$aT#prLTp} zth>*?O0X0Wn_zC2@7-=PGI4uy2g^|E>INq@QNc-$Fh^K_z@vOI%z+>C9qX0*BuC;D z{rw)NX92?2fP^YpBh*_20SMvuI@^W^8(&N_2lisP=HBI`C|#*h_k-Vrs$d@WblMk} zbT&OZv`g^fb*5Y}c8uN|<5)ska3&BzS+xf;7x`^2<`A-?V2O_JQSX2A;uX2bwN{Zp zn|rJVjY`97&Rg3jA9VqCH&p#lYu5mM-h5%$7gS^QWXv^Xm*t5PiT5RexUlPiN(WQ} z%7qWz_*sh-rqGtcPswl4SeIgflAuRCuW*#>Ox(W#KfA&PcQ2ar4#wd9wX&eL!>jzU zw#4PK3lqj<m7ngl5|p2>f7GcK4LYJ`&+4qht|o&SOnJ;UXC45GpZo{-_;8+kr^;8>L)n^Cvk zQ;4VRR|{~+dJ8cOwaz@h6}#evh<0K(^g&YjYt-QFY_*xY6* z{WWJ@55W19hH~-Lc^w5@uKGPHzEZm$H}=+m2>C*kgKKS>S5Jr;PO5e%5-Az0Oz39j z+BYZFaKvtJ#@&9*^fSETXa&zl;yM9m5ntTFOgGfJt}>%nJuNt*R~2*&k6g6M$8<4M)Z4zBU-QKUqU%e~(N!u8~VQS}Z<8 zF3~s~h}K!m?Jy{5HUSc&Ser;+?X4M!8Eo7evz-6Z4s;-L6)9Zw;-y zbiop$(DShK&(!j*jp9bP)b-eNOt(~Mo6Gmi8I4I%n$9zSbB=(P=d#(CMd5Mo=TxJ0 zEnb-@y&>~=F>pwy_}%EpSo|NKx3m3TfHtDpeSL7k=tSJw+kzbrk&?gR^d|q45RunZ z(4b|IiGVqXm$!=e2gS5+{COst-kz6R@xR;0PieN^RE7bH+okrp|8$W+w{mh!W!>Hk zJ}lFA=G)>ohDK&&s-CFY2eAoE$_0OCd;#tmqfi9yHsq`<;OxmEA~YzC$2CLuDTWMItU==Hc-{R%ahYcVNW{pY#hzhKG(!Sm_jc@C(~=(T2yx*60)aTI zK;PIe5(WbFp!_=%)u}>xx`p2-LFeJYIGR(7T~wDI2eMKXgj3R?%< zj}513OUI=34L1Ab^?_?Jb-`;gkm7py0B$r7+7h?mR1Q{N;$=pJOwn_D7)PCl8rc*} zK@dWdA3U8%QBc|RXw^l%Cutflr0GBL>GOw}#I_z=VHY){@Z)wg>stIsM8XYAGA2@P z69S?oHEUI}?2o5!(4(50eH8_sSO%PtXHsQ7jSx8t<04dX13Iv*~MMdC*kd0_%!5QN7!_@a| z#LIh9LcD^=N^nZ*r?28LM>5HVDsFerrjq%HonJ4C((6fa{Rx90HpYL*3LQ>_k==Ed zoFH@$9DVJC2_W*$Z2^;Jea#rJ#RTuzx5BL`-2wCanN`)r;hdKlPOIxRg)Efe6`+$( z5b-F|+?9soUik2;%OqsAkKt$}OYrxQGJ890UGJ z4tN?+myG>vFo|v}WoI@cLRRjeHbo8)Vew2R;=1d~_%VLPzv8=zo;w3}_e3 z!wa}dv=iFDI4OT<^3{^GcKG&Wv|-zeG{(3|=7}688blu_I+jO3*4kX>6Wrk)53!9% zh`S|CqXc*Js*0$}=u74N$^|L%nul530iUSw!J%W$!8n|48SHC5sQcjOFB#6LENc|b zrAK&i6O%C*ow{(MW*<&7bp~&hvChgzaSHA(rbEZFd+H)^uE~(o|Bwk9;6FgZW`}se zRO09ZR@K727na&x-Wvq}R(_r%D2SL09DPgAJt8caX0(im@H%ho-u<~Tb-;g`FE5@s z%s<_Lzp9!uTRku_<$EXg5!nzot`Ewl$xr=UZ?LM|2Q!?A)cu0hW6P>piJCb)73>oX z=8(geG44Fb%VdvtA8KZOpCyCFa6HUvW^td!h1XrvT*OF~F~tUJ)3cjXWt`S;JPi4Z z-5{F0;KdI=APQmI;G!FXpl@C*Gu5r-2lQ}uSJNcrrG=`ugRRvccA%X8v-9gl-n+e| zu4*)_{*3rzF8GDAL3i6@#H$pGGx5EkukT@4Ya_gU-JGQL^MNEudBA8f&@OZNm&hs0FSq`Svt1x>e>p{Z-SQ z86^6zl=!vta>%&0GMiTmsg4Dp{&z zK%|yZCXW2|5LiLO&=4JRl_At>sMBdMYToRomX=W~j+e#_f)WML+h7TFS(|clRXk6Q z#9}03!d^M*rD?=l<5)|tW8n~5gKeZwD+#KYk%@5SoDB(Ugqz7{mbyC@3$~ZhQFPLw z$VBjTyf~2T+~Yt)+-d&xy{3Jw&H1VyT@WwBTg!sEwAfZHFdfwkuYX4jKG{&>TcBYb zu$Z&(Y*TUF5kYBjqZFOZ2rjE^y)clmpg2K)+a-p#G5XZuqQ%wHOxux`R>v-)Shx6N zen7Zvz*`Y&0!Q6g8bSg_AyH#5cuGy|6*iGJ`loWqHAZjg3y`#5d~)@?N*RKP6;_CC zegf3n5$hZ`xqmI#Q-@5+lm(CD-XE3rKM!kx@?R)B-audEb}TackoN(}NKQ^K@NVJ- zgLyX;4_&m?W{jSyKM5a}C&Q`Eg`kj(p~)X43siAG&Ra>T{}S3hzm}1mi(|Awv&cZ$ zAnsuAyOhZ~hAxJyRjjFYXxn=gXcwtgi_!P9x>@*ln-b)ULH z&bVITdD=Z^ppc{SCNsH;*6C{cy}dVsI4nk|S8#P^!QLB(=d&tMUQ>teBRx;ytiQgH zw*CLUEWg!?J@l;$HlpJW@*y3yg@$R8LH(K@ypQ+1d!MQ&SmvcC3efWA)jHG&vx%+c zmG2wnX)9pOHy~Ghc_98b+N0DxI<*zkAMSJLREZ4M#W}pf4C}S3y;z#0 zi^T2JDxTMN(s#OTcJG*I;>WE*q~f?kFQi_0cr+q%qwO!`}3G-HYbSKIBnJbOzU+@L*T%l}BEggy9Z+ z8CMtnQfKObPKC_a(4D7BwmyS>YiG@cd&&7bWpW@YA)TNLsm}1$8v@g5h_=Zg;V9N* zEQDl$PRZVZJ%>XF63Q6(+dzHt#V_!K?vRS7!cz~xx~};948vwP} zwl0=B0_Fnjh~E?n=Rf;Z68fc+4mmqRDwPIPm?eRu3H_BioTxr0-}kYhFr3i&xfW!} zIRNVzobvu=qZG)5ngM}V-y7EuK_sg|_yg$Vci=UyfL3@Wj$c|<`&#F(#n*vKZKKk2 z@oj2}ws$d)&5p@v8wkn#MJ67C1n zEk|1jS+aVP5l8$f1u9W|m<}jkXdYBYw5|8(v&&BI-N1O%wSmxLKax2;PE$j_t86U{ zGOyA@H&c=OHC;pa_&Lfc^>GD{PLmVS7%7vB^s*aSyvw5ZuSyOsE65%@qP!Y2DEHW9 z_VH%ifA6nHGgWH$QL@0g90V0)luIAkxnwz$HO=rUl>POhWZw`BNR9tk1&u1sip#}6 zEnr5XYGm0Nv$0xC^{(3~beCNN5%U(tVpsb|E6J8hQ#}&d|N8jJFrNxz8-P~0>_mN+ zO;-J-kp_2D(5_312TB-jtJA0^bI)Z&0#8DU zD`2ZY&n!xBUiP|+?j;T-D9!$*3)g`)xC!97zGFX1mvvZV%7cvy zCoFRf7g&FadToi=NfoJ+w`0FQXd{m}GdW&wu-53ab0mq@vKUUtomdY6X?VA{C$J;| zj0}gLFu#zgwIXx;-&in(*6f2@T5wtVSy?=NSG@tpKa}MgZ#n-U8-RU0NglqOt zPp;3NF7OCeh|>I^P$Q16U;dAu0zoQPzD(yA!N47wcpK@Iak=QZu<`}AMa&gojS@|( znoiD%EXy{?b0x%j;-}tF);*T*Z^1WN^vBX*G?}dB5(OI6+A3M+_omWO>izM=`(EIF zyxx3|V6RjREd=Sz$D(7AwVox)X9vl&ZL+*3ph77ZU?R@^N9+C(=?~D~dS3fPqje+& zt0O1!3rA(sh%qLsLkA9xpf^kB2Sf&=!YHy0#Z(n%?V&k*2^fWZTfWsV6<9s;^PF@D zsk;P05$i`-K1ZA~(tp@UVOMEP1Dl+D1@gYq!t5fERav7ky<4Nj$s=|06n}L5#tF(ber?Qb1npNE z`9cN`1guS||7isjlsH#X*C)vzt)Ky|v*3E_{<64-Yb4IihB3X^k4p_(kENJdu`OVUuN6kYt4358|@#BsOyH`Z1=B{VR<%(b;TAv_wM&Y3JZ265=r)VDWJ?k_cq?961yELG*( zG)5gS>LpBYS+pSn>yXnMoT0lIO$F?&%MP(iAgkNe48qakA(DT~uY#rEukuF;m@?8Y zt)x+G%V8DekKf*#R`)sPo2M!T!kH7liUf;*R4INB^4I^)QHHS+MkTyESaHuV4m)BI zbmWp5Rgl#BD7><%1?jm&w_-PxuYF{Rt-@oP9mhOkf?kLrhkz07BtHx~7`8ti<4sf7 z+5a5HS=16}&j&(`%L_SRUwWAk{OGa_mA|;voq{Y;I(F;$%lA{jZBm|y zqn@!EKMe8ZWDi0o*#byhm|8zK1@r_sAX^rC7FbtxspMW$89u2SfQxgDvBLz=eVpg! zsB<|4UNTnKsx%TA=UVjE?8jCmPcctK%>vC)*V9kgV%h4yRRcBMkVqp1n00J1sBK6` zlDkE!2;WlhjZ{70BB?XJ9Q`8P0FK75vAdil_qscBc`zo}otSLz=P&f<7wC0{X ztNgLhessPBsI%gl)g0J5`pX7?Acpu`(~%MJEuc_mbpWzE?ESaS&_z5;Kk!hBtq6{f zv;F*xznmykyIsaKb;6Y44(P{jP2R0sHZ)ECxVvc+6^Z;vUQ7>^UuN^nE80H^k=#h4PDx&meAFTb2a3Yt>z8s~xJ(On z7@!L37uKB@GTIE(%CVQX!X~QbCg)6=#j%Ei(Dk7snO61#G*b&NAEiL4x1o@Ic70PM zo+zR>6E*-O1pmbQ!pQc>QCB`F1Vg^?0Hlf~0l_?CiYGu3v@Qy^5*RG_^;#yfAnZyOaq zW;Gi%72j&sW19WAc*{t{v&~!J4}ue7crN=wjiZLk8gxl=zKQnXQeb6aQ1Hf#(3>rH z!ej3Xwv=5))1eJhQmUUQbX_3EX4jFn1V*`G-O$=H%|i9Y*!a>eVp0lZ@pbkdQ~ctw zck>a7vMf~vx6a;n-HIasU&uD9Sgw}UBX_a#_qxar(__f`J9)lSpDv`G8Jl0wW4i*z z5)!<;AV~1-RKUz+pykmk5fC2PQKz*An@%|%Akx(C1% zl$AC6&hib+vQ&H`8|8|m=ZrVY|u_1ZwB}j%Yfl*O=&*k!b zLa(a+wVvQDlz$b^EI0hNOSeFkF7b3=BgIk_jzE zu)J~EUJ;2Acb@&#gFW7XNs`w98Fd-+&1`I+bGntpw-2{Gj4<0V9fapI5_@g2j_Y2R zOsubx1X7a1oy11UEa|I5aHMRDGF`$qzXIp-6?hD3XIvAVZ>R?+fzzh{zBY}w9H?e= zAxQNPE@H+bj=GC$61FtHPIE#d0M`N?jkEksB0<9SQ6s5pxS>$*A{<1|TpFYp90=!j zGZ~_Aa|~LCw&GM;s&2JEpv|~yO_%f6#h>6s^D7UkRTtBQ-;5dr0ei#7@Tn0Qt)CS^ zGR8?2k1O4loMql@jkin~FFEe$;nc34u7`8U{d5bgom`T*cFI;b&u` zYLy7uUH}KZP_{}-w7|Ms%phl06V~PR5QvK+IIddhkLdKqRf`x8I>O=;$-6j~7Y@;x z*)1h;0r^E}VY*U1Nldly+N1?z%C6gL6GS+nbsc{s0-^e<9$}0{fSV_0l@+~F_wbE2=6N}teXC~H3aHV8vhp6XrDMi z62~tg0;1j4QyD|(9Um*tD3g{us6!8Bm@wy=6I{e=O>JDKwS%Q=7q zx)Rmq!peKSv8pBf3T&W1M^;)!q_hu#rDAK7@U&wKZ%r8+R#Y>jVY`T!DF~}}Su{ITpyx3`B zInU+&HDi}52OZ1*l=6mctf(nu#2A-`MtO-Km@=7xk{nZ#dmSO$y51w`9&Bzi$@4b4 zY52=GVv6|prLE~8u<*A?K+ao1MI?XT`?@F$#CN&Vzn9c$SLWn;iq40^58@Y((oM`j z0FS;R;32Gf*iA?XK_7Gr+U>1eOGqS`Oi(`f&Cr|UxDv>1VvSXoxL*8O`fVm$UVGm` zIQP&keblchZd|Ar(>+Sr20FM;ePUSQOAPF+&;=+cul(KEaovJ}Kv$2Zx^u0!1KG!3 zN1&xGFN%9gU5Z2;XM#65)Nl{~!#5U5I6pzy`x1mno-`eT5RTi?62((~!`VAnO2hi? zic$8|Tl2TVdfWmozhV|6HMXBQnQK>cEWa#oK8qwQxQFY0M?cuA!9)qr*Nb#5 z(`3Jdu5`Y|1kAxcfqPP0k9HQFA#gG#MnDEaX=9L?IAYKR1=G3VD=I#g!7Gu6{DEJR zLgbBIBqPtzv*;Y!51K1pEWMFWLyUr@Y>fO+`;suMloAIPC7x@J`Hz1UW=zS{2;-kj z|LX=f%u--#|HHBX)GBg>J9)JBL`eZ19T5{dxtcgbpDTkS#JInFLTe#I+euoS2huV| z)Oru{py@Lt$D9Bs8Vww(ApYfbUI|yr8Z4A_0MuXH8@3EJbVTjljF`&vs z#4`VJ7a&Of|hk+Y*(nge3K@{`Z!|vr;`s8mW+z z7GbH;$f^}k1aQ%s^+F7Tmd?Wpy@C}Huh_DANml<1+=7QdVCf{uuGiphQ;8l1fPYVr zn~*z;dG%r(BXwE*`0Z}QU$3Z?tvpBBb9P#D#iq$^0X>?{O6V+P%pivopJikEJ^86$F#Q&MBx(J!o|%w|e~zNWd>59i<6ux2`hpeIa-= zC+NLhg=0FlL8MFv#A*ux@dLju<=t+B7uxHR2u!yfT>)G^xCv9N9vKz+yC)?N-nOP- zSs=|%CB=e_bBA2{Fr+jj*MV~%04!;X2q}(vrJ^d}HYppS+?9aj(2~tX7Atq11>C7# zALXp0lBj?+t#bXf)gxpo*&0wXkj~@{js(+&{4|p5==;o4EoTOgqc+_}C!hW2$J2j+d&(KYkD^rJ`T*qY-P^tI|4hCu7-OAk%3ZjyIotVZFjBs0Y?j zYmF8cJ%k`B-IvvXsB;&XVE+c|8Y%Ps>y)V^);tkUweu5hnWWl9!>i4}A!BMc6h;Bw zCRq5j4Ru0rY)h+vf9a4oXFKoEJoOI3se#D~!5?Aee0`lJM=-Ixjr;HwV}i!U>e7^9 zueP~JV*s%!GQ~i1RG+OwNWSM10Kv$jJ{~^1M!X(OLN>|lHmY(o6@g{j20K7cE|M(= zD$il+&_ELAh;9j<0{6p|DhrN5SuBxz9v+;}#|faWJ_q1I1|^WaFO)n*F?irF8|d{I z)25EBx3_jIQyrxzX^0$*R&c61cgug4lDrWvS_0w0$tB3{wBz1o|0Qe$Pi;R#jn#;t z<`KDB_y6SV!wWeV4+_Kl&5&O~eeiel7h~_kFjOaLo8$<1-1l*apkh$wR_FUh>jM$? z81op~LAYZ+X!ZCg+LMN~Ej}>=KNY$%R8R2#5!-OMOj+|Y?W{F3cq4*q(cTe0HQjZ#$koMajPcpDqo zdirNd)eYu=2J(#~gl$$tV}b{li6io^LD73RGu}HWor#5Mc9|A48{AZRfOnd>rW@MX z9Y{Kz&0k$j?+$8(`}j!0jk#quXAXD#=_wx^F@U=46E-cQt2-6}-U_LEI6&Lf&N$W7Y za$T`Fs$7oQWr}+NI;}fv&Fq{G0}c<{0DGtay04N%Vpl7R2_2^W(_I1|3I|mnPE?a< zA=CnB@IMdc#B}k3(Nl{m+s>VNX@Xemm;Ipb3pTWEg48JmChHNTW1(<@cRVTrUP#gE>u@|HIqXpDq=s#2J`Ef zDz)iHeXwK?VjD!RKxe>`N&nae{A2{CQJ@+X-Rl6Z_j$mZ|B2kH%u^)HUzkufBnh;7 zk&MvdHJj>Gvbrw=gAv|eJYD5k>y1xrA*zwWgUr89XkSd5E&NZw3}4=IUsz7X7VKMX$IH4XonR^+x-&gzid zkNBK9M@_J!)$FMyh#nZI4V((Pzsuyyf*s<7vLV?l*B|=IR z_U+x4VGX^1Ye%}E(Pff@!t+Ao60#lc5fxW?B#&Z%9!VL-5;4FF!+fsOx|Oi&jli@f zo+d--?z6UrZWA&)vgvi-1m%y2h9_oz6mkKs7nRMgC7!9A5sjO227=4nBD{dF!@KQ2 zdz9u0Y4X*Q&PRK29gbqZ570cV07v3;ImK(1Eqa0es(z%wOl2;l1E%uljW3UTP@*Y* zlKdi%O=Y1ePUA30q!jRG4%NPm^XbicM%0gpy14zPTEM!gWfA-!M2)p*5V4|Ew6@k; zy3J9%3=qse=!Ct30ueoCx=LXqB6b-=cS>IHT}Vv0|L3QEBsI$sL>SuVhEbPs7I6Uo2X&MbjN_g z9FD@?Qd)>3Flv=mWxL})LL|Q4+HzM-e6<0Ko4fhd#&QI!h zr$w;4^hB%ZXp~nV>Sy@Q=KG1n0Co#k=-yZ+tKNG~RcSGNw>y#=4Fq{hsdrPFVxtCK zUvG5~ce8|yaB@rwSt8bSiWXJ&Zh@7GCV>jhiSAjPzz7|p$RvSZSU|nHgZkfcg-*0i z%2FIg`8^htjRGS~u?kfPh1V@996v}0H0e7CCuF_(TgEB5KnyhaZW3ymr;aJ+y z<4hf}iEsiDC@vIsz!0AZkk0)S98YCZq1}apK+k{(5y(9By?>wVXQ=wX8QNV%T zGIRliei+yQ01%zo&YLSgFrRJ5Bde-0=rT$O^|5HrcFOCV6KNsgw#USc@;85|c(kvd ze>?jMd=FX(4R9zC-#d8H3vcxygS#oO(tUy^UR7*O7y*~+rS}in zPWv{qi51)JE56(J9#rR#0w9djJ}wB_Lr6GV73xv>%)BK#iP!E)t`5kolK!*eW%>v& z1~-z%&o^{HxPu)txr}`q)il^Ph4t)Nbnu27FhEnp2pRGR(c-=FHD`&PJK&k2PW7-Z zXt<{|b4tL6o-C(|WO8c|x_Q8JR}5zUCiEmwg$;_!(xrsU5;ZYqb*k8H6TTLBhK}=) zbwmi4hq-(Ce8-8*Vf^kxhm!ud9rqbV*dTT0(|HE0z}GJIFFk9Q0?Be+(N?Rj=}=!5 zVe4|qj$y2<4@nxV;*HqcjD>h&fo=3I-ChC>Sx3}?koxlSO6I?F7WQx;lRz_|mL|A7 ze!8eg>JnjV^pcWRvWXq?E-iWU6D%xgc5A<&ejE0_nvs$2=Dd$lD=ROVo>xejo))2UCg9x({0=~`iAdO zRUIWrBKB7uyP zRqR9@5u$24NZ@-cC9Wh*o31Whyv5g429@ESDs8NBBI8Is@K~g?x-y?|6NetS=Q=P& zY_c}z3;uls%ZB>+_%{2U`rp!-+Zl%o-PQG0D?ydyu702DHn7Q8STYIk*_1@V^@CUz z#qLvf+30ic^zH$Xi5d^7;{C>&k5n~RTE%jw9;jHoXTQ&s_LRG+e#(6~MEx5V9CiUL zAhO`zV@61iS?5to8;-$&OjC&BOTe;lC%b&}p1bmaVv2eb#ZzVI1X>`ue3?#WU#t|@ zo3>B6=-3Wr4tN@=TQ#m@)xPi{h zE8=POq`qS`D~&qFqnQHL&=)Vp zmD(&JKW5X6DSu+7;N%JYM`NQ#B)rBo-=&r`jeJf@_+Edy5v;<|NWnzzDK6_>btG@R ztjEFQvR|Qi8E60a>u#t*AKl-h4_u?}&8o^LDk+b9p|YQwO61@e!9dJ#gih_lU!sMF ztEQY?6h4z!PdPwu%1G1L^1LXFAgag^0a=n4@{^Ni9xpCRBB^-r5t+vJCp^E{SDU72*x0Eez?4Cv)P29+hfAnaP-)OxrDu4am1>qUyOc021k12L#Z-BOKJv;{Pc!M;bHtkG^?aA`yyj$WSV{>d@`9ZnFsYj{$rTp=~YPRD} zc*K^P<}eqS%CFi3D;c|L%MIxfwH3bcKxuK<(PjGn_A`YWJ~%59qq3HEr24&1Ua@n{ ztn6UEJm(5aZ=sJNxZ5@CsH|5kqbo|Cu*&|r=(ff4Nt~WiI~^yBhWfW)agk#^l>c|o zCR%CPH?pWL0+zS_L>`CP zea_wSBPtkPcDAfq#2EM7N+Ih$e`|u-NO`OPTOM@D*&=oU&(;2Pdme{B(qG?EuLp$l z#Mf&81ebS`8EFkqk^U2~5qrEMIAS_LqCl9OaO;Q+`M5pJZ%mSHX}e>QhE)WQ#mm7{UDdv;k9bJKy!h7qY6c7%NF5^*wP}?kWGrwCdfb{=lYM2e(j! zzN5QFH#E$re`U079FccXAHZ`WRjA*<)a$N!-5x7X<%Hv)G%^8s=M+9W$&)(2a(1I` z+Ym%`A!9`?jp~DDXv`Ot`KImbFra2$vJkjq#-Gp z>l5E7Lk$=#e1z`xwarl+?IeW-xF=1ji!l<*X7Xq_c!n+t#XB5AB?dhnjpHZsf zw?wgBGc4D#Wu^FWk}6WY&<_~b;e#Kem4$rzk!UQO$>!M4UsV^|2H31V2w3|UwfQyb zZ@*+qUAyuy?(G|=@s{2G+#4U5(70-kCwtP(XNAA%Mz-5akh-Zp?$sN~T3b{QVs+{C zi;v_bn=2hFWRWf0WqpNIhyP{mDKR?e3eSn{(e60xCbF@L^bM?E>z2~OVX?wQ0Z8@F z8{9wI4O1w}!67tF{EQn%rCcr?zYD!%rA|M^__F25YrY*zSG3b!4)@e&qoid5L>c_@ z5E(HQL`P*w@QtJSy%JYYRRPGsH;jJ&P*Tp>CANKifH`?<==G9XF&DL214%1=|GEdP zAU8G})?-a(5{p|}9RRXqEzbL>qn_c0VVrtp z4anhebe2954>|h~T(PqNCO5$1ogA3~!mH@&>(VbIwaJ=UN~RgMpgnGk;+x{Oh(tTq zl$zH;rHTr=?hae+iE5Wq&6sL%eI~uJ!Ao+gvGd(8dbfZ5WOkINO{QV4vdDr92{)<% z?o)&O$o|JVa;@U57tu&|AZGv=S~xVkP$cj|){Mo+sXK+wEYOgdLN|c6_0*qhD;wLM zQGUy7nYvntQU$1CH_#-R_RF^Qe*WP22=F`sB#q-ZFV~GrpVk3j52P#+s=w0@iOzy@ zSY|^WNQ$4q9Pj%~jHilqJ8MBr$*c{Shi8&nJ%p zHfB!-Nmkl3qO`b^G>7Xx8qvH_jMA%-SaUy=Lp8nef`+yoQ>~N5c2ZR^F2PY$7;rfj zv`SFiwLj#4RibQ_l2Ax*LXIp-+Oys-oCZynvMvE%EJ9CI$ZrkZ4*40BFC!9hJ-oPR zMz>~kRlv3fXEz#K z9B^->gk{ z7TS>G^Oak2KpC#|DTzce&P%l)nQSx1+^!T$lqfD|iic^Kp=9T?rF@adr#hWp=PiPjrA}WtuR3A>Q{L+?|OM zt0^L%)+d(>g)fSymT^oSObNJ4Ux1%y<#X7%G7SpgLste+4?MYu5Y|B?qAauYIUN&X zc+acP0&Kp#$35f2qP$4<@}J$JzA=)^d5Xd-c!k!X$-!PA%ld_q}n>bxDm@Zei{7?vX>v$nX0li>s2jKGnbibxbH+y{G-X?IEajy-{56O(_8AFVrMU zgFzrFb6le~i^q~p8p+n*_DH>L6nEDM$%0>}43EIEv;P&6Ww9kgv%Nd6GE&I~a_}eHOJf8~ zfb@Ac^Xaaj+38Plm>)ny3(2^bPGT74dolF@xjzp9n226U!E$!mrfy**k*A^$BMbnA z&hL|Wv|1@sUt#zQE6Xn28Hbn(+dPa(Jzj$~=m11rlm%0r7zm#Pl^lj~B^;fw)9rE9H)yxZ`@}QH)?cvPJ`PwvLhH4fUY(Ow zpT(56YnTH$Wc?HwI~?J@71Z1P1h$DyoW&U$MuPQ5ZSPpTfgBGiui~( zG}~mLu`~YP{5*m$LJ3mKfPAmyrlOAGanRr!9+?dXYkl_OG^jA{=UE-tB;-sIIQ`Jz z_)MVTAiMFf9eS!jCy7AAH8>@ASv|%}%9IQWUxIfByJT|TzLSP@2!8VW@DH|%KEYuQ zTUX%YA>^*mm1gctM8NiGpeiLcculBaT6U|V_z_^i6ATBHo|2Fgh%DHc> z0rIbtsQSgFS`U7H%Pg_57h04XI9_)AS&VlH?DA6LOV6K#nHRbIeW;P0P)Sm3fyrs8 zidYT9qv;3k$nwYWJ@7uK$3~WZP9aQt0v zZp<1@nxeGw)t2sGRS2l)+o9V7N(7XV-e>+v;PsyTpVeY&#aBHi&r)EgwI^VQV%~k< zR+>0yzxYmh*7aU>hwo*)%~^YvBR zOi_N5c@MigIWxC!^JLheuswAxZMOP1>_O)Eo;Jiwv0gj_0UArqS5M3l;(^F3^?_M% zqz#&yJRj~JU5A0fo~Q?b!>vIGsTyh%44dw{DQmk1N#Ma0y!+1gks2_>IsF;iSG}=+ z72NR&wXM6!>JaTSN#nOcU=0rLKG0LZ!&C}3`mJ#gMd1klj6(~KBuGXM4UKuRlqFP? zeUO#`?Se>IeNsQd1W8f#Yur9%1?%n*m1PPn-lnNG&)vC%E2c-~XJ}~A&%NnzDT;`| zLhjF)Tu*qM#rB*`4i}iHNgT8-wIMJ_K;VP?E7;oAn>#`OaH>>m<@Ys8m2sHat4c2t z79Wc1pyO%qY4yfn8k4Ejtl?V<8GSY(Y&FoK!R+(fYkKVs|oS9*1jiEY4lhv(nEq8hTeGI`Yj~tfFif#Kll;2?s=-@%z+}y+pr=drS zt)kKTo5$fr#kc&|8KdL&5-wT5O)?oelT9%V94nc3fiSPlSSut=2#-r?^cVkc`~+L0 zpCDoCFyEz&53^mmdUR}*G@Vij`rB;J9EIXVDgsDLdPGVNw2DqIfrg;(5<(Ux=$!ak zzqQJ(0w>>6h8Wp#rK#ien;%jKxTx)6%q1TLrULY1{}FSSpm=z6+Ku+8Cuhvob0j78 zyO9g{4+_Hcd;o`ymL3#0(s9I>Qd&Wb9IeYRG>`Q$q@c>Q*6IqU7*dPGD%IKFWi)yE z=tCWjV)Ix^ew|DM=iAK-38L(FNiym!z}Oc1GBxv@i-hesi$qo0WqIL#N|M8hEPjTc z#1wuB2RPRf=+oz1e7n(oxx?jTE@8rtwK<6c^ZNyxO>a<0J}??WJ6+gOjpI8s0i>k? zNgCl&arnZ4kFKu~QlT(wrG+29e)vslf=f3r=}PdpSHn<3y%rzojU~4Vyoye^@++8N zYq0`9y+$v)j|4?-r3M@m=Y+@JeYU2wu}zv&9<|TGqRs5gsP5^wmmuGmQQI4fH-Xtp zLfu`QIL6D;ndq`deZ{wKXH`!wNoXWZMI|HjGO+^MfEzw^K}=a>$j?eiyb#KQS)HKV zop)9eYAl@NUMP8=zRqyk1b~beqcF{|e3-&Xu;Q(xkT|^mIR_EpGrxgW3if!D3V80H zTdPg}aPGvUb$`!{5hQNefVLLEarIt?2%?ofUFB_6W{FLG)J0m~QFYNsAL`k0pPIKL z_5RT^26dxL^;Zms_I)%&KZXthuseG6smTyLwpPfVfK81u`Z53NFf!(km^+Tla8@M1 z7!@2-{z4rmFLwhFvy0gfXb2!X*_0d3rR0PAmx^=0u$r{FP_Yp~1aQoo#m1ycxY}1G|=GVv^j}NVFPhrpj;MHl0Apl8@ z0DH}CC0sJ1JNO9UW}NF7b;DhVr-2`o#S>yZw_HY7j|O}ztN=0%#FuN$B?o?BKb`jw zfK-RWU<2e31G1?G&Y+$EaspHD_ZiX7U!5wpk3uZ39&wCLbTPh!Nh-~+zA^53k=++K zBw3=?+b3bZ>s0zvkK&mNWFG7Vh&F6~E7ljW)lK$rT$`Z5@ z5rKguTPpJHUhIB*Ez>XWa6GLjHnn!9n!-XdRH>_eFY;cy6HO_I_Uue)MqTwHObM4M zWEaAaeYX=dsD9BPh6Je69jd(&tR$z5a*|(chGh_JUYef}{Kl`-zSpmaIpT$K6m&}% z5D3VYR~uaALj?`0cOp#W=WBLya5wkOPaN0) z7HQrE3wAPBs~5=T_fsp+4cWp3$phzc35sy zQ5-2%As(XKk&ZIY`eXKnCq~~)x=&P#XGoD{w+Lq(`hS=}DiM$oC2Dny4iq_I&q|pZbWE#{Me!IV@Bfqo!VLmrU#`5!<}55%YXC;igz=F zpEItL2L!4bOJ5n^3HZP?UasC~sWk#cXm^j7VQ5wdqwgwE4^zPFK3!PFjEbvYY^TSs zCbZU2fW2A{sX*<w`HTDnTP-}18 z5obwxx7je28s5tuun*sFy%Np9;66A5q*lcJ0bVv!wR9%pO|;)3Xd-eE6(;lPZCUtj z6AARnhfOP{9bC3FRTZq&&i(fdGbn6oV?1n4nPZPlzL56?1IB_ZWqFSc$;y!~mx#gi zD!L_S6F;A$bj36v*6Wzu($ zz}K~qSZv`SsuL*!Lny>O*(enZ{7vS=#DMEsq{BiHytPpk)@-5;WC1Y;__tl%<^!y0 z#aI_0?9q6wim{PR##iQeM4Y7V%0^3{T$Kb(^=vH_ zv^A=T^S``DwM2R4rWY}d8VNoFXLk-ZAD!k*Lcysh)4z5R4Vk)|b2Hep&ugk}C<7Vt zj*3fnp>}~C+SDYDo2w_h^|f0d5b`$IO|^H1UEK+`!pYr-~$WDM6tEk!>ca>l394MTk1OkJb3I z&;#K-(r3*E)rkPyR&vQ(6WqHbV!xJS0m?$1wv_mxHH{k3L~fiiDlrPD8N(4@9_aRK zgFO=~4nEf$VKsrHDs$iXO5$eG_ug*!Nnin(;y7B6LZ&&nuY5YHNjGyg@6b&esx<1m zjvtTa9)a^)+8~^OLp!x2>_;@!4s;Q(ZJasY$-A-oU!= zFaKNQ42mJ_A+LS>)Nuj95{35SL6uC&f%NpR2u*`0<%lK2g^Z3udcS68Y2xj150c@UY&GQ{L6tC+ zvHGb0(iGBB=OMFa&?1-6KevhqV@-_x+Z`71s~ryyb1=1hpxRqXf%bC&*IXVNv%mnU-kEZMe}anB5aCfVJ&9Xkw_Ze)=tnclDU{xHoL=0$7rldxDEiX7qbs^Kmd$nwhFBGNlI$?j-mK1#Oo`J;#b3GEpJJ`?m+ z3D;T+g!~yy3K%#9uBg5Q_fw>t11Yfa7JT| zdq>zX4cJcUB7tJDk^c5086!hm%kK#F%*kr3w128!X(0>s6V0t}im|+L$DWH1QIqBI ze8q~Xvnp{QL8k=Jp+cse-0#LmJS1Q3f&9qf|1sWS60C)3PC@mM66cJo(Opah2I)o> zCtPG?$rhn~lV9SGv47XGEPQW!PF&&V{qTl$MV(=`6qu4Zl5Z8-FnSjQX;7C-enj#f zwe47n4B*3ba|x;4V@60L1~qj>x%355S#8sqErGTZyQ@J*>FsJ_Md@YqDsT!>e+TVuE1%+ES677%4*T zdQpLRtN&bHGmcAtXR^LU;rRx_GKJ*0-src}>3*ICrJ=JngB$KZkDkU7htdqkNWwgx z-3&fQyceZi1{9mLixaE-Ymh$oTIqu7eY$jFi}!^AN7~3!-cgs;F$j6>-q#358Er}+W>;Y+>|YNH&C z>HhZe!Gb?uH_iAAIxlgMZz|Y2haKYF~VP-Qe=wk zc&DMRYAwm9AaeeA*kclHS?(puW?+h=VE-X~cXpro?nG(HDZb3OC=wPmm)5Bw>+!a9 zp&N#%nSbQIe@|XI4Y+W^M1{s|cxX`VRYSO{yrU#meXz4znnDN66;pTBYO#^t0Dz^X zB(ZZVPC}N?%bYiCsNvaW%;0X%E~PL-gS4X&2Y4#E-KSNs9G0T23ITmefB;Nb0NvM# zGc(pTW|F~KB5%=oV$On$E;*eRMQw1jRM`*k7O&8QSz|mrJGW_$-JHEr8TS@tw-1hH`G;`6^y;yDKX_ zv&LBx7-?$!44+4Oys4))Iu7`9@Isp)Z znhXTkbEHO^P1DFUq=UG~ydjMK=O=#H`CU|#U(LF@0S}j6DRF?=gZO@)PU;KPy}Iu& zcR5?sw$T3h-1S#SW4|WZW<`*eCG=PaLfv9xd%>-rS> zMV@2I=8_9^YZNL)(Ne9xTRHd+R{6Wp69^lP6W1g)LdmQR_kqUq$(EZ?{szdv-^}xr zKQNp2?T4ap>YD1PV)zsr%KD47C@5=&ojf)1sFQZMYjkN1vOyhrTVkR%|I^g~w0!Oh7G+<1FqE7ycjBP4{nO^<*p+C0(ZR3#2>78~F{O-kInUyF1J+=SEo(Ss}4?%3%=TImgFG zL2Fr*WOFy@-q4`HWRe&-tLv0}O}hM?;w2>TZ9ExPe~&K9b?Q)0kuN*0A;uHMemN{| zDQfk!I^@?i47Hlo|3s-?qt21&qN65gK^~AO{?hfi?H7Ttvc+mu&poqGX2V9kycIel z2b%y%lENHx(wUmQE_bZ<17`$Ha_n6Z>ci?RC$gOdI7Lf0jim8dMd6r#)Xg#tz2Sh} zB&HMow?<>v;VnVZGOJey7jVI%m12akJOP5hY!8x+GhKR_+W(Fqy3|MCxpdP}=R~YX zN^i;|)r_LwdP=7=Ll+t++29J2z|^wNFm=%y<3~`oUm47nPS71hb=Kp`_Uu1!rTE_n z0W;_m{7Ci35BjTutJhxltjQ3i@cI$2e2Eg>JK_$(u-)FhY0duX06Zuk`sSm@`Z6!w zMwbFzFH46E2~bd*2OIvk06Xsj;BL1|?D`UM;1M^sf|4C0w%A$aV=F*7C~OXw{3Emv z+_+V}&zQ*QWcORarm-N~OH5cVk)mT&^YgLPoq?Ov1|syqwK|N77pC5P+7s2X_8%?z7dwS}AnG9AGCFfzIKX z)SYs#3*DRVcG8xfad0P)Bib2Hd>9qoN9Aeac_gat@%z(1ObWExNeN{ExqNkMgpMeA zuMIPYbS>5J3cv!y?`9J}c8u6X2ZEGMq?Q~sTmzD`i9CWFqAQuH_D4>@pYgY>tQr!f zfL?6E03{mK?PUqBddbBglA2AY@gOH zXHaDRzgvO7W(YSj0q2F;Tg94C%N#O<$^%;Rb_yf)U@V~m@&+W#i1aXy<1=2Q-G z7Ud>+$SD-syAenm;2T0x=N;zOh(z}zj1(&7!3dGmP@v()T8ko_TTfJ{7f42s#h(d(llc@scwG}``7MbsY%XO{FC?kDmyA<)BqWVFsJ~LT;gMO#79~V9&p<6_ z^LiQ{Q`WF(*nfm;GDBI2$b-Q&)jirB{G%AUk;?TlNDnP3P16CbDzH7|0{E|Qsr|oQ zD3blBDU8oef96? zOs^ux4RQ%V!iN4wZK{GcjKlk!0r~^|2~X*yv|cwUErVl?0N+VZA3e zZDz*%d#qZnjV4X+ypSbmqY~eY_-r6=$!CBnglv@`nD_pf+L*G`Dyy^VE`l7D}uV?ZdslT!G$ze=v(50UbExw_RR&D z0OR{)7qB$@e^hbn12oNyU6B;q`_1R=;NyjZW;8h=wnJy}9&k<4%zUM)3|-^%^5{_| z2Bu7i%Xi`uDvktHFjY>9#^`kmB4JGz8TZbjV=U;p|4uDB`Mqwc-+ufVZd!en6wEQi zxbnf`U@{5iD6Bdw?4p9Y>0j{kZTS{FTRn}EE6z1!rTDUnB-;c3 z^0`7T&q^+q4sW$F2mKeU!_kS!%LPAPX=xU0w%|KrSl3`Dd+hTjJM9(xn5V(~ZvjR2 zT@>I5yeM>dK-2_vX88Hp5BMy4b~<3bz)S$0UIv|RK!G3n55u?6bDOf2Novdc;pgxA zQMEM%pp$$j(=20>1;YDZOnF)v7;tDBPcIU`L?gTVTJ4>q6${RSRTP`BDgGP+g@bL~ zK-zb$K*a7i6BpaVmQR{VEXW(^dJO=Ravn7)=DqApZQwF~9O8*gkYVIXQBThHc5-M{U}7Po&I zVtYq)H*ugguB)3}3%s`SyDaFa@N|z5EJQ$2_vo#*JLBZ+XQB^d!IeJ-o~(djlAw zVfitb+34;kG$q{l_JrvX#bNsZdm)YZG#@@)Vo|Fm$)$}S3CynfdMEynzMYQ#pPEk$ zWL}LQaOvS%Knwpw91Zl?Z}k3=yA4Hr1?5qxU^q`PI)&vxq8~nL$EX(g&QC&N2l>vk@bo zw3iu+-{K_u>T=;Y64-C7>ns_+((h?*5=gOXlBLL>GRNKeqRcY7y$0MNhi|KK1bZfG z4(oqHAuAEF4pWu|21)aWA;*u#l67yz!}Mg+46Q-0GT4iWwI9eu4EafqziR^W*oi<$ z9(U$~=Rslk5zDZQ;Fe;yCgMg`6Lh@30_$}I`X9=?V!mX+PFM-DC+C{X-Tbd&S76#i zfTspUH?F6gC*;4VcS{xe_@X3hKkrOm_b4;2DpSBLFla%tr<|Ml&L%6`Ue|~fSZ`62 za|^Z2jCxGRq+i)Hl$t{;(+Y=*v~~BSQZ~96iCTt=tkL zs#)2@H@Atb!Yb~n-GuqEL&XJg-UQl9T5)rya4ZBYtmFp0#ZI~C8i7MkTNgRgNXNI} z++yBHt`&&vt{PO6^v-4cSxLV!WiMTJHkK-4#lGB((2+Oh8a_|037%>v2bq9=8$F+% zB}*v#f7jS1S3f|U$--0Oqo|?veH+iA!AncAs_zRLllphAls)J9^KBpGsaWs)wzhnQ zV!SpG>xWD{G*BfNYFaQJTAWJmHtn208QOMmBQDw3NYk-rug?O1YDhU#R3$e9K;}n= z04gmMTblBYgru{G1Tf?Hpw1a{QWy!YbxgUm!C#qBV!x)dS*pi-uMC%jtx|lT!C)pi z+Y4Qf%rHbasP(vCpunTid(vPS80()gY3b6n?(H&;;9mYOIkxSYcEwKy=8yYDqJLK3 zSnqORbUdsk@jIPH|D=xlMN=9b8`Z7q~3QLp|I0~VnIbbNm6 zOE;V=eWONg$1_*}=bz8z*zrh(mZ8HmE+*VB?BflU^BN0v@{EH^l^66Q+puj&_k|rj z*6xP~)8LEOPsN<~p^2q0u5{akqm6p?<+pru+*QlxfqVJK6DAu6^uDyF!90U!X@B(~ z&+Zt9>k2kAA!IR5?riC*Gfcu+u9E|9EB5_DcFYv;rV2un7Vj9_M%U2vQS|JLPw9bxI121CG&! zBqR{8gZy$nq&&11pK+nck0Cm}>n)LR+T4#jnMaH!TWoD~O&j&Dk6C8d&`yoM)fK+~ z^dkixEbjq%C>|t2i1oCOG`~ev<2YVtujD3piIvBkc8Y6eD4l?<+rG7OT0S^bKW{{t z;l98X02cK{B{j1?NJM!C3;+!{2A4yc)NWI)TPXYojWi6@V(_`qA8xK@odoN)hvRSf z^c(jn_t}jKGDdfeXNtg2USCZY3A!RS?nD|eW(UZs#95JuqFR6_@_J71tom>u%O*R0Wi_v?wEW4_k9_D21Nr^wC4es^B@0oFyGGnZCQjUl5r5ytM zU#fMw9(Vyo#TTdY2igsd?>^@7fh;EP-xo*TuH4-7?E0|hF`dO2%+3J*4tAyn3#6pi z=jn$D@|rsO79N7aE;yY;9C5SC=|zq2l~p{py{yC(KXHYki4G53PjVu+ZI!hxfhcOo z%8TyvH(b(~hDSL^HW?4!9zbYMD8)^fn-T@%R6Zt{t)zZ+s0HH8U zRF0OTUWMq2%VXW)E`6|%px(oiXn*~Z0W^E&S?Ksb%T!!mc%W$?qxdZ2s0pc%8?4+G zvDvYmGF7uAlCP~Bba5>Xe;Yz&{4NH2S^Gp6jQP$D35|0a&4jJEUlFJadgKA$VSNX< zZ({h&8N00cK#5)X0*|8UAkRr}JOWdGU*t%3AOq}4gl<*lIeg^?|16WP?TFH#BA~x` zI4KxrX;#lX=#M0trj`+(3?F1$pbcldO!XBY;B_|JoK1E0`@iHUF|o?Rcvc&^*qq!_;8S3{0JMJSf7Or*fYfxTolb@riD)zn17tLOfP`Uc(LxD zx_^ta?5^!3Eon>Q(S%MQ{4jfD@XPptB<8K;M~K@2P0O>Gz8)s}KOvKTOuS)fwkyM% z22Y${ZdJ<(kZ@fS@ZuTLfx|FZ?Zb&7s+(1tC2zZ4ck76`u zS+x~#Dx7|%F33^s;%;rvbY|Rcc^}*`qZ*UL;m%^t*)g%xC<@ID?~8Z^w@cxLGtbX_ zx2G(Q%)5kvcb(Co65=Cgl@f+cta^r&IoFKV3&)tWIv0MsRabg0%&(Xcw+QGDAdm0r z7iNR6i+2X}DZno`5@_#$7cX1?A*EJc)39vYixeGmLPoUjG2LXPvc?2KVrv-<|N6Uqi{|gJTH6kFk z8tzV%8Y8JB?(nx*qO!&=PX9SX?o_~>7jpD4c5cDE-)(jSZ+8YekRt z0i(MV;w#ny!Q4$Ry4ajE*@Io|JA{*ANj-uRjU@*zd5%dd4Tj8QZz>OC(aJ&QTc=W_ zFTzEn(o%qvSjWWjjojKVH+q%8epq7<`mhKyyP5%92`o?I@lBX03w+7{CfT$tS+3_p zgz6hlnz;TgT1)P(GxBFrVKWIBG_{V|&XtbrphQ-1=be224nbW?I~MSJTb$xb8P1es z0puSmhsGO4(5L2+PS~-a8#havI(oOy-r<&G1F?Ic%XvjH8s$my>I1jAGopqGRrV$b zsQmOp%eg{I10U&^)0?Xvht4$AY8O%hPWi|Ulm6#H5)I*eJ|7jyO=4%Zav`2Z@?7wiwRmQSOFi(t%uTCt~c{6Fi;2e(Mo*q2wQcQjoVNZhAbt3yf}0rUON!xRX!S zlLUB#X}7z33E}WbP*qXvvf$mkSA|Iy=>Rl9=9Pbkl~){~nol)1!H1yJtm;3)TXqqFi^q5%h}|9G)oA^cahWgA)KV4_w#XXAbpfUTJ^{_Ovo zv7~9{CD@spu(UceZNJGFdrid(@kQ_8MFTdnYRktml)2K4nT|WB(j!bx5JNB9cJ^dQ z)}vKq8W!}HWWZqisLMCGIPLnMu};>OFvxAp zy1JW2%Gce+Dt;y$mfVNBX1EQpRDL$7R$lEo42?1;5X>t`u{qKRD;Q(74X>y!Nc6v{ zQSwZ0C_~?m8nj?@k<7h(Wz((f;<~vkKJq6wEzS1$o|qtedp-K2l7M;`L3Z}**g#Uq z3M{^rE&NA@xx}3+^0M2$oTQ^z*F)`^D340tll1-oX7jl(w6AB5;Ib7(@z=mug>dm4 zQSU_9g1i5waPN;0<+(}jK3Tu#`RJaG3D(w>PgJED7TS2_1^6Ijzb6N=l?L|>QhbWl z$0_^15M!uIO`*eRg6nOrlGrx>OtOLjYxPJLmzAwP%dodUV2o`_0dNkF@dgShZo-0% z(-{f@~7uHo* zZm)Oz8k3bkRX0JEf)Tfy3NSJUeqGKixUhk0o%|Z&=SHdwT2Oi4kt_hF$!9437D|J1P`;n4l_5Jh;??*?qn z3{fokyIUGuT?99C;_ME47n12rokoI$l&T00=FwBiMe@zg&Gb@2q#}Ji6g=g;K$Wd)#a5g#l7*8|Ljew^JRPq#H&{d> zFv(1|6`#RF+ELc3r*z$-=tdyy*Z<#mev4Z(h>$%&n3w3zGMg)0qcEQ!-iGcYVn~MV z6Ktd0PVIBglR%m`^3-^y3E{k`bcnM*sm~*1AY9;{1Hpl=CsiaPOruJ+RU?wPWd?tI zuV&~S5xAY{9^zueuho?_T0Iu=_;W8u5aPRr`-S99EUHPH#u86joJ;oH&420y^&%cbrA^--_kZdx;j-XDA&HRH-lj#e|eDXB62k5ixTRZk9hs_k2!^-l401PE?+x zivq6UwQX(Xa{y|n_Z(VM<9Bk^@qD~?F+j`h6$)p!6$00gP!|q~B%xs1ItaNEf0*h6 zv3U#7fBFQd5v{rmtiIqN1Qj}Le+xHvLc6=as%#u5gIDVCEwtzq77Z7aC@7;J=Gc*k zo$B>VJ917NYYkF<*_uYL{kYuca7cTVW?Le3Ec|^deu*qwEZ{m-Fn(LPuVSISfwxdu z@o=OS7V=Hz?75|P{@}vmO@oBWvt;(@)|^tBlpM}NL}u9mGZzg$xm?C#*YP{ZM;rF^ zpTKn79e3{lW^y=7Foby(_y@l-`E* zPkJ0$o-j%cLJi%crb~7ez|&e}ih~t*19%pi7r~!z@49;zulrb-h$D)bXjr68`Qm2X z=CPMzrx z-er{^HdUx;{mG8D$lPnZ|6?ivE_+s#r~l}F+HS)c1Q-CzN!(=lqQ&IAy7GlpQ3xx7jwu35fl>DG=BU6`GS^qO`6K2_VVs*WGoQ zAbF)>s%?Ldg6;^bzL3PpXzQx>`+ts&wsG}QcD`~ZNhr=%%$<)$)M3hBpA>a4U@5!~G*geb?sN45&al)oH;rvez zzMG4n0bD(V@Lt_3q=gAaDB$D}Je7+Uo4zK91b4`YxKyKvCt@JTRF*AppZ3KM?kp_r zL{yGFX5^B6PMzG^3*p*Trbk|{eyw2s0EiG4LeRqF0Evs~EJyEruuuarFbXa9}j?rZ0 zJ@*#s4sKi2Qaq7-9JxCj6>WRLf1}Qk2D-p%(IJxxflqquel>$&>Mxh{16$K&g3rBe zl#|+i&NnU{N5@P1x*c^$N&QdGt{sPTmZ<(CYK#Q;YqwPZP31-=^3`!$J9+uH94aW8VG7=GyvKk))ow#PIjbA#zf3@Ax^~VrL@+0Gfhnf@pr5h4*pDZE!?EzwBcIqd{gMSRG>ow?J@H`E8TEtIHhwEjB%uSHL<|I(U-#IAfI#@ec` zG>9uACMIX%*?8&=`TaH%gx03ftJX;i8;TMZYC~O%3|eh`n_CP`keCYTLd7yO0!0M; z>gwEFe24uHNpvI?V&UxC^Tig+#2Hbz`(-{MEK1PQTu?<3aR3NK0p{9A3&?~?5hPp> z?XdNFavet+Ba%(NG{({35(WXPg0}*SM4v~BInYt%qy$>B^c?QfpE@|Bsu?+uxM*r} zk>y0{=PE8uErv$tb3?0f99?MVB!JqsDq9G9W=mWxfH$IQ-Ud;;q_NT*@6C^| z_@dTH3Ctxnum}``7fWsZb5VBBKJYhzCq;xeHfyroOO4yL8L2vGu|?efR$?0DQ_8i_ zjcLr%_DoFXRPw@sNv|^&hY$Y9x2G}j*WD`yr$xX@!N)N0XA-;;1C9V_+9e0^_ev2M zQv7uexkI9&3M^iRHFt55`KT+2pSDAnpd0ki*CSt>>Zy&Fv=l(%_CizPx14kn8<}YfC6A}0rnWlmnHLt z=NfF#OU@oFAH6NlH^Uu-yH}#1vjl8_twrBajZm>M&g%pdpSBXmN=v#+w4d(KpTUx(gPfz)ZjXmSSJze6q zke=_-UmEGWEbjS_*I7-*D|zvJ88NU* zIEk(LtcZb$AL^+Gq8> z7>(>2<6LR{peUQlV{s$ko`RC>&bWywO^ct7ioNWVoea6-NwG}gB>jJ30F$P9Kgyv< zz9+TLHD!0{)Em`0Tz`&kk1Ac@c6xf;P2(!`Z4nwmcWWY>nooxnsae%Xg=Sj~&P#S* znin{28Nk$^`@-a!XoG?B|5#!hq3X01-s;6*&S_ve5cEK>=&iST`umHb(D}8LuLL3n za?%GeeoQLxzPckgdw-LJjCcC#h>I?8qF=b+;b&$OVPz4Sz`9$j>tLMuXfZ$SW z!WZOm(EGa`I@SUQqB2i-H=dLO?O+CB>RY=gKqKstP}kU}`RRg3s>M21D48`F^2 zuW$s%1|NB(1oB;&|LP@&fWl92qiYZn=V9U|LWn-cODb)LlBRDDu3>7<|MJyO*5fC6 zo3p?#Q!_R5Cs`?Szt1*gb|pj3%Rm_iMl%Myj`{q^SQ1Qi_bcdDnm_oRv4P z2Y>(o000E$nb*-V$D!_qwGjMfFoatIaO1~j@C#yo^}TNpZX!7Q^e*Vz(bxb00EyJH AHUIzs literal 0 HcmV?d00001 diff --git a/notes/assets/dbe8a06f8a3d61f2e167d7b3ee3c5ad49a1f8d86.png@942w_566h_progressive.webp b/notes/assets/dbe8a06f8a3d61f2e167d7b3ee3c5ad49a1f8d86.png@942w_566h_progressive.webp new file mode 100644 index 0000000000000000000000000000000000000000..ddd06054524c3f983198044110cfc319f67a893a GIT binary patch literal 13568 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 literal 0 HcmV?d00001 diff --git a/notes/assets/df0b4dfdfcd79b3a5c181b7f529c41504dddece8.png@942w_761h_progressive.webp b/notes/assets/df0b4dfdfcd79b3a5c181b7f529c41504dddece8.png@942w_761h_progressive.webp new file mode 100644 index 0000000000000000000000000000000000000000..d357d8a69d7596844c95e69f8c73500f8d9385ad GIT binary patch literal 20650 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 literal 0 HcmV?d00001 diff --git a/notes/assets/e0340a28184fc7c34680178c16c61fc984a7ce99.png@942w_590h_progressive.webp b/notes/assets/e0340a28184fc7c34680178c16c61fc984a7ce99.png@942w_590h_progressive.webp new file mode 100644 index 0000000000000000000000000000000000000000..c5974fb49fde3f29bcc325201f7bfd6d90327700 GIT binary patch literal 17498 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 literal 0 HcmV?d00001 diff --git a/notes/assets/e850cd44113c98ed6b73060c17c415810c6fa1f1.png@930w_558h_progressive.webp b/notes/assets/e850cd44113c98ed6b73060c17c415810c6fa1f1.png@930w_558h_progressive.webp new file mode 100644 index 0000000000000000000000000000000000000000..4ef935caa273e9352c50e11b053db366bca779be GIT binary patch literal 11872 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�D29i?$zRD0a%ACUs3naqu2P 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 Qy>Xv6XMajC0srs)A8bA%x&QzG literal 0 HcmV?d00001 diff --git a/notes/assets/f5e12e4882753fee5ba818396bd935485663654d.png@942w_741h_progressive.webp b/notes/assets/f5e12e4882753fee5ba818396bd935485663654d.png@942w_741h_progressive.webp new file mode 100644 index 0000000000000000000000000000000000000000..4ccb1846ceaeebdaaed302ae6554b91986741b59 GIT binary patch literal 22122 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 literal 0 HcmV?d00001 diff --git a/notes/assets/fed8f7e698d83114c8224e3823c6f8e031e8962d.png@942w_515h_progressive.webp b/notes/assets/fed8f7e698d83114c8224e3823c6f8e031e8962d.png@942w_515h_progressive.webp new file mode 100644 index 0000000000000000000000000000000000000000..a02d888c36f2b2c55d21bec15140d9792cd26b49 GIT binary patch literal 24880 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 literal 0 HcmV?d00001