随机的殇

生活着,或许多少都会留意身边的人吧。在一个个的集合里,有的人来,有的人走,有的人来了便不愿走,有的人走了又回来,有的人终于来了,有的人终于走了。 变动,每每都会在心里荡起一阵涟漪,有时我想,是不是因为恐惧失去,才犹豫开始,进而错过了开始,终于永远失去。然而一但开始,却发现并非总是想象的开始,当失去了想象的开始,却又并非悲意难平。 大人总说,生活就是这样,来来往往,离散聚合,如池中浮萍一般。唔!浮萍为何这样?这样又是到底怎样? 是不同集合的引力斥力? 是社会学规律? 或许有,但决计不单单是沙里淘金,也不单单是优胜劣汰、前浪后浪。我看到的,就那样,嗯…自然而然地,毫无征兆地出现,又毫无理由地,无可驳辩地消失,而后,又稀里糊涂地出现。绝非几个小时的电影,几页妙语所能描刻。 如一个旋律,不,旋律尚且可以品味琢磨; 如窗外飞来一只麻雀,不,麻雀尚且有百科全书记载其种群的生老病死,地域分布; 如一声痴笑,不,痴笑尚且可以解析出其心理脉络,哀乐喜愁。 此物无可比拟。 此物竟不可比拟! “并非我不爱你,而是这方土地,而是这意识形态,总之,我要离去,并永远爱你。” “并非我不恨你,而是这方土地,而是这社会规范,总之,我在这里,永远地缠绕在你身边。记住,我每天都会恶心你。” “并非我爱你或恨你或漠视你,而是我碰巧结识你,你碰巧结识我,或许,… 我终于需要结识你,你终于需要结识我。” 啊,深刻的随机性,或言荒谬,唔~ 绝伦的荒谬! 随便吧,莫顾他人熙来攘往,且自迎风嘿嘿哭,嘿嘿笑。

2026/1/21
articleCard.readMore

子虚汉化Weekly:思想猪

注:本文所有漫画均来源来自网络,根据知识共享许可协议进行汉化,原作者保留所有权限。

2026/1/11
articleCard.readMore

MDX+HEXO初试

今日发现了一个hexo-renderer-mdx渲染插件,可以直接对mdx文件进行渲染,而且与md的渲染器可以共存。查阅了mdx的文档,它的一大特性就是支持JavaScript,比如大括号中的表达式({1 + 1})和ESM(import和export)(引入插件、变量、函数等)。发觉这其中有许多可玩的东西,几乎是敞开了一个面向前端的大门。鄙人虽玩这个hexo博客五六年了,对于前端的了解也仅限于html+css+一点点js,完全没有接触过react/vue等前端框架。mdx的出现让我有机会可以在博客中直接使用jsx语法,从而可以使用react/vue等前端框架的组件。 今日便开始尝试一番。之前用LaTeX比较久,很是享受那些自定义指令的功能——临时定义一个样式,然后便\lalala()重复利用起来,巨方便。通过mdx来执行jsx代码,便可以实现这种梦寐以求的效果。借由jsx还可以直接进行计算,比如输入{Math.PI} 得到3.141592653589793 用作自定义块也很方便,比如我有时候需要输入一些不好打的或者经常使用的文字,比如站点名,我的笔名、座右铭等,那么我便可以提前定义到一个字符上,然后在需要的地方直接调用。在做了如下的定义之后便可以这样写——本站名为{blog} ,站长{me},近来的座右铭“{motto}”出自《荀子·解蔽篇》,意思是要沉心静气,专一学问。 export const blog = '子虚栈'export const me = '秉蕳'export const motto = ' 虚一而静,浊明外景。' 本站名为子虚栈 ,站长秉蕳,近来的座右铭“ 虚一而静,浊明外景。 ”出自《荀子·解蔽篇》,意思是要沉心静气,专一学问。 很好玩吧。经过测试,mdx插件目前基本支持md语法,但代码不高亮、数学公式不能渲染,或许需要引用一些组件什么的,等下再摸索。 接下来,开始学习点React,希望能做出来类似duckquill主题作者主页那样的效果。 MDX 试验区 彩虹文字效果霓虹灯闪烁效果

2026/1/9
articleCard.readMore

乙巳大雪摄影小结

乙巳大雪摄影小结 反观博客今年的内容,写得简直七零八碎不成系统,全都是稀碎,这一点长毛象贡献了不少功劳,它夺去了我的表达欲! 人非自动化工具,表达欲一但宣泄,是不会立马恢复的,往往要经历长达一周的琐碎与鸡毛蒜皮才能酝酿起来。 即时的表达,即时的反馈,已经让表达的回环压缩到小时级,也就是说这样的表达会在几小时后腐朽!好短视!我说怎么一直活在过去俩仨月,原来是这样的表达训练了我,异化了我! 要抵抗异化!要直抒胸臆,要革命到底,要坚持革命浪漫主义! 从本文开始,至少每一个节气,本栈都会以某种载体写一篇小结,总结这段时间所做的一些东西,以及一些可能有用的念头。本次就以影像为载体吧: 此次小结时间所选取的摄影作品跨度为最近一月,拍摄地点主要包括 绍兴,城区—鲁迅故居—大禹陵—会稽山(11.30) 杭州,西湖—云栖竹径—五云山—九溪—贵人阁(12.14) 慈溪,杭州湾新区(12.22等) 题材分为抽象(主要风格)、人文(关注本地人)、风景(登高望远所见)、微观凝视(植物特写)。 抽象 山阴道上 徒步去会稽山,路边一白墙的裂缝,很有木版画的味道 秋色卡 失修 富北村徒步所见,残缺更有动感! 赤枫 西冷印舍院里所摄,当天见到很多人导出拍枫叶,只有这个地方还算清净,调整好曝光了几次(旁边一幅世界各地印章演变的科普图值的细看。) 会稽山南 为了爬到快稽山看日落,四点上山,四点半登顶,看了半个小时的群山。 打开天窗 路边一化工厂的简易棚,窗户毫不客气地选择与地面倾斜。 飞鹤 建兰 新买的建兰,叶艺确实好看 横切 一城 杭州城远景 一湖 秋楝 日落西山 贵人亭看日落 勿近 九溪山路上,消防水池上的警戒线 凝视 路边非常机灵的某种鸦 人文 修复 绿化带边种植植物的工人 虚钓 苏堤上拿着虚拟路亚竿健身的大爷 刚决以进 路边偶遇的老人 菜农 有利位置 桥边大胆的钓鱼人 修复 绍兴城区的河面清洁工 微观凝视 风景

2025/12/21
articleCard.readMore

字母雕刻笔记

他山之石,可以攻玉。 篆刻,作为一门小众的爱好,其入门的方法几乎与书法一样——依靠不断的临摹。篆界最标准的风格就是秦汉印了,在秦汉时期那个篆刻的黄金时代,作为身份的证明,王公大臣,大小官职无不人手一印,印章的管理又极为严苛,官员死后印章都要上交。在现今留存后世的印章中,一大部分就是为了殉葬而草草刻的印。又因为中国人好古的传统,到了近代,篆刻的发展也没有因为西学东渐而受到太大的影响,除了几位风格独特的名家外,篆刻已然同书法一样,风格固化、评价标准固化,而且字体难以辨识,几近成了中老年闲人打发时间的玩意儿了。传说当初从河图洛书里,古人得到灵感开始了文字、八卦与篆刻,而今纷繁的造物也不比当时少,为何不可再次向外取法呢? 今日办理的无线电台呼号下来了,打算刻一方呼号印。呼号由六位字母+数字组成,这就涉及到一个新领域——字母的刻法。 BG5GER\Large BG5GERBG5GER 网上查了很多资料,含有字母的篆刻作品凤毛麟角,大多是被看作“一个妙手偶得的小创意”,严肃的刻法鲜有人研究。于是转而向英语世界查询,关键词“letter curving”,果然在“影子图书馆”里搜到了一些资料,其中最为详尽的莫过于这本Tom Perkins所撰的 The Art Of Letter Carving In Stone,浏览罢,越发觉得书中有许多可以借用的方法,因而做此文来记录一些关键的内容。 书中分十一个章节,有背景、工具、石材、刻法、风格(罗马体、意大利体、字母与章法)、风格演绎、墓石、铭文布局方法等。本文重点关注有关风格三个章节,希望能对后来人篆刻英文字母的场景有所帮助吧。 Our aim should be, I think, to make letters live... that men themselves may have more life.(斯人之志,在乎文字。其字不灭,其人存焉。) ——Edward Johnston 实践 因为印面太小(不好画线),印石太硬(不好下刀),第一次尝试,刻地跟狗一样。 历史 在工业革命后,手工艺,在世界各地都会迟早会被大机器所取代,刻字亦是如此,得益于的诸多能工巧匠的努力,刻字得以在二十世纪艰难地传承下去。英国的刻字业比较发达,很多手工艺人都来自英国。 Eric Gill派。祖师Gill,师从Edward Jhonson,一开始是采用凿边的方式刻字,后面全部使用铅笔勾线而后描刻,其助手、后辈多沿用其风格。作为大师级人物。盖尔对制作行为的评论很有意义,他认为创作本身并不是达尔文式的生存竞争,而是对世界的爱。在此引述: …the most important motive for man’s activity in doing or making are neither animal instincts nor caprice. We hold that love is more important and not merely prettier than instinct. Upon such a ground and from such a place of vantage we survey the works of men. We see all things as evidence of love. We make what we love – in accordance with our love so we make. A pair of scissors, no less than a cathedral or a symphony is evidence of what we hold good and therefore lovely, and owes its being to love.(…人类做事或做人的最重要动机既不是动物的本能,也不是任性。我们认为,爱比本能更重要,而不仅仅是漂亮。在这样的基础上,从这样的视角出发,我们审视人类的作品。我们将万物视为爱的证据。我们创造我们所爱–根据我们的爱,我们创造。一把剪刀,不亚于一座大教堂或一首交响乐,都是我们所认为的美好事物的证据,因此是可爱的,它的存在归功于爱。) 下面几位实验性大师作品 工具 同咱们篆刻一样,刻字的工具也非常简单,不过是刻刀变成了凿子,又多了一个木槌。 刻字槌。重约一斤左右,手柄材质白蜡木,头部用圆形铸铁做成。刻如花岗岩等硬质石头时槌子越重越方便,也可用回火马氏体钢。刻时用边缘敲击凿子。 凿子。分钢凿与钨凿,前者适合砂岩、石灰岩,后者适合花岗岩、大理石。还有如上图右侧的爪凿,用来给石面上增加质感。 画架。用来放置石板。 石材 英国四面环海,所取之石多来自地下的岩层,其质地较硬,难以用类似我国篆刻的方法来人力操刀手工刻制,所以采用了凿+槌的方法。主要石材按照岩石大类来分有 Sedimentary(沉积岩)“沉积岩由海床的水载沉积物和钙质沉积物堆积而成。各种石灰岩,如波特兰石灰岩、德比郡霍普顿伍德地区的石灰岩以及牛津郡的蓝霍恩顿石灰岩都适合雕刻。约克石、苏格兰和坎布里亚红砂岩等砂岩类型也很适合。个别采石场也会推荐其他适合字母雕刻的石灰岩和砂岩,但在订购不熟悉的石材之前,最好先获取少量样本进行雕刻尝试,并说明是字母雕刻所需的石材,因为沉积岩的质量可能会有很大差异。” Metamorphic (变质岩)“变质岩是地表下经过高温或高压作用的沉积岩。威尔士的蓝黑色板岩相对较软,非常耐用,可以雕刻出非常精细的字母。坎布里亚蓝黑色板岩和迷人的绿色板岩通常带有天然斑纹,也适合雕刻字母。绿色板岩比威尔士蓝黑色板岩更硬一些,初学者可能不太适合。德拉博尔板岩产自康沃尔郡,尤其是较小尺寸的板岩:除了天然巨石外,请查看是否有较大尺寸的板岩可用于字母雕刻。也有进口板岩,但其中一些在室外会漂白成浅灰颜色,因此最好注意这一点。以及来着意大利的白色大理石” Igneous(火成岩)“火成岩是由地表下或地表上凝固的熔融物质形成的。其中,花岗岩是用于字母雕刻的主要岩石,主要产自康沃尔、威尔士和苏格兰等地,但也有许多种类的花岗岩是进口的。花岗岩是一种非常坚硬的和耐用的岩石。它需要专门用于非常坚硬岩石的凿子,不建议初学者使用。” 刻法 书中文字毕竟局限,在看了一些视频后,对字母雕刻法有了直观的理解。 西洋字母雕刻中,首先是用在石头上勾线,用篆刻的术语就来说是上石。他们一般使用铅笔,将所需要的字母轮廓给画出来,也有用复写纸描摹现成字体的。其字母轮廓一般是衬线(Serif)字,横向拉伸,纵向压缩。 下一步自然就是上手刻制了。原文大意如下: “通过凿头有节奏地敲击石模,凿子在石料中舒适地向前移动,而不会卡住。这种无障碍的移动是通过找到正确的角度来实现的,首先是凿柄的整个长度与石材表面的角度,其次是凿刃与石材表面的角度。凿柄与石材表面的夹角应该较浅。如果角度太陡,凿刃可能会卡在石材上;如果角度太浅,凿子可能会在石材上打滑。凿子边缘与石材表面的角度应为 45 度左右,这与 90 度截面的 V 形切割所需的角度一致。” “从一个行程的一端到另一端的雕刻被称为 “经过(‘pass’)”,要雕刻一个完整的 V 形截面,必须在行程的两侧交替经过若干次。用凿子轻轻敲击凿头的规律性动作会在石头上留下一个个小台阶、其规律性将反映出攻丝的规律性。通过小幅度、有规律的连续敲击可以最大限度地控制凿子,每次敲击的距离大约为 10 毫米(3⁄8 英寸)。” “一旦你能通过追切相当成功地刻画出一个形状,就可以尝试劈切(Chopping)技术了。这样可以更快、更有效地从 V 形切割中取出更多的石材。凿柄的整个长度与石材表面的夹角比凿刻要陡。为了形成 90 度的 V 形截面,凿子边缘与石材表面的夹角仍然约为 45 度,并斜向下进入 V 形切口的底部。然后在整个雕刻过程中重复这一动作,与凿刻法一样,在 V 形切口的两侧交替进行。” 类比篆刻刀法。其步骤相当于先进行一次沿着笔画方向的冲刀,而后用细碎的切刀,沿着冲刀的两侧往中间切,最后用冲刀把切刀的痕迹给冲平,来获得一个完美的刻痕。西洋字母雕刻是直接展示用的,因而对刻痕的要求也很高,不像篆刻只看铃印效果,哪管刻痕怎样[1]。 风格 西洋字母就26个,笔画很少,风格变化也不大。设计师甚至可以精心定义每一个字母的大小比例,每一根线的粗细,这是依托汉字的篆刻所远远无法想象的。 其风格主要有罗马体与意大利体: 罗马字 罗马大写字在现在叫做Trajan,其设计师是Carol Twombly,灵感取自罗马遗迹图拉真柱,是一个非常之经典的字体。奇怪的是,这罗马帝国的柱子是公元113年立起来的,而这个时间刚好是我国的汉朝,也就是篆刻最为兴盛的时期。似乎这个时期大家都在玩石刻,或许是铁器时代的一个潮流吧。 如前所述,罗马字的设计要求非常严苛。字母形状和比例、字干宽度与字母高度之间的关系(简称字重)、字干、粗斜线和细斜线以及曲线之间的相对宽度等等都有明确的要求。 字重:一般而言,以字母“I”的宽长比来判定,其宽为一,其长越小,则字越重,其长越长则,字越轻。大写字宽长比一般在1:81:81:8到1:101:101:10,小写字母在1:51:51:5到1:61:61:6左右。如果刻制在对比度较低的石面上时,应适当增加字重。 字宽:字母主体部分的宽度,如字母"a" 弧度:字母最厚处的弧形部分通常比字干的中部重一些。笔直的字干中部由于略微凹陷,比顶部和底部窄一些。字母最薄部分的弧度是渐变的,通常比半个字杆宽度要薄一些。 竖画:“粗竖画的顶部和底部巧妙地向外延伸,并以水平方向绘制的细衬线作为末端。如下图所示,这些衬线形状微妙–粗画底部的水平衬线两侧略微抬离基线,中间略微抬起,呈双椭圆形。粗画顶部的衬线也遵循同样的概念,两侧向顶线略微倾斜,中间略微倾斜,形成双椭圆形。 衬线:字母横画的衬线大部分是垂直的,或者微微翘起。 下面是各部分字体详细的介绍,第一组: H T U X Y N Z A V\Large H\ T\ U\ X\ Y\ N\ Z\ A\ VH T U X Y N Z A V 为了方便起见,这组字母可以称为矩形字母,因为它们可以拼成一个矩形,矩形的面积与相同高度的圆的面积相同。从圆的两边向内测量字母高度的十分之一,就可以得到这个矩形。如字母的高度为 4 厘米,那么矩形的宽度就是 3.2 厘米。适合填入矩形的字母是 “H”、“T”、“U”、“X”、“Y”、"N "和 “Z”。A "和 "V "的宽度比矩形稍宽,但没有包含圆形的正方形宽。为确保准确性,所有第 1 组字母最初都应按图示绘制矩形和圆形辅助线。其字干的宽度约为长度的八分之一,两侧略微有凹陷。 字母 "H "的绘制方法是先画左横线,再画右横线,记住中间要比两端稍细,最后加上上下锯齿。一般的光学原理是,如果要在中间高度显示某物,就必须将其略微抬高,因此 "H "横线的底边要放在中心线上。水平笔画的宽度约为垂直笔画的一半。 T:字母 "T "的词干与 "I "相同,通常画在顶部横线之前,宽度与 "H "相同(忽略 "H "的衬线)。有时,"T "的横线会从顶线向下略微移动,以在视觉上弥补横线过长的缺陷,并防止其看起来比其他字母高。横线两端的衬线或多或少保持垂直,在横线下方衬线突起多于上方。 U:字母 "U "的宽度与 "H "相同。中点处的弧底厚度约为半个竖画宽度甚至更小,然后逐渐向两侧加宽,直至整个竖画宽度。底部弧线应始终略微穿过底线,以防止字母看起来比其他字母短。与 "H "一样,两个垂直笔画的顶部也要用衬线来修饰。 X:字母 "X "的底部宽度与 "H "相同,但上半部分略微压缩(非常小),从而为字母的下半部分创造了更多的空间,以防止字母看起来头重脚轻。这与提高 "H "横画高度(在中线之上)的原理相同,"X "交叉的横线也刚刚超过字母高度的一半。粗笔画通常先画,宽度与粗竖画相同。两端微微外撇,最后画上细细的横衬线。注意粗细对角线与底层矩形的起止位置。细对角线的宽度约为竖画的一半,两端微微外扩,以细衬线结束。 Y:字母 "Y "的顶部宽度与 "H "相同,V 部分与笔杆的交界处位于高度中间。重要的是要确保对角线笔画与两侧的笔杆连接在同一高度。从 "Y "开始,将短的垂直笔杆画到高度的中心,在底部稍稍外扩,最后在底部画上与 "I "相同的细衬线。然后绘制粗细对角线,分别为一个茎宽和半个茎宽,并在两端巧妙地外撇,最后以细的横衬线收尾。 N:字母 "N "的宽度与 "H "相同,不同之处在于竖线较窄,约为粗杆宽度的一半。先画左竖,再画右竖。注意它们略微凹陷,在中间高度处最细,最后是精细的横向衬线。粗对角线的宽度与粗画相同。对角线与垂直支撑的底部连接处有一个轻微的剪切点。重要的是要保持窄度,略小于细竖杆的宽度。 Z:字母 "Z "的底部宽度与 "H "相同,顶部略微位于矩形内。粗对角线的宽度相当于粗画,通常首先绘制,然后绘制顶部横线,宽度约为粗画的一半。横线的开口端巧妙地外撇,最后画上细小、略微倾斜、接近垂直的衬线。然后完成下横线的绘制,末端略微外扩,最后使用精细、略微倾斜的衬线,衬线可以尽量伸出矩形之外–注意底角的微妙圆角。 A:字母 "A "的底部比 "H "略宽,与 "H "不同的是,横线从中间向下移动,以平衡上下的空间。从左边的细对角线开始,宽度约为半个粗杆,然后是粗对角线,宽度为一个粗杆。两条对角线都向底部略微外扩,并以精细的横向衬线收尾。注意 "A "字的凿顶。最后,绘制横条,横条宽度为粗杆宽度的一半,位于中心下方。 V:字母 "V "的顶端宽度与 "A "的底端宽度相同,刚好伸出矩形之外。首先绘制粗对角线,宽度为粗竖线宽度。然后绘制细对角线,宽度为粗竖线的一半,两条对角线的笔画都在开口处巧妙地外撇,最后以细横线结束。注意底部交界处的窄凿尾,以及底部内侧略微偏离中心。 第二组:O "和 "Q "的外轮廓是略微扁平的圆形;“C”、"G "和 "D "的字母宽度比整个圆形小大约一个粗横宽。 O Q C G D\Large O\ Q\ C\ G\ DO Q C G D Q与O:字母 "O "和 "Q "从绘制外轮廓开始。重要的是,这两个字母要稍微切断上下两条线,使它们看起来与字母表的其他部分高度一致。因此,字母顶部和底部的弧形部分与上下线相切是一个普遍原则。虽然这些字母的外轮廓简单地按照圆形绘制会更容易,但将侧面稍稍削平会大大加强字母的形式。画完外轮廓后,再画内轮廓:这是一个略微方正的椭圆形,这样做是为了给字母制造垂直压力。也就是说,笔画最细的部分正好在垂直上方,而最粗的部分则在字母中间高度水平相对。在弧形字母上,笔画最粗的部分与粗干顶部或底部的宽度有关且相似,而不是粗干中部的宽度,后者更窄。弧形笔画最细处的宽度略小于粗画的一半。确保所有的曲线都由粗到细巧妙地渐变。对于 "Q "尾,在字母中间垂直画一条线。在与字母外轮廓相交处,从基线向下 25 度画一条线,然后在其上方再画一条线,宽度约为粗杆的一半,在与字母主体相接处略微变细,在尾部开口处略微外扩,在底部形成一条柔和的曲线。 C:与 "O "和 "Q "一样,字母 "C "的外轮廓线也是先画出来的,它是一个略微扁平的圆,略微穿过顶线和基线。在这种情况下,"C "的整体宽度是距圆形右边缘不到一个粗画宽,距圆形左边缘 2 毫米。内部方形椭圆的垂直轴与 "O "和 "Q "相同,最细的部分垂直排列,并向开口端微微外扩,最后形成细密的垂直衬线。要注意的是,底部的开口端在下侧变软,并在顶部稍稍停止。曲线的厚度与 "O "和 "Q "相同,顶部和底部的曲线同样被削平。 G:字母 "G "的宽度和形状与 "C "相同,只是多了一个竖杆。它的宽度和形状与粗竖杆的顶部相同,其高度是字母高度的一半或略低于一半。竖画的右侧与 "G "顶部曲线的末端垂直对齐。注意结尾处的低点,靠近底线,即底部曲线和竖画的交汇处。 D:字母 "D "的宽度与 "C "和 "G "相同,字母右侧距离圆圈右边缘 2 毫米,字母左侧距离圆圈左边缘不到一个粗杆宽度。先画出字杆,然后画出曲线的外轮廓,将曲线与圆稍稍拉平。最后绘制内曲线,与 “O”、“Q”、"C "和 "G "一样保持垂直压力,曲线宽度与这组字母中的其他字母相同。注意曲线在内侧底部与字母杆相接处的弧形连接,但在字母内侧顶部没有弧形连接。 第三组: E F L P R B S\Large E\ F\ L\ P\ R\ B\ SE F L P R B S 字母 "E "是顶部半正方形的宽度,中臂稍短,底臂稍长。先画竖干,后画横基臂。底部笔画在紧靠竖画下方的基线上方略有移动,并在其开口端略微穿过基线,在该处将底角磨圆。衬线略微向右倾斜。中臂的下划线位于中线上,上划线高于中线半个粗杆宽度,中臂向开口端略微外扩,最后是一条细细的竖衬线。上臂的上部笔画是直的,上臂的下部笔画向上臂的开口端稍稍外扩,最后是一条向下突出的细竖衬线。所有横臂约为半个粗杆宽。 字母 "F "与 "E "相似,只是下臂位置降低了半个水平臂的厚度。这略微增加了顶部空间,以平衡开放的底部空间。 字母’L’的阀杆和底臂与’E’相同。 字母 "P "先画出柄,然后画出碗的外侧,碗的外侧比半圆略宽,比圆形略扁。碗底低于字母高度的中部。接着画碗的内侧,笔画保持垂直。碗的弧形笔画最宽处的厚度与笔杆顶端的厚度相同;碗的细横与 "E "的臂部厚度相同(即笔杆竖向宽度的一半或略少)。确保弧线由粗到细的微妙渐变,弧线在距离主茎不远处的一点结束。 字母 "R "与 "P "一样,先画出茎,然后画出碗的外轮廓,比例与 "P "相同。碗的内轮廓与 "P "一样,也有垂直应力。碗与杆的连接处有一个横向构件,厚度约为粗杆的一半,其上部笔画位于字母高度的中线上,下部笔画位于粗杆宽度的一半或稍小的下方(即与上部横向构件的厚度相同)。对于 "R "的尾部,从碗的边缘到基线画一条垂直线,然后用一条线连接到笔杆的左上角。这就是 "R "尾的下笔。上部笔画是一个竖画宽,尾部向开口端略微外扩,下部巧妙地呈圆形,最后以细横衬线收尾。注意尾部内侧没有衬线。 字母 "B "也是先绘制其横画,然后绘制顶部碗圆弧的外侧(与 "P "和 "R "的形状相同,但要小一些–适合半正方形的宽度。然后用垂直压力绘制内轮廓。B "上圆弧的厚度和渐变与 "P "和 "R "有关。注意中横的下笔在字高的中线上,上笔略高于半个竖画宽。B "下粗茎的内侧弧线与半格的宽度相吻合,外侧轮廓的绘制是为了使碗的弧形笔画的最大厚度与上碗的宽度相同。请注意 "D "的微妙弧度,在底横的上撇与茎相交处。三条横线的厚度相同,大约是半个竖画宽。 字母 "S "和 "B "一样,上半部分的空间略小于下半部分。对角线是一个竖画宽,在顶部和底部逐渐变细为水平曲线,略小于半个竖画宽,并巧妙地向开口的两端延伸。两端以垂直衬线收尾(从上臂下降,从下臂上升)。上臂和下臂分别略微穿过顶线和基线,以使 "S "看起来与其他字母高度一致。S "在右侧垂直排列,而在左侧,尾部略微超出顶部。 字母 "K "与第 3 组中的其他字干不同,因为它的右侧与半方格的左侧边缘重合,使得 "K "比这一组中的其他字母宽一些。先画字干,再画粗对角线(宽度为一个粗字干),其上部笔画的起笔刚好触及字干高度的一半。尾部超出半个正方形,底部呈非常巧妙的圆角,最后是一条细细的横衬线,仅向笔画右侧延伸。字母顶部的细对角线画在最后,宽度是粗杆的一半。它的右侧笔画刚好伸出半方格的右上角。细对角线的末端是一条向左延伸的细横衬线,再稍稍向右延伸。 第四组: M W I J\Large M\ W\ I\ JM W I J 字母 "M "以正方形开头。标出基线和顶线的中点。画粗对角线(一个竖画宽),从正方形左上角内半茎宽的左边笔画开始,一直画到底线中点。然后绘制细对角线(半竖画宽),从正方形右上角内侧半茎宽处开始。注意,V 字形的内点将位于中心的右侧。从正方形的左上角内侧(粗斜线的起点)到左下角,绘制细的左支撑(半个竖画宽)–它向底部略微外扩,以细的横衬线结束。最后,绘制右侧的粗支撑,宽度与粗对角线相同(即粗杆宽度)。它在右上方刚好伸出正方形外,在右下方稍稍外扩,最后以细横衬线结束。需要注意的是,粗细笔画都有微妙的凹陷,就像竖茎一样,顶部的横衬线也没有凸出 V 字段。底部的两个计数器(字形内部的空白处,可以是 "B "中的封闭式,也可以是 "C "中的半开放式)的宽度应相等。 字母 "W "的起笔是一个圆形和周围的正方形,并将其分成四等分的竖条。画出的 "V "是前三部分的宽度,粗笔画是一个粗杆的宽度,顶部以细横线结束。然后画出宽度为粗杆一半的细对角线。基点被剪掉。为了画出 "W "的第二个 “V”,在主方格的右边再加上两条竖线,这样整个图的宽度就变成了六个相等的部分。粗对角线的左侧从第三部分的一半开始,一直延伸到第四部分的末端。第二个 "V "字的细对角线(不包括衬线)的顶端大约从第六部分顶端的一半处开始。确保两条粗对角线宽度相同且平行,两条细对角线宽度相同且平行。顶部中心剪切点要比底部两个剪切点宽。 字母 "I "是一个简单的字干,与该字母表中所有粗字干一样,两端微微外撇,从而产生一个轻微的凹面,在 "腰部 "形成一个微妙的收窄。顶部和底部的细横衬线呈微妙的弧形 字母’J’的宽度与’I’相同,但在底部变细至半个竖画宽,刚好穿过基线,并向开口端稍稍外扩,最后呈现出与’S’底部类似的细竖衬线。在第二个 "J "的例子中,茎干逐渐变细,直至远远低于基线。 意大利体 从略 其他 白文大多不管,有些朱文的刻痕也是会考究一点的。 ↩︎

2025/11/27
articleCard.readMore

mysql子查询

厂内MES系统上线前后,因为开发人员紧缺,作为关键用户之一,也跟着学了一些SQL,开发维护了一些报表。今日遇到一个棘手的连接,在此记录一下。 问题分析 系统中数据库里几个关键的表如下,其中数据收集结果与工单工序的出料通过前者的so_router_step_out_id与后者的id进行连接。 数据收集结果(data_collection_result) 操作条件(dcr_operation_condition) 尺寸检验(dcr_operation_condition) 表面缺陷(dcr_surface_defect) 过程检验(dcr_process_inspect) 加工记录(dcr_process_record) 工单(so) 工单工序(so_router_step) 进料(so_router_step_in) 出料(so_router_step_out) 退料(so_router_step_rp) 销售订单行(so_sale_order_item) 成品要求(so_final_req) 每次工序进行一次生产后,会记录以上数据,现在需要计算一个折合产量的指标,要求如下: 一次产出合宽(WtW_tWt​):根据工单>工单工序>出料(多行)里的宽度(WiW_iWi​)与限重次数(CkC_kCk​)计算:通过不同限重来划分一次产出,计算一次产出下宽度的合宽(∑i=1kWi\sum_{i=1}^k W_i∑i=1k​Wi​) 连接(ConnectConnectConnect):将合宽返回到出料,作为一个属性加入到出料料行中 相关笔记 经过查阅资料,发现SQL中可以通过子查询(Subquery)来实现类似的需求。子查询就是在正常查询的基础上嵌套一层,从该层里面进行查询。子查询时会先执行内层括号里的语句而后才执行外层的语句。这种方法原则上没有上限,可以无限嵌套🪆,然而套娃层数越多,查询效率越低。 1 2 3 4 5 select a, from ( select A1 from source where a > 0) as table 根据子查询返回结果的行数,可以分为两种方式:标量子查询与关联子查询。 标量子查询 顾名思义,这个查询方式的特点就是返回一个唯一的结果,适用于返回诸如平均值、合格率、求和等数据集合的唯一值。因为是返回的唯一值,因而可以用到常数、列名等地方,来进一步的筛选。比如,用子查询查出来平均值,然后用Where语句去筛选出来大于小于平均值的数据,也可以用Group by、Havingf、Oeder by等语句里。 比如这是从14:00至今(19:00),F产线出料的宽度值 1 2 3 4 5 SELECT o.width FROM so_router_step_out o where o.start_date_time_lt > '2025-11-19 14:00' GROUP BY o.id output 1 2 3 4 5 6 7 8 9 10 11 12 633 600 482 612 612 612 612 612 598 482 605 617 取大于平均值的数据,就可以这样操作: 1 2 3 4 5 6 7 8 9 10 11 12 13 SELECT o.width FROM so_router_step_out o where o.start_date_time_lt > '2025-11-19 14:00' and o.width > ( select avg(width) from so_router_step_out where start_date_time_lt > '2025-11-19 14:00' ) GROUP BY o.id output 1 2 3 4 5 6 7 8 9 10 633 600 612 612 612 612 612 598 605 617 关联子查询 标量子查询只能范围唯一的值,如果我们想要返回多个值,比如不同钢种的宽度平均值。就必须用到关联子查询了,还以今天14:00至今(19:20),F产线出料的宽度值以及钢种的信息为例: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 SELECT o.width, o.steel_grade FROM so_router_step_out o where o.start_date_time_lt > '2025-11-19 14:00' GROUP BY o.id -- 输出结果 -- 638301不锈钢 -- 603301不锈钢 -- 633301不锈钢 -- 600301B不锈钢 -- 482737复合性不锈钢 -- 612304不锈钢 -- 612304不锈钢 -- 612304不锈钢 -- 612304不锈钢 -- 612304不锈钢 -- 598301不锈钢 -- 482737复合性不锈钢 -- 605304不锈钢 -- 617301不锈钢 -- 616304不锈钢 -- 338304不锈钢 -- 331304不锈钢 -- 338304不锈钢 -- 331304不锈钢 -- 338304不锈钢 -- 331304不锈钢 各个钢种的平均宽度如下: 平均值计算 1 2 3 4 5 6 7 8 9 10 11 12 13 select avg(o1.width), o1.steel_grade from so_router_step_out as o1 where start_date_time_lt > '2025-11-19 14:00' group by o1.steel_grade -- 600.0000301B不锈钢 -- 617.8000301不锈钢 -- 483.6923304不锈钢 -- 482.0000737复合性不锈钢 这是使用标量子查询是会报错的,我们就必须采用关联子查询,与前者不同的是,关联子查询通过一个类似于join语句写法的where语句,将内层与外层的信息连接在一起,比如下例中内外层的steel_grade就是一个连接条件,(注意连接条件一定要写在内层中,写在外层的话作用域就变了,不会起效果。) 关联子查询 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 SELECT o.width, o.steel_grade FROM so_router_step_out o where o.start_date_time_lt > '2025-11-19 14:00' and o.width >= ( select avg(o1.width) from so_router_step_out as o1 where start_date_time_lt > '2025-11-19 14:00' and o1.steel_grade = o.steel_grade group by o1.steel_grade ) GROUP BY o.id -- 638301不锈钢 -- 633301不锈钢 -- 600301B不锈钢 -- 482737复合性不锈钢 -- 612304不锈钢 -- 612304不锈钢 -- 612304不锈钢 -- 612304不锈钢 -- 612304不锈钢 -- 482737复合性不锈钢 -- 605304不锈钢 -- 616304不锈钢 从实际的作用来看,关联子查询与group by的作用是相近的,都是通过一些方法对数据进行了切分。 问题解决 1 2 3 4 5 6 7 8 select i.id, o.width as widthtotal from so_router_step m left join so_router_step_in i on i.detail_table_id = m.id left join so_router_step_out o on o.detail_table_id = m.id where m.resource = '740755479873064960' group by i.id 通过限重次数(xz_times)与进料id进行分组计算,通内层关联子查询连接合宽,然后借由限重与id两者连接到外层。如果为NULL则返回原有宽度(CASE)实现。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 SELECT i.id AS 进料id, o.id AS 出料id, o.sfc AS 出料钢卷号, o.batch AS 出料批次号, o.xz_times AS 限重次数, o.width AS 出料宽度, CASE WHEN o.xz_times IS NULL THEN o.width ELSE ( SELECT SUM(o2.width) FROM so_router_step_out o2 JOIN so_router_step_in i2 ON i2.detail_table_id = o2.detail_table_id WHERE i2.id = i.id AND o2.xz_times = o.xz_times ) END AS 一次产出合宽 FROM so_router_step m LEFT JOIN so_router_step_in i ON i.detail_table_id = m.id LEFT JOIN so_router_step_out o ON o.detail_table_id = m.id WHERE m.resource = '740755479873064960' GROUP BY o.id ORDER BY i.id, o.xz_times; in与exist的区别 IN 的子查询是独立的,无法引用外部表的列 EXISTS可以做关联子查询 当你需要在子查询中关联外部表时,就应该用 EXISTS 或 JOIN

2025/11/19
articleCard.readMore

业余无线电笔记

✍文章痕迹 写作时间线 2025-10-07 偶然间翻到了本《业余无线电通信》,看书里一步步介绍业余无线电从民国发展到现在,蛮激动的,有空也整一个玩儿。 2025-10-13 绘制封面《秉台》 2025-10-21 业余无线电操作证考试报名成功,11-16考试,正式开始撰写此文。 2025-10-30 刷完683道题 2025-11-9 参考此文章,进行笔记初次汇总 (此笔记错漏颇多,放弃之) 2025-11-13 购买泉盛UV-K5 2025-11-15 下午14:57 完成全部草稿撰写。 2025-11-16 下午13:40,结束考试(估计是满分40) 2025-11-20 成绩合格,本文进入实践阶段。在群友帮助下,初次设置好丰山中继,并收到回波。 (报考B证日期在5.20日) 2025-11-21 操作证下来了,晚上提交了电台登记~~“子虚站”~~(被打回去修改成“田欣洋的电台”) 2025-11-22 20:00~21:20 第一次守听本地台网点名活动 2025-11-28 申请QRZ.COM 2025-11-29 收到操作证卡片 首次参与宁波周六例行的台网点名活动。 2025-12-8 刻呼号印 2025-12-9 注册Hamcq社区 楔子🦂:无线电折腾序 吴道一在民国刊物《无线电》的发刊词中写道:“致知格物,扶幽阐微,科学家之目标;而无线电之运用,则今日成功之片段,出没穹苍大地,驰骋万里长空,目视之无形,而可借以传影,耳听之无声,而可借以传音,手触之无物,而可借以传力,所得之结果,一则维妙维肖,纤屑毕陈,一则不即不离,真伪莫辨,一则能大能小,操纵自如;以之宣扬文化,则人众从风,以之表演艺术,则万目共睹,以之控制机械,则得心应手。故有识之士,知其需要,仅次於粟帛水火,而宏用伟功,不胜枚举,遂相率殚精竭虑,潜心研究,期使诞生廿余年之事业,发扬光大,上阐造化之枢机,下慰众生之愿望。” 每一次呼叫都期待着回应。无线电,其趣味性远不同于摄影、篆刻、阅读之类,后者偏向内在,可独乐可众乐,前者则非众乐不可。它作为一种交流的手段,天生存在着交流的特点。如果玩下去,就意味着不断地与其他人进行交流,不管你有怎样的设备、天线,自制的、网购的、开源的、打印的等等等等折腾地怎样花哨,一但按下PPT键/电键后,所有的信息依托着电磁波传出去。如果没有远方的人反馈这个信号,就意味着没有闭环,看不到结果,是很烦人的。交流是及其重要的一部分,这也是Ham社区比其他爱好者社区更活跃、持久的原因所在。 这个集社交、手工、电气,乃至天气(大气波导)、太阳黑子活动(突发E层传播)、地理、攀岩、应急救援通信于一身的玩意儿,怎不值得一玩儿哩。 实践篇 设备选购 人类的肢体实在有限,折腾任何一门兴趣,贯注任何一种热情,除了少数借助体力、脑力得以自洽的之外,其余大多都是要借助于各种各样的工具。作为肢体的延展,工具越发成为人类存在最不可缺之物,如摄影离不开相机镜头、篆刻离不开石头刻刀、涂鸦离不开喷漆,对于无线电而言,其借助的工具则是一台趁手的电台了。 荀子言“学莫便乎近其人”,作为该领域的新手,得到设备方面经验最快的方法,自然也就是了解老手的经验了,听其口传,察其“身”授,然后再自己做总结、选择、实际使用。在查找资料、选购设备的过程中,首先是看了@BG2FNV的《无线电入门II:设备推荐》一视频,其中对手台的厂商、型号、数字标准都做了详尽的说明,很有帮助,让我大概锁定了设备的价格区间与型号。尽管在前人的帮助下避免了一部分弯路,但在购置之前,仍然不可避免地陷入了选择的漩涡。功能上的变动带来价格的差距几乎令人咂舌,同所有的工具一样,电台设备的价格与功能似乎也没有上限: “ 一开始只是想买个机器玩玩,看经典的宝锋 UV-5R 不错,才几十块钱 有人说宝锋指标不好,不如上更经典的泉盛 UV-K6,也就一百块钱 …有人说 891 毕竟是短波,A 证不能玩,而且操作反人类,不如来个全波段的 ICOM IC-705,找个代购也就 7000 多,于是入手了一台 UV 段的 ICOM IC-9700 和短波的 ICOM IC-7760,加上天线和配件一共才几万块钱,真不错” — @BG4LZP的贴文 在仔细考量本次业余无线电热情的持久程度、设备的吃灰概率后,入了一个大众的、性价比较高的、可玩性还行的泉盛UV-K6。这个设备非常热门,各种折腾教程层出不穷,甚至有爱好者专门搭建的网站,让我感觉它在手台中的地位几乎相当于阅读器中的Kindle。本文封面是在备考过程中绘制的,原型便是此设备。然而不巧的是,笔者买的是今年的新版本(京东官方140),新版换了芯片,只有旧版本的固件才能刷机😭,如此便让可玩性降低了一大截。友台有157从拼多多购得加内存的改装版,建议直接买改装好的,可玩性更多。 基本操作 守听操作 BR5AC(145.58 -0.6 发射亚音 88.5) 余姚丰山 BR5AO(145.22 -0.6 C4FM 收发亚音88.5)嘉兴 BR5AQ(145.28 -0.6 发射亚音88.5)宁波 BR5AI(145.40 -0.6 C4FM 收发亚音88.5)杭州 BR4AA(145.775 -0.6 C4FM 收发亚音88.5)上海 112.300 摩斯密码重复发hsn,VOR信标台 11/22晚上,第一次守听到爱好者们所谓的周六晚八点“台网点名”活动,扫到有两个台在进行,因为异常传播(当时开始起雾、气温骤降)的缘故,许多杭州、上海的Ham也通过余姚中继145.58进行了通联。(实际上平常也能收到上海的信号,只不过这一次比平常多了一点,也许并不是异常传播。) 参与的时候挺过瘾的,一开始在楼上,后来太冷,便下楼骑车去,路上把手台夹在心口相机包斜挎包的袋上,听着电波里不断交流声,面对着路边熟悉的景物,产生了异样的感觉——原来在我感官触及不到的维度,一直有事情在发生。 测试中继 在配置好发射亚音后,短暂按下PTT键,如果联通到中继,则会在松下PTT键后,收到一个短暂的噪音,这就是所谓的“回波”,这个操作黑话叫做“掐”。 中继台点名 var ap = new APlayer({ element: document.getElementById("aplayer-OfWdjmHA"), narrow: false, autoplay: false, showlrc: false, music: { title: "BG5GER的首次通联", author: "秉蕳", url: "https://cloud.si-on.top/api/raw/?path=/Podcast/first_bg5ger.mp3", pic: "/images/avator/serif-dark.png", lrc: "" } }); window.aplayers || (window.aplayers = []); window.aplayers.push(ap); 设计 呼号印(完成) 为了刻制此印,专门研究了英文字母雕刻的资料。 QSL卡片(未完成) 应当包含备注实例 自己呼号英文字母(固定)BG5AAA 对方呼号英文字母BG5BBB 日期(DATE)年月日2025/11/20 时间(TIME)时间(UTC)21:13 地址(ZONE)地址(ITU)PN00AA 频率(FREQ)数字145.500 模式(MODE)英文字母FM/SSB/CW/FT8 信号报告(RST)数字59/559 设备(RIG)中英混合泉盛uv-K6 功率(WATTS)数字10 天线(ANT)中英混合原装天线 通联日志 2025/12/9 与BG5GGT进行通联,老鹰771天线,uvk6, 应试篇:无线电管理相关法规 法律特点制定机构巧记 《中华人民共和国无线电管理条例》无线电管理的行政法规国务院和中央军委国力 《业余无线电台管理办法》[1]业余无线电台的管理文件工业与信息部公办,431(2024年3月1日施行) 《中华人民共和国无线电频率划分规定》对无线电管理术语进行定义–区分各种主要次要业务,其特点是频率上的划分。 《中华人民共和国刑法》针对擅自使用无线电频率的处罚定义 《中华人民共和国民法典》“无线电频谱资源属于 国家所有” 名词定义巧记 划分将某个特定的频段列入频率划分表,规定该频段可在指定的条件下供一种或多种地面或空间无线电通信业务或射电天文业务使用频率划分规定了各个业务的使用范围 分配将无线电频率或频道规定由一个或多个部门,在指定的区域内供地面或空间无线电通信 业务在指定条件下使用按需分配到部门 指配将无线电频率或频道批准给无线电台在规定条件下使用最终指定到电台 无线电台相关 按照《业余无线电台管理办法》的规定向无线电管理机构提出申请,取得业余无线电台执照是合法设置、使用业余电台的必要步骤。 业余无线电台是指为开展业余业务(含卫星业余业务)使用的一个或者多个发信机、收 信机,或者发信机与收信机的组合(包括附属设备)。目的是用于相互通信、技术研究和自我训练。申请条件: 不论是单位还是个人,申请电台时无需复印件 独立操作具有发信功能业余无线电台的年龄条件是:具备《业余无线电台操作证书》者操作业余无线电台不受年龄限制。 申请设置、使用具有发信功能的业余无线电台的年龄条件是: 未成年人可以申请设置、使用规定条件内的业余无线电台。(可以使用A证的uv段,但是即便有了B证也不能设HF段) 设置、使用有固定台址的业余无线电台,应当向电台所在地的省、自治区、直辖市无线电管理机构申请,没有固定台址,经地所在的省,自治区,直辖市无线电管理机构申请 一个电台可以包含多个收发信机,但视为一个业余电台,指配一个电台呼号,但所有设备均应经过核定并将参数载入电台执照。 设置无线电台,要满足: 使用的无线电发射设备依法取得型号核准 型号核准证载明的频率范围包含业余业务频段 使用的自制、改装、拼装等未取得型号核准的无线电发射设备需要 符合国家标准和国家无线 电管理规定 其无线电发射频率范围仅限于业余业务频段 “已取得型号核准证,但自行更换设备操作软件将频率范围扩展到业余业务频段的无线电发射设备”是不行的,因为原有频段含有非业余业务的,操作时存在风险。 自制、改装、拼装等未取得型号核准的无线电发射: 符合国家标准和国家无线电管理规定,具体如下: 业余无线电设备射频技术要求及测试方法》(GB/T 32658-2016) 《短波单边带通信设备通用规范》(GB/T 16946-2017) 发射频率范围仅限于业余业务频段 自制业余无线电发射设备,在经无线电检测机构检验合格并取得电台执照之前,应在调 测时在设备的天线端口连接假负载 由 220 伏交流市电供电的设备,安全措施应至少包括:在交流电源入口的火线中串联一个保险丝 无线电管理机构开展对该设备进行技术检测时,不收费 等级证照(业余无线电台操作技术能力验证证书) 等级可使用的频率范围 A30~3000MHZ,功率小于25W B(A证6个月)<30MHZ,功率小于15W;>30MHZ,功率小于25W C(B证18个月)<30MHZ,功率小于1000W;>30MHZ,功率小于25W 15W以上短波,需要国家无线电管理机构做出许可决定,可委托省、自治区、直辖市无线电管理机构进行技术检验 C类考试只能由国家无线电管理机构去认证 考试不收费 等级电台设置的频率范围 AVHF/UHF,功率小于25W BVHF/UHF,功率小于25W; HF 功率小于15W(未成年人不可以);LF(eirp)功率小于1W CVHF/UHF,功率小于25W(特殊情况下可以大于25W); HF 功率小于1000W; 证照内容全选 电台设置、使用人,操作技术能力类别、编号 电台呼号、台址/设置区域、使用频率、发射功率 执照编号、颁发日期、有效期、发证机关,以及特别规定事项 业余中继台、业余信标台执照还应当载明工作模式等事项 有效期5年 有效期满前30天要申请更换 注销:要去作出许可决定的无线电管理机构注销 终止使用电台的,要办理注销手续,60个工作日内拆除电台 呼号相关 前缀电台种类分区后缀 BG5ABC 国际电信联盟(ITU)分配各种各样空间信号是1双字母、三字母组成,数字保留 有号不再发新号,注销后一年以后才会重新分配新号 鼓励技术手段自动报号 比赛、活动时,可临时使用其他呼号 无线电管理机构颁发业余无线电台执照,应当同时向申请人核发业余无线电台呼号 呼号构成、电台呼号第二部分种类,题目全选 字母S、T、Y、Z以及其他字母序列的业余无线电台呼号由国家无线电管理机构保留 字母R用于业余中继台和业余信标台呼号 字母G、H、I、D、A、B、C、E、F、K、L用于一般业余无线电台呼号 字母J用于空间业余无线电台呼号 分区地址 1北京 2辽宁、吉林、黑龙江 3天津、河北、山西、内蒙 4上海、江苏、山东 5浙江、江西、福建 6河南、安徽、湖北 7湖南、广东、广西、海南 8重庆、四川、云南、贵州 9陕西、甘肃、宁夏、青海 0新疆、西藏 无线电通信规定 业余电台应该记载:DATE、TIME、FREQ、MODE、CALL、RST RST中的R表示信号的可辨识度 在突发重大自然灾害等紧急情况下,业余无线电台的通信内容可以涉及应急救援相关部门交办的任务 呼叫对方的操作:先叫出对方的名字,然后报出自己的呼号 为在世界范围内划分无线电频率,国际电信联盟《无线电规则》规定了如下区域划分: 欧洲、俄罗斯亚洲部分、蒙古及部分西北亚国家为一区 南北美洲为二区 亚洲(除俄 罗斯、蒙古和部分西北亚洲国家)和大洋洲为三区 频段划分 无线电波是指频率为 3,000GHz 以下的在空间传播的电磁波。 波段3~3030~300300~30003~3030~300300~30003~3030~300300~ 单位KHzKHzKHzKHzKHzKHzKHzKHzKHzMHzMHzMHzMHzMHzMHzMHzMHzMHzGHzGHzGHzGHzGHzGHzGHzGHzGHz 英文VLFLFMFHFVHFUHFSHFEHFTHF 中文超低频低频中频高频甚高频特高频超高频极高频至高频 米波分米波厘米波 波段划分以10的倍数来划分,只用记住高频HF是3~30MHzMHzMHz即可,后面高频段可以巧记为"(VUSE)Why You See 神塔超级"。 业务频段记忆专题 长波的一般专用与主要,短波次要居多 专用7倍:专用的选7与7的倍数有关的 主要1835:1835各种变体 唯一生一世: 次要1357 描述频段提示 业余业务与卫星业余业务专用7MHz、14MHz、21MHz、28MHz、47GHz专用7倍 业余业务与卫星业余业务主要(30MHZ以下)1.8MHz、3.5MHz、14.25MHz、18.068MHz、24.89MHz主要1835 业余业务与卫星业余业务主要(30MHZ以上)50MHz、144MHz主要我零落一世 业余业务与卫星业余业务唯一主要3 个, 144-146MHz唯一生一世 业余业务与卫星业余业务唯一主要(最高)248-250GHz最唯一的二百五 业余业务与卫星业余业务次要135.7kHz、5351.5KHz、10.1MHz、430MHz次要1357 描述频段提示 WARC-7610.1-10.15MHz、18.068-18.168MHz、24.89-24.99MHz我靠10086(筛选中间项目18.068) IARU14.100MHz、18.110MHz、21.150MHz、24.930MHz、28.200MHz哎呦10011(前几位组合成10011) 40米,ITU1、2、3分区7.0-7.2MHz、7.0-7.3MHz、7.0-7.2MHz,专用232,欧洲1区与亚洲3区相同 160米1800-2000kHz,主要业务主要18 80米3.5-3.9MHz,主要业务主要35 20米14-14.25MHz 为专用,14.25-14.35 为主要业务主要35(选题目中含主要,35的) 15米21-21.45MHz,专用专用7倍,21、14(合起来) 10米28-29.7MHz,专用专用7倍,含有专用与7 6米50-54MHz,主要业务主要我5零落一世4 2米144-148MHz;其中 144-146MHz 为唯一主要业务,146-148MHz 为与其他业务共同作 为主要业务最长的 0.7米430-440MHz,次要业务宇宙波段430,无线电定位和航空无线电导航 频段占用专题(最后死背) 144 和 430MHz 频段业余中继台 的上下行频差分别为:0.6MHz与5MHz 14MHZ USB 通话:14.100-14.350 MHz 上边带 (438)430MHz(70cm)划分给卫星业余业务的:431.9-432.240MHz与435-438MHz 留给卫星的: 频段频率范围 10米段29.3MMz 至 29.51MHz 144MHz段145.8MHz 至 146MHz 430MHz435MHz 至 438MHz 规定与处罚 无线电管制(限制或者禁止业余无线电台(站)的使用,以及对特定的无线电频率实施技术阻断等) 在全国范围内或者跨省、自治区、直辖市实施,由国务院和中央军事委员会决定 在省、自治区、直辖市范围内实施,由省、自治区、直辖市人民政府和相关军区决定 违反治安管理规定相关 违反无线电管制命令和无线电管制指令的,由国家无线电管理机构或者省、自治区、直辖市无线电管理机构处罚,违反治安管理规定者由公安机关处罚。 违反《中华人民共和国无线电管理条例》的,构成违反治安管理行为的,依法给予治安管理处罚,构成犯罪的,依法追究刑事责任 违反国家规定,故意干扰无线电业务正常进行的,或者对正常运行的无线电台(站)产生有害干扰,经有关主管部门指出后,拒不采取有效措施消除的,处五日以上十日以下拘留; 情节严重的,处十日以上十五日以下拘留 擅自使用无线电频率,擅自设台的处罚最严重,罚钱多,还入刑法。 情形处罚巧记 业余电台违反无线电管制命令和无线电管制指令责令改正;拒不改正的,关闭、查封、暂扣或者拆除相关设备;情节严重的,吊销电台执照;违反治安管理规定的,由公安机关处罚改正,暂扣,吊销 对未经许可擅自使用无线电频率的由无线电管理机构责令改正,没收从事违法活动的设备和违法所得,可以并处 5 万元以下的罚款;拒不改正的,并处 5 万元以上 20 万元以下的罚款没收5;5-20 对擅自设置、使用业余无线电台的由无线电管理机构责令改正,没收从事违法活动的设备和违法所得,可以并处 5 万元以下的罚款;拒不改正的,并处 5 万元以上 20 万元以下的罚款(利用诈骗的直接20万到50万罚款)没收5;5-20 业余电台干扰无线电业务正常进行的由无线电管理机构责令改正,拒不改正的,没收产生有害干扰的设备,并处 5 万元以上 20 万元以下的罚款,吊销无线电台执照改正;没收5-20 业余电台对船舶、航天器、航空器、铁路机车专用无线电导航、遇险救助和安全通信等 涉及人身安全的无线电频率产生有害干扰的处 20 万元以上 50 万元以下的罚款20-50 研制、生产、销售和维修大功率无线电发射设备,未采取有效措施抑制电波发射的,由无线电管理机构责令改正;拒不改正的,没收从事违法活动的设备,并处 3 万元以上 10 万元以下的罚款;造成严重后果的,并处 10 万元以上 30 万元以下的罚款改正;没收3-10,严重10-30 境外组织或者个人在我国境内进行电波参数测试或者电波监测的,由无线电管理机构责令改正;拒不改正的,没收从事违法活动的设备,并处 3 万元以上 10 万元以下的罚款;造成严重后果的,并处 10 万元以上 30 万元以下的罚款改正;没收3-10,严重10-30 向境外组织或者个人提供涉及国家安全的境内电波参数资料的由无线电管理机构责令改正;拒不改正的,没收从事违法活动的设备,并处 3 万元以上 10 万元以下的罚款;造成严重后果的,并处 10 万元以上 30 万元以下的罚款改正;没收3-10,严重10-30 生产或者进口在国内销售、使用的无线电发射设备未取得型号核准的由无线电管理机构责令改正,处 5 万元以上 20 万元以下的罚款;拒不改正的,没收未取得型号核准的无线电发射设备,并处 20 万元以上 100 万元以下的 罚款改正5-20;没收20-100 情形处罚巧记 不按照业余无线电台执照规定的许可事项和要求设置、使用业余无线电台的由无线电管理机构责令改正,没收违法所得,可以并处 3 万元以下的罚款;造成严重后果的,吊销无线电台执照,并处 3 万元以上 10 万元以下的罚款没收3,3-10 故意收发业余无线电台执照许可事项之外的无线电信号,传播、公布或者利用无意接收 的信息由无线电管理机构责令改正,没收违法所得,可以并处 3 万元以下的罚款;造成严重后果的,吊销无线电台执照,并处 3 万元以上 10 万元以下的罚款没收3,3-10 擅自编制、使用业余无线电台呼号由无线电管理机构责令改正,没收违法所得,可以并处 3 万元以下的罚款;造成严重后果的,吊销无线电台执照,并处 3 万元以上 10 万元以下的罚款没收3,3-10 销售依照本条例第四十四条的规定应当取得型号核准的无线电发射设备未向无线电管理 机构办理销售备案的,由无线电管理机构责令改正;拒不改正的,处 1 万元以上 3 万元以下的罚款改正;1-3 隐瞒有关情况、提供虚假材料或者虚假承诺申请业余无线电台设置、使用许可无线电管理机构不予许可,并给予警告不罚钱 以欺骗、贿赂等不正当手段取得业余无线电台执照的无线电管理机构依法给予行政处罚;构成犯罪的,依法追究刑事责任不罚钱 总体国家安全观:(十九大后注意政治,记住政治作为根本) 以人民安全为宗旨, ,以政治安全为根本, 以经济安全为基础, 以军事、文化、社会安全为保障 零碎 业余业务(包括卫星业余业务)用于:业余无线电爱好者进行自我训练、相互通信和技术研究。业余业务不可以在其他业务通信。业余无线电爱好者系指经正式批准的、对无线电技术有兴趣的人,其兴趣纯系个人爱好而不涉及谋取利润。 协调国际无线电管理的国际组织是:国际电信联盟。 无线电通信是指利用无线电波进行的符号、信号、文字、图像、声音或其他信息的传输、 发射或接收。 地面无线电通信(terrestrial radio communication)航空通信属于地面无线电通信。 Q简语专题 R系列(状态)含义巧记 QRN天电干扰nature 干扰 QRM旁台干扰man 干扰 QRO信号不好,询问是否增加功率左眼流泪的眼睛 QRP信号良好(CW559,FM55),可否降低功率吐舌,挑衅性降功率 QRQ加快速度Quickly 快点 QRS放慢速度Slowly 慢点 QRT关机“T”断头路,下车 QRU结束联络寒暄语,还有什么信息要说吗?RUOK“Are you OK” QRV邀请InVent 邀请 QRZ重发信号This is BG1ZZZ S系列(动作)含义巧记 QSA发送信号愤怒小鸟,红鸟“Ah Hengniya” QSB信号是否衰落Birdge 如鸟飞起落下 QSD发报是否有问题:键盘、字母手法手法有问题,你这个沙雕 QSL对方电台确认收妥自己发出的消息QSL卡片 QSO我可直接通联瞪大眼睛苦苦等待的人 QSP转信至xxx电台Please 帮忙转信下呗 QSX帮忙守听我在沙县小吃等你 QSY改频换个频道,See you soon 其他系列含义巧记 QTH电台位置hello there CQ 孙悟空,我叫你一声你敢答应吗? 术语解释 CQ非特指地呼叫任何一部国内和国外业余电台 发起CQ:呼叫 CQ 并报出己方呼号。清晰起见,可重复一两次 CQ 并对呼号进行字母拼读 回复CQ:出对方的呼号并报出自己的呼号。清晰起见,可重复关键内容或进行字母拼读 QSL卡片 意义: 确认本地、国内,甚至世界范围内的无线电联络 掌握包括自制发射机在内的本台设备的运作表现 申请奖状,证明自己在通信、技术等领域的努力 纯粹收集,欣赏,展示来自世界各地的 QSL 卡片 包含的内容: 联络双方的电台呼号 双方信号报告和联络时间 操作方式及联络频率 操作员签章、本台通信地址 如果所交换的 QSL 卡片并非用作通联或收听证明,则应在通信方式一栏填写“现场交流” 或“Eyeball QSO”等字样。不应赠送空白卡片 缩略语 缩略语含义缩略语含义缩略语含义 AGN再一次AHR另一个ARDF业余无线电测向 HST快速收发报K完成发送并守听KN完成发送并听对方 QSL管理局BUROCK检查DX远距离 ES和FB太棒了FREQ频率 GM早上好GA下午好GE晚上好 GN晚安GL祝你好运HNY新年快乐 HPE希望去做HPI幸福GLD高兴 GND地面GMT格林尼治时间MNY TNX非常感谢 NW现在OM老伙计OP操作员 PSE/PLS请TNX/TKS谢谢TU谢谢你 UR你的WL将要R收到 SAE写好地址的信封SASE写好地址贴邮票信封SRI对不起 TEMP温度YL女士XYL妻子 EL/ELE/ELS天线振子 AMSAT:美国的业余无线电卫星公司,是一个专注于实验卫星的设计、制造、运行和推进空间教 育的非营利性志愿者组织 OSCAR:“搭载有业余无线电装置的地球轨道卫星”的英文缩写 我国发射的第一颗业余卫星的发射年份、名称、国际 OSCAR 系列号和转发器模式分别2009 年,希望一号(XW-1),HO68,V/U(J)(汶川地震之后那年) EME通信试验的最佳时机是:月亮处于近地点:操作时前置放大器尽量安装在靠近天线的地方,信号特别微弱时对放大器进行冷却以降低热噪声 FT4通信方式,6米适合流星余迹散射通信。(飞天(FT)流星🌠666) 简写含义 DCS亚音 CTCSS数字亚音降噪技术 PTT按键发射,有信号(一般为对地接通)时发射机由等待转为发射 SQL(收发信机面板上)静噪控制,用来调整静噪阈值的大小。 应试篇 技术相关 计算专题 信号计算2.15 dBi:待测天线最大辐射方向上的辐射功率密度与理想点源天线对应值之比的 dB 值 dBd:待测天线最大辐射方向上的辐射功率密度与半波长偶极天线对应值之比的 dB 值 0dBd=2.15dBi0dBd = 2.15 dBi0dBd=2.15dBi 1dBd=3.15dBi,6.15dBi的功率为3.15dBi的二倍(加三乘二) 灵敏度计算 当输出信号满足规定质量标准时,在输入阻抗为 50 欧的某接收机天线输入端口测得最小电压值及对应的灵敏度: 最小电压灵敏度指标1灵敏度指标2灵敏度指标3 1μV2μV-107dBm6dBμV 0.5μV1μV-113dBm0dBμV 影响灵敏度的主要因素是:机内噪声 信噪比:有用信号功率对噪声功率的比值 静噪灵敏度:能够使静噪电路退出静噪状态的射频信号最小输入电平。 噪声系数Fn(1):接收机输入端信噪比 Si/Ni 对输出端信噪比 So/No 的比值。Fn 一定大于 1;在同样的灵敏度下,Fn 越接近 1 越好 噪声指数 NF(0):接收机输入端信噪比 Si/Ni 对输出端信噪比 So/No 的比值的对数形式。NF 一定大于 0;在同样的灵敏度下,NF 越接近 0 越好 等效噪声温度 Te(0°K) 的意义是: 收机的内部噪声功率等于一个接在天线输入端的优质匹配电阻在产生相同的热噪声功 率时该电阻所具有的绝对温度 镜像干扰计算(正负中频) 超外差式收信机所收信号的频率要比本振频率低(或高)一个中频。然而,比本振频率 高(或低)一个中频的另一个遥相对应的信号也可能经混频窜入中频通道,形成“镜像频率 干扰”或“镜频干扰”。如果某对讲机的技术规格书给出的 VHF 接收机第一中频为 45.05MHz, 那么在 145.00MHz 收到的镜频干扰可能来自: fmirror=f±fmiddlef_{mirror}=f\pm f_{middle}fmirror​=f±fmiddle​ 简单成狗了🐕。 天线功率计算 发射机效率:输出到天线系统的信号功率与发射机所消耗的电源功率之比 若一部业余无线电台的工作电压为直流 13.8 伏,FM 方式的射频输出功率为 N 瓦,电源 效率约为 80%,则发射时的工作电流约为: η=WrWp\eta=\frac{W_r}{W_p}η=Wp​Wr​​ I=PU=N×η−1U=1.25N13.8=0.09058(A)I=\frac{P}{U}=\frac{N\times \eta^{-1}}{U}=\frac{1.25N}{13.8}=0.09058(A)I=UP​=UN×η−1​=13.81.25N​=0.09058(A) 可用频率区间计算 FM(调频)发射带宽包含上下的范围,如20kHz代表可达到+10kHz与-10kHz,再考虑频率容限即可计算。 在 70 厘米波段中,爱好者经常在 438-440MHz 展开话音通信。这也是 IARU 第 3 区波 段规划中的一个多模式共用细分频段。假设一部业余电台正以 FM 方式在该频段参与通联, 发射带宽小于 20kHz 并且频率容限优于±2kHz,则该电台的主载波设置范围可以是:从 438.012MHz 至 439.988MHz USB上边带模式,只发生边带之上的,计算时下限只考虑频率容限即可 在 70 厘米波段中,爱好者经常在 438-440MHz 展开话音通信。这也是 IARU 第 3 区波 段规划中的一个多模式共用细分频段。假设一部业余电台正以 USB 方式在该频段参与通联, 发射带宽小于 3kHz 并且频率容限优于±2kHz,则该电台的主载波设置范围可以是: 从 438.002MHz 至 439.995MHz dbm与功率的换算: 1dBm=10lg(11∗10−3W)=30W1dBm=10 lg(\frac{1}{1*10^{-3}}W)=30W1dBm=10lg(1∗10−31​W)=30W 1dBμ=10lg(11∗10−6W)=60W1dBμ=10 lg(\frac{1}{1*10^{-6}}W)=60W1dBμ=10lg(1∗10−61​W)=60W lg2=0.301029995664lg2=0.301029995664lg2=0.301029995664 瓦数每增大一倍,dbm增加3 比较专题 串联电感后的发射效率:顶部>中部>底部 如果某话音发射机在不同调制方式下的峰值输出功率相同,则在无语音输入时,实际射 频输出功率由大到小可以排序为: FM,AM,SSB 如果用两手分别接触电压有效值相同但频率不同的电路的两个端点,则所受安全威胁由 大到小可以排序为: 工频交流电、HF 射频交流电、UHF 射频交流电 越大越好 信噪比 越小越好 1. 通带矩形系数 2. 灵敏度指标的数值越小,接收微弱信号的能力越强 越1越好 噪声系数Fn 驻波比(SWR) 发射 调整方式含义 AM幅度调制(调幅) FM频率调制(调频) PM相位调制(调相) SSB(单边带调制)发射带宽较FM窄,与周边电台的频率间隔至少应该是2~3kHz。用于 长距离VHF、UHF(上边带) HF语音通联(14MHz以上,上边带) 7MHz以下用下边带 10.1MHz用下边带,10.1MHz以上用上边带 FM用于VHF与UHF本地通联。 FM无法同时守听多个信号 无论是 FM 还是 SSB 调制,向发射机的话筒输入端施加 10 倍于规定输入电压的音频信 号,最可能的结果是:信号失真。大量的谐波和互调产物还可能促使发射带宽增加,通信质量下降。 CW(等幅电报)拥有最窄的发射带宽。 带外发射:由于调制过程而产生的、刚超出必要带宽的一个或多个频率的发射,但杂散发射除外 HF:通信依靠电离层的反射 发射类别的编码由三个字符构成:第一位表示主载波调制方式,第二位标识调制信号特性,第三位体现传输信息类型。例如’A0A’表示双边带调幅电话通信,'F2D’代表调频编码数字传输系统。 主载波调制分类 未调制载波(N型) 调幅(A型)包含双边带、单边带等子类 调频(F型)涵盖宽带、窄带调制 脉冲调制(P型)包含脉宽、脉位调制等形态 单边带制(J型)主载波为调制的发射 信号特性分类 无调制信号(0型) 单信道模拟信息(1型) 单信道数字信息(2型) 多信道复合信息(3型) 信息类型分类 电报(人工收发)(A型) 电报(自动接收)(B型) 传真(C型) 数据传输(D型) 电话[2](E型) 电视(F型) (字母越往后越高级,仅仅记住尾缀E代表电话、F代表电视,A代表电报就足以做对所有题目) 方法发射类型解释 CW(等幅电报)A1A调幅;单信道;电报 单边带话J3E单边带;多信道;图像传输 SSTV、ATVF3F调频;多信道;电视 调频话F2E调频;单信道数字;电话 YSF:是数字语音和数据传输相互融合的一种通信方式,该方式为业余无线电通信广为采用,具备通过中继台转发进行通信的能力,调制方式为 C4FM。(巧记:约瑟夫不用宽带,不选含带宽的选项) Icom D-STAR System:卫星,全选 FreeDV:为爱好者提供一种传输带宽较窄,完全适合 HF 的数字语音方式 ,为爱好者提供探索数字通信原理和语音处理技术的可能性,在遵循开源许可协议的前提下可用来研发自己的业余无线电装备。(DV音色不好) DATV(数字业余电视)是将数字音视频压缩编码实验用于实时图像通信的一种方式。通 过卫星转发器进行 DATV 联络时,爱好者们普遍选用 DVB-S2 协议,调制方式可以是:QPSK、8PSK、16APSK、32APSK 用 DRM 协议进行数字慢扫描电视(DSSTV)通信时,爱好者总是倾向于通过单边带 而非调频话方式来传输在音频范围内生成的 DSSTV 基带。主要原因是:单边带方式完整保留 DSSTV 的基带特性,利于衰落信道中的差错控制。(为什么单边带好,因为单边带好,顺着问题找答案) 天线 理想点源天线:存在于理论中的一种小到一个点,可将发射机输出的全部射频能量都转化为各向同性且 均匀辐射的电磁波的假想天线;用作比较实际天线辐射性能的一种全向基准天线。 简称全称 DP偶极天线 GP垂直接地天线 VER垂直天线 LW长线天线 YAGI八木天线 BEAM定向天线 I理想点源天线 水平E极化偶极天线:通过该天线发射的电磁波,电场平行于地面,该天线水平面上的(E 面)方向图呈“8”字展开 垂直H极化天线:该天线发射垂直极化波,电场与地面垂直;垂直天线是全向天线,其 H 面方向图是全向的 橡胶天线:就电台的一般持握方式而言,电波的垂直极化分量要强一些,相对于全尺寸天线,“橡胶天线”的发射与接收增益都低一些 驻波比(SWR):连接到传输线终端的负载阻抗与传输线自身的特性阻抗相匹配的程度,负载与传输线完美匹配时,传输线之中没有驻波,因此驻波比为 1:1,如果负载与传输线不匹配,传向负载的部分能量会沿传输线返回始端.越趋近于1:1,其能量可以更有效地用于传输信号射频。 数发射机都在 SWR 超过一定值时降低输出功率。这是为了保护发射机中的功率半导体器件 SSB测量SWR不稳定,要用CW模式进行测量。 发射天线的作用是:把发射机输出的射频信号转化为无线电波; 接收天线的作用是:把空间的无线电波转化为接收机中的射频电信号。 天线增益(相对值):待测天线最大辐射方向上的辐射功率密度与基准天线对应值的比值;与参考天线相比,被测天线在某个方向上使信号增强的程度 天线加载:为天线振子串联电感线圈,延长振子的电气长度 自制业余无线电发射设备,在经无线电检测机构检验合格并取得电台执照之前,应在调 测时在设备的天线端口连接(或在串联必要的仪表之后连接):假负载 硬件 收发信机 收发信机是一种组合了接收机和发射机的无线电通信设备 一个可以工作的无线电接收系统至少应该包含接受天线和解调器。(如晶体管收音机) 一个可以工作的无线电发射系统至少应该包含射频振荡器、调制器和发射天线 业余无线电收发信机所用的直流电源线要尽量短粗是为了减少发信时电源线的压降。 单工操作(simplex operation)是指:在一条电信通路的两个方向上交替进行传输的一种工作方式。下列通信采用单工操作方式:两台由 PTT 键转换收发状态的业余对讲机之间的通信。 双工操作(duplex operation)是指:一条电信通路的两个方向能同时进行传输的工作方 式。下列通信采用双工操作方式:由一台连续工作的 430MHz 接收机和一台 144MHz 发信机组成的地面业余电台与业余卫 星之间的通信。 半双工操作(semi-duplex operation)是指:电路的一端用单工操作,另一端用双工操 作的一种工作方式。下列通信采用半双工操作方式:一台业余中继台与一台由 PTT 键转换收发状态的业余对讲机之间的通信 缩写全称/说明功能描述 PTT按键发射 DTMF双音多频编码由8个音调频率中的两个频率组合成的控制信号,代表16种状态之一,用于遥控和传输数字等简单字符 NFM窄带调频适用于信道带宽25kHz/12.5kHz的通信信号 WFM宽带调频适用于接收信道带宽180kHz左右的广播信号 VOL音量控制用来调整接收机放出的声音大小 VOX发信机声控接入后将根据对话筒有无语音输入的判别自动控制收发转换 NB“抑噪”切除高于平均信号的大幅度突发脉冲噪声。可用于火花塞辐射脉冲干扰 MODE工作模式切换用来切换工作方式,比如FM、LSB、USB和CW等 PRE收信机前置放大器在接收微弱信号时接入(此时某些技术指标可能低于额定值) ATT收信机输入衰减器在接收大信号时接入,使信号不致过大而使前级电路过载 AT/TUNE自动天线调谐对天线电路的电压驻波比进行检测并进行自动补偿,以维持最小驻波比 DC直接变换接收到的射频信号在解调之前不做频率变换 使用射频/中频增益和音频增益分开控制的通信接收机进行收听时,可以这样设置: 信号特弱时尽量把射频/中频增益开到最大,信号特强时尽量把音频增益开到最大,然后 从低到高调整另一个增益以得到适当的音量。(信号弱开射频增益) ALC:发信自动电平控制,对射频输出电平进行检测并反馈控制,以维持其在适当限度之内(防止过驱动导致调制失真或引发电路故障)即使打开了发射机的 ALC,将话筒的增益调得过高仍可能导致:发出的信号市镇;使用单边带收发信机发送 AFSK 信号时需要关闭 ALC,因为ALC 增加 AFSK 信号的失真,抬升误码率。 PROC:发信语音压缩,对音频输入电平进行检测并反馈控制,以使包络幅度较小语音获得提升。 发信时,若话音压缩调整不当可能带来什么问题? 可能产生很多互调成分,影响对方收信时的辨识度 用单边带收发信机发送 AFSK 信号时应关闭语音压缩功能,语音压缩可能导致信号的包络畸变,破坏基带特征,抬升误码率 在电缆外面穿套铁氧体磁环可以减小话筒或耳机用音频电缆可能感生的射频电流? AGC:收信机自动增益控制,对中频级信号电平进行检测并反馈控制,防止电路过载。当有用微弱信号和强干扰同时出现时要关闭AGC;接收 FM/FSK/PSK 等包络幅度恒定的信号时选择较短的AGC时间常数;接收 SSB 和 AM 等正常信号的包络幅度不断变化的信号选择较大的AGC时间常数。 静噪:信噪比达不 到一定水平时自动关闭音频输出 SQL:静噪控制,用来调整静噪阈值的大小 作用:在没有信号的情况下关闭音频输出,避免播放刺耳的噪声 需要聆听非常微弱的 FM 信号时应如何设置收发信机的静噪?关闭静噪或将阈值设为 0,使接收机的音频输出不受限制。 Digital Coded Squelch:DCS数字亚音 CTCSS:亚音调静噪,即从 67-250.3Hz 的 38 个亚音调频率中选取一个作为选通信号,代表 38 种状态之一,接收机没有收到特定的选通信号时自动关闭音频输出 馈线与同轴电缆 馈线:同轴电缆: 最适合的同轴电缆特性阻抗为50欧姆 优点:因为它易于使用,与架设环境之中其他物体间的互耦也很低 关键电气参数:特性阻抗、指定频率下每百米的传输损耗。 如果其信号频率升高,则其传输损耗增加。 外皮需要防紫外线的原因是:如果电缆护套被紫外线破坏,电缆就会受潮损坏 空气介质同轴电缆需要特别措施来防止湿气渗透。 馈线损耗会导致:发信功率降低、收信信噪比下降(信号不失真) 对于 400MHz 或更高频率的信号,应当优先选用的同轴电缆连接器是:N 型连接器 对于HF 和 VHF 通信系统,多使用M型同轴电缆连接器 调制器、混频器与滤波器 调制器的作用:以原始调制信号控制射频载波的幅度、频率和相位参数。 接收机调制器的作用是:从接收到的已调射频信号中分离出原始调制信号。 接收机前置放大器的主要作用是:降低接收机内部噪声的影响。 选用解调器的主要应考因素是:尽量忠实地还原原始调制信号 亚音频静噪系统(CTCSS)所用的声调大体位于音频中的什么范围?67-250.3Hz 混频器: 频率变换。将信号的原始频率变换成另一个频率 中频频率高于输入频率的为上变频方式;中频频率低于输入频率的为下变频方式 中频滤波器所抑制的干扰是临近频率干扰,描述了接收机抗拒邻近频率干扰能力的指标是中频选择性。 在超外差式业余收发信机中,负责抑制镜像频率干扰的部件是: 变频级之前的波段预选滤波器 “通带矩形系数”或“通带形状系数”通常是用来描述带通滤波器频率特性曲线两侧斜坡的陡峭程度。陡峭程度越小,机对邻近频道干扰的抑制能力越强。 用设置在 NFM 方式的对讲机接收 WFM 信号,效果为:可以听到信号。如果调制信号幅度较大或音调较高,会听到明显的非线性失真。 用设置在 WFM 方式的对讲机接收 NFM 信号,效果为:可以正常听到信号,只是声音比较小。 哪种电路可以解调 FM 信号?鉴频器(对调频信号进行解调的过程称为鉴频) 哪种电路可以解调 AM 信号?检波器(对调幅信号进行解调的过程称为检波) 极化方式 使用同样的天线进行通信,极化保持一致,效果更好: 一级:1/2 波长水平偶极天线、1/2 波长垂直偶极天线、 二级:左旋圆极化天线、右旋圆极化天线。 左旋圆极化天线与水平偶极天线互相通信的效果相当于两个水平/垂直偶极天线的通信。 左旋圆极化天线与右旋圆极化天线的通信效果差 顺时针、左旋 发射天线左旋,接收天线最佳极化方式也是指向发射点的左旋圆极化。 卫星采用右旋圆极化,从北向南飞行,天线始终指向地球南极,如果地面上某业余电台采用极化卫星天线追踪该卫星,则该台所用天线的最佳极化方式是:卫星过顶前为右旋,过顶后为右旋。 卫星采用偶极天线,接收天线可以采用指向卫星的右旋或左旋圆极化天线。 信号干扰与超距离传播 多径传播对 UHF 或 VHF 波段数据通信的影响是: 可能使误码率上升 用 VSB 方式进行 ATV 通信时,即使信号相对较强,有时所收图像的边缘也有重影。 这是因为: 多径传播。来自不同路径的信号到达接收天线的时延不同,造成重影;发射天线的 VSWR 过高。如果信号在馈线中多次往返于发射机和天线,会造成重影。 决定超短波视距传播距离极限的主要因素是:发射天线和接收天线距地面的相对高度。 有时,相隔数百千米的业余电台可以实现 VHF/UHF 超视距直接联络。可能的原因是:号的传播路径中出现了大气波导现象(由大气高空逆温导致) 有时,我们可以在 6 米或 2 米业余波段中收到上千千米外的“超视距传播”信号:突发 E 层的传播 有时,VHF/UHF 业余波段中可能出现远达 500 千米的“超视距传播”信号。这与下列哪 种现象密切相关?对流层散射 选择性指标 指标反应的特性 信道带宽、信道选择性和信道滤波器的矩形系数接收机抗拒工作频率附近干扰信号的能力 带内波动和信道带宽接收机接收 SSB 话音信号时的频响均匀程度 前端带宽接收机抗拒相距工作频率较远的强干扰信号的能力 镜像抑制比接收机抗拒相距工作频率两倍于中频的强干扰信号的能力 应试篇:无线电系统原理 无线电波范围:3000GHZ以下的 发射类别:与定义无关的不选,含“只”的不选* (AM)单边带发射:只发射一个边带的调幅发射 电子相关 音频:16Hz∼20kHz16Hz\sim 20 kHz16Hz∼20kHz “击穿”是指施加于绝缘介质上的电压高于一定值时,部分介质突然变成导体,导致介质的电阻陡然下降的一种现象。 业余无线电设备中的射频部件积灰或受潮后,即使没有击穿或漏电,也可能因绝缘体的物理性质发生改变而意外产生介质损耗。 介质损耗:绝缘材料在电场作用下,由于介质电导和介质极化的滞后效应,在其内部引起的能量损耗。 c=λ×fc =\lambda\times fc=λ×f “电动势”(V): 电子器件或装置将某种形式的能量转化为电能的能力。电源两端电动势的方向为:从电源负极到正极。 ”电压“(V):加在电路两端的电源驱动电子流动的力量大小。电压方向为从电源正极到负极。 ”电流“(A):单位时间内流过电路的电子数量 ”电阻“(Ω):电路从一点到另一点阻碍电流通过的能力大小 “电源”:一种将某种形式的能量转化为电能的供电装置。常见的有开关电源、线性电源、蓄电池。 用蓄电池为电台供电时,应如何估算电池供电的时长?:用电池的标称安时数除以收发信机的平均工作电流 电源的内阻使电源的实际输出电压降低(电源分压) ”功率“(W):电流在单位时间内所做的功 ”阻抗“(Ω):电路从一点到另一点对交流电流阻碍作用的统称 类别标准阻抗(Ω) 无线电通信及相关测试设备50 电视设备75 音频设备600 正弦交流电的电压、电流的峰值(Peak Value)是指从零点算起的最大值。设备传输接口标准阻抗: 正弦交流电的电压、电流的峰-峰值(Peak-to-Peak Value)是指从负半周峰值到正半周峰值之间的差值 任意交流电压的有效值(RMS voltage)是指:在同一电阻上可以转换出与该交流电压效果相同的热量的直流电压 直流电路欧姆定律: R=UIR=\frac{U}{I}R=IU​ P=I2R=U2RP=I^2 R=\frac{U^2}{R}P=I2R=RU2​ 计量单位:分厘毫3微6纳9皮12飞15,千3兆6吉9太12 “有些收发信机会在 13.8V 直流电源插座附近安装一个标有数字的复位按钮。其作用是:当设备过流时切断电源;当电源极性接反时切断电源。 用万用表的直流电压档测量正负对称的方波电压(占空比为 1:1)。所得读数为0 如果用磁电式万用表的交流电压档测量正负对称的方波电压(占空比为 1:1),其指针所示的电压读数:大于该电压的峰值(表头按 平均值 × 1.11 来显示“有效值”) 用指针式万用表的直流电压档测量最小值为 0 的方波电压(占空比为 1:1),得到的读数 是该电压的:峰值的 1/2,亦为有效值 用万用表的电阻档测量一个电路。最开始,电表指示电路的阻值很小。但是随着测量时 间的延长,测量值却变得越来越大(电阻指针左边是极大值)。这是因为:这个电路两端可能存在一个很大的电容 测量一个电解电容器是否完好应当使用:指针式万用表的电阻档;数字万用表的电容测试档(如果仪表具备该功能) 用指针式万用电表的电阻档测量一个常用元件,表笔第一次连接时表针挥动了一下,但 很快回到零点。断开表笔重新连接,表针却不再有任何指示。正确的推论是:该元件可能是一个电解电容器. 指针式万用表的电压档有个“欧姆/伏(每伏欧姆)”指标。越大的每伏欧姆数越说明:测量电压时电表对电路工作状态的影响小 用数字万用表的直流电压档测量电路两点间某个等幅音频信号的电压,发现读数不为零。 交换两支表笔之后再测,所得读数的极性反转。正确推论:音频信号上叠加有直流成分。直流档只会影响直流分量。 与业余无线电台有关的安全防护技术 业余无线电发射设备的下列指标必须符合国家的相关规定: 频率容限和杂散域发射功率。(为了防止主要攻略发射其他波段造成干扰) 业余电台的无线电发射设备应符国家规定的下列主要技术指标:符合频率容限、符合杂散发射最大允许功率电平。 频率容限是指: 发射所占频段的中心频率偏离指配频率的最大容许偏差, 发射的特征频率偏离参考频率的最大容许偏差 单位是:百万分之几Hz 杂散域发射是指:(在带内) 必要带宽之外的一个或多个频率的发射,其发射电平可降低而不致影响相应信息的传输 杂散发射包括谐波发射、寄生发射 杂散发射包括互调产物、变频产物 功率的单位 绝对功率:dBm 低于载波发射功率的分贝值 dBc 低于 PEP 发射功率的相对值 dB 业余无线电专用发射设备必须满足的主要技术指标要求包括:频率容限与杂散辐射不超过限值,发射频率不超过国家规定的业余业务和卫星业余业务。 按照国家标准 GB8702-2014《电磁环境控制限值》,从电磁环境保护管理角度,向没有 屏蔽空间发射电磁场可以免于管理的有: 频率范围为0.1-3MHz,等效辐射功率小于300W的无线电通信设施(设备) 频率范围为3MHz-300GHz,等效辐射功率小于100W的无线电通信设施(设备) 根据国家标准 GB8702-2014《电磁环境控制限值》,公众曝露是指:公众所受的全部电场、磁场、电磁场照射。 为什么我国《电磁环境控制限值》标准中的照射限值伴随频率有所不同?:人体对某些特定波长的电磁波有更多的吸收 电路接触点打火会产生减幅波辐射 空中的VHF和UHF属于非电离辐射 电磁兼容技术以及射频干扰的预防和消除 传统防雷装置的主要组成部分:接闪器(避雷针)、引下线、接地体。 防雷接地的作用是:把接闪器引入的雷击电流有效地泄入大地 接地体的要求:要有单独的接地体,接地电阻要小,接闪器到接地体之间的引下线应尽量短而粗 镀银软铜丝编织扁带最适宜连接天线、塔架和入室馈线等处的各个接地部件。 对于一般建筑物,单支避雷针的保护范围至多能为在避雷针顶点至地面之间,由 60 米半径滚球曲线所构成的空间 在为同轴馈线安装避雷器时应当注意将所有避雷器的地线接到同一个金属条带上,然后将条带可靠连到室外的接地处 考虑实际工作环境必然存在一定的湿度,则根据 GB/T 3805-2008《特低电压 ELV 限值》 在潮湿条件下的限值,当人体握紧某个带电零件时,零件与人体间的电压不可高于: 交流16V,直流33V 假如接触电压相同,则触及带有射频电压(例如,频率不低于 LF)的裸露导线与触及带 有直流或交流 50Hz 电压的裸露导线相比,人体所受的安全威胁有什么不同?致死风险有所下降,但是灼伤皮肤或深层皮下组织的风险显著上升。 使用普通 12 伏铅酸蓄电池为电台供电存在什么潜在风险?如果通风不良,会有爆炸性气体(氢气)聚集,快速充电会释放氢气。 电台室如遇电气设备、电线电缆或者电源装置失火,正确的处置应当为: 立即切断所有供电,使用二氧化碳灭火器或干粉灭火器 新规定于2024/3/1起实行。 ↩︎ 备考B证-无线电发射类型 - DoveSky|BG8LNG ↩︎

2025/10/17
articleCard.readMore

EP4:有纸化生活

你是否天天与消费主义斗智斗勇,评测,拆箱、生产力…是否在商品挑逗下,一次次几乎被它击溃,然而倔强地一再进行反思,心中默想是必须吗?可替代吗?钱有必要存着吗?有必要花吗? 不可否认,装置能赋予极大的自由,然而这自由终究不过是装置自己的,那不决是人的自由。人的自由只需要一丁点工具,给肢体一丁点延伸。如果用奥卡姆剃刀给这一丁点装置不断去除非必须的部分,最后留下的不可再简的实体,不过就是纸与笔而已。笔代表时间,纸代表时间的痕迹,在时间中审视时间的痕迹就是在迭代。由此即可涌现出一切文明的造物。 var ap = new APlayer({ element: document.getElementById("aplayer-TaYnwzcr"), narrow: false, autoplay: false, showlrc: false, music: { title: "EP4:有纸化生活", author: "秉蕳", url: "https://cloud.si-on.top/api/raw/?path=/Podcast/ep4.mp3", pic: "/images/Cover/podcast/ep4.png", lrc: "" } }); window.aplayers || (window.aplayers = []); window.aplayers.push(ap); 00:10 关于播客停止五个月的简要说明:维护草稿时间太久以至于新念头浮现使就念头遗忘, 03:12 压制购买平板设备消费欲望的经历,关于阅读与绘画的两个需求投射到平板上。 08:32 下单前的最后挣扎,外出散步时对设备进行审视。自己的工具理性其实根深蒂固,对他的批判只是浮于表面 11:40 对现有工具进行追根溯源,找到它最原始的形貌。 12:40 当红电子数码设备的根源都可以抽象到纸与笔之中。 14:55 (上述)工具的本质是人类借由输出的反馈进行迭代的载体,表达迭代的过程(很奇妙)。追寻工具最原始形貌——纸与笔,纸笔的优势。 18:39 有纸化生活初次尝试的体验。写字比输入法的好处——没有重复,顺畅表达。 20:40 (自我小批评),大懒虫就是我 纸笔乃是人类文明的根基! 不要屏幕,心里要更多的纸! 不要装置,心里要更多的字! 👉订阅《虚言》 https://blog.si-on.top/audio.xml/ Nothing Words虚言

2025/9/14
articleCard.readMore

格风吹草木

上而无极、太极,下而至于一草、一木、一昆虫之微,亦各有理。一书不读,则阙了一书道理; 一事不穷,则阙了一事道理; 一物不格,则阙了一物道理。须着逐一件与他理会过。 ——《朱子语录》 午间回宿舍抽闲读了几页判断力批判,概念越发繁复,便合上kindle。抬眼眺向窗外:几棵芦苇被风吹拂,在有节奏地晃动,周遭低矮的垂柳,杂草也在摇动,再看向远处,路旁的行道树也在以树干为单位地晃动着,树叶婆娑,尽管隔着窗子,也仍看到那沙沙声。看着看着,逐渐产生了一种愉悦的感觉。 前不久说过要留意一些没有意义的东西,这晃动多半是没有意义的(在此不论及由此而产生的发电机的灵感),那么为何风吹树叶摇动能让我感觉到愉悦呢?纵然这感觉不可名状,为了名状它,当分析一二再说。 风、木、树叶摇动都是自然的造物与自然的因果,它们的存在具有一种不容置疑的合理,用判断力批判中的解读来说就是自然形式合目的性——“这种合目的性,只与对象对于主体认识能力的适应性相关,因而具有形式上普遍引起愉快的特点。”想当初王阳明格竹致疾,却什么也没格到,就是他心性还没达到可以认识竹的能力(无论是理性还是感性),不仅得不到愉悦,得不到竹的道理,反而充满了痛苦。 风吹动树叶,树叶摇动,满足对常识的判断。且不论这判断是否严密,且不考虑树木的高度、树杈的分布,树叶的形状对摇动产生怎样怎样的影响。 因为树叶动了,单单树叶被风吹产生摇动这简单判断的本身的验证,就会造成一种愉悦。况且如果不止是一片叶子,一棵树,而是一万片叶子,无穷多的树木,都在风的吹拂下摇动,不停的验证着这个判断。这种无数次多验证带来的近乎知性的东西,会带来一种更深的愉悦,可谓致知了。 这树叶摇动毕竟是“向外求理”纯粹的他律,这愉悦之感必然也需要“逐物而返”回归内在。天地同心一理,我心中某个地方定然也有风吹树叶摇动的沙沙声,这沙沙声响,定然也唤起了另一些想法,念头。外界的摇动与内在的摇动忙碌地呼应着,而我只是默默地看着,想着,只感一愉悦。 按: 格物致知,经世致用,这将是未来日子里实践的新原则。康德哲学这一套东西确实繁琐地厉害,晚上在桥头读了个把小时,几乎无所收获,更何谈经世致用,枉费了我几个小时的精力。不若把笔记完善好后就此作罢算了。

2025/9/1
articleCard.readMore

W山游记

匆忙写就,文白混乱,词句不通,有待润色。 岁在乙巳,时值处暑,金风未至,暑热依然。周末方醒,忽生登W山(五磊)之念想。W山距撇室[1]东南七十余里,过附海、观海、绕杜湖,又盘山十里方至。所行不远,时间可贵,欣然规往,且行且谋之。 九时起身,乘公车走,换乘二车,无缝衔接,约十时许至观城。备水储粮,决意游山整日,傍晚且归。绕杜湖行,未及山脚,已见山来。是日天朗云清,云汽弥漫缀乎群山之中,海云之白、远山之青、天光之蓝、湖色之碧,杂然乎一目之中,心游世界,顿失其所在。十一时,至山脚。 山有溪,藏云其名也,自山巅小池出,绕乱石,冲泥沙,成小潭,蜿蜒而下。沿溪有步道,余携相机,拾阶而上,且行且玩,且赏且拍。 溪侧有茂林古竹,密而不乱,两岸枝干,交叠溪上。日色下照,光影明灭,斑驳石中。 行走间,忽见蓝影翩翩溪流上,余甚为惊讶,追逐而行,欲拍之。少顷,蓝影止于一突兀石上,吾缓慢凑近,调整参数,摄以特写,定睛看,乃一蓝色蟌䗓,其体碧绿,其翅翠蓝,世间竟有如此华丽之虫,相较之下,往日所见之蓝色摩萝叶甲也顿失趣味。 蟌䗓忽游走,溪水自流深。 下小潭,见虎斑小鱼、河虾三五只游荡溪石间,上有水黾。日光下澈,水黾之影投射水底,如微型黑洞;溪流击石,波晕散漫。时鱼、黾之动,虾、影之慢,杂糅一处,动静相宜,可爱有趣,甚觉快哉。 复登高,稍行百十阶,已觉酷热非常,汗如雨下,上衣几乎湿透。强行至山顶空石处,解衣赤背,晒衣石上。于石荫处歇息,瞭远山,观C城,看积云。归寺中拍照,无非飞檐走壁,古树老僧,川蜀游人而已,略知。 下午二时,到山门,忽雷声大作,未闻如此响动,如在头顶。始知所处愈高,所闻愈响。少顷,烈雨如注,止于庙门避雨。阵雨初歇,趁凉爽,复登顶,然岩上水汽蒸发,白气阵阵,燥热非常,又赤背晒衣石上😂。四时许,山风大作,暴雨欲来,狼狈下山归家。 所摄一二,罗列于下 出租屋之名号,甲辰八月初次租房,命名点室,取自《平面国》中的点国,乙巳雨水搬至此处,房间略大,名以撇. ↩︎

2025/8/31
articleCard.readMore

巨人的荷塘

从围墙翻将进去,迎面是几亩方塘,中间一道绿油油的小路把池塘分成整齐的两块。 靠东边的塘中是一块斑驳的荷田,临近处暑,荷叶却已然憔悴了不少,枯萎正不知不觉间从荷塘深处蔓延开来。荷花也开的不甚齐整,这朵正含苞待放,下旁却已经有旁处飘来的落花;而那朵花开殆尽的枯萎莲蓬正兀自飘摇零落着,一边却有咄咄逼人的尖尖角露将出来。生老病死,荷花的一生,此刻竟全在一处了。 塘边则尽是些狗尾草、山柳菊,田菁之类的野草🌿,偶有一两株细长的稗子从绿意里伸将出来,在发红的日光下摇曳着微粉的须芒。花草个个争先恐后,都要在这有限的时间里放出光来。 暮色将至,蚊虫开始活动,蜻蜓也随之忙碌起来,大的,小的,红的,蓝的,不住得在塘中盘旋,绕得我眼花缭乱,乃至走了大半圈池塘,才发现了一只停住的蜻蜓。本想寻点惬意,体会下“小荷才露尖尖角,早有蜻蜓立上头”的松弛,这哪儿会有?闲不了一点儿,这群造物,分明都是些亡命之徒,这会儿哪怕两只蜻蜓飞的太快,互相撞架摔进水里也不是什么奇怪事。 还没转多久,日头就已经落下,傍晚光线变化大的快门参数不好调整,便收起了相机,张望着信步走起来。因为背着书包的缘故,背上早已汗津津的,衣服粘在皮肤上不甚自在。再者怕待久了守门人会忽然从某个地方钻出来找我麻烦,便趁着暮色,急匆匆地翻出去了。

2025/8/21
articleCard.readMore

小心王二麻子

传说在有穷国的乌有地,有两大门派,一派以张三为首的张派,师法天地,一派是李四为首的李派,师法本心。两派虽在世界本源的问题上相争千年,但却从未发生过冲突,反而在互相的责难中共同进步。 一年春天,几十个来自无穷国的以王二麻子为首的王派闯入乌有地,自称有统一张、李两派分歧的方法,只要两个门派将自己的思想完全阐述,便可在百日之内给出一个统一理论。两派闻听这外来的和尚竟有如此大能耐,便纷纷向它述说自己门派的奥秘。 在经过王派子弟三个多月的调研,眼看着就要到第一百天了,忽然王派的人踪影全无,如同凭空蒸发一样,连个毛都没有。 人们诧异、失望、而后平静下来继续生活,继续争辩。 第二年秋天,一位云游四海的老者回到乌有地,向众人谈起外界A国、B国的种种见闻,人们不禁唏嘘起这些国家百姓的苦痛来。谈话间老者说在M国有一个学派,徒众甚广,几乎遍布列国,老者仔细听过他们几次演说,其主张与本地的张、李两派几近相同,在根本问题是只是用一个机能属性之类的模糊字眼连接两者,糊弄过去,但因其一些思想(仍是抄来的)甚是切实理性,而广受欢迎。人们便向老者谈及两年前王派的那场闹剧,当谈及王二麻子的长相时,老者一个激灵,啊呀一声,气愤填膺指着M国的方向怒骂道“王二麻子,盗我乌有地百年基业而只字不提出处,真欺世盗名,鳖孙儿子也!” 当学派的掌门人张三、李四秘密调查本地与外地的情况后,发现每当乌有地有研究新内容,不出三日,在外界便有雷同的述说,他们终于明白:乌有地存在一个王派特务的地下据点! 自此,张李两派,人人自危,不再进行广泛地讨论,宁愿沉默也不愿思辨成果被王二麻子这群鳖孙们盗了去。 然而,当主动沉默还没满一月,张李两派,便都觉得在没有对立门派的责难下,在自己内部开展的思辨活动变得越发偏执。师法天地的张派内部甚至分化成了诸多小派,比如张派为本,李派为用的张李派、主张实践为目的的行字张、主张认识为目的的知字张,还有一群年长者组成的原旨张派等等等等,小派系之间纷争不断,早已没了乌有地那种平和的氛围。 在冬至日,张三、李四秘密会见,交换意见后纷纷表示两派必须进行定期的信息交流,否则乌有地不日就将陷入如同外界战国一般的地狱景象。然而信息传递又不可避免地会被王二麻子渗透的特务看到,必须进行加密。 乌有地的技术远没有外界发达,简单的加密手段很容易就被王二麻子破译掉。 这年九月十五,阳历是西方的万圣节,当各派长老苦于没有合适的加密手段茶饭不思,一筹莫展之时,打乌有溪对岸走来三个人,三人自称叫作瑞娃子,沙弥儿和阿地蛮,提出了一种名为RSA的异世界超级加密方法。长老们在研习了其中机理后,纷纷满意的点了点头。下面是瑞娃子给长老们讲解加密操作时的讲义,暂摘录在此: 密学·第三次实操指导 GPG加密 张三生成自己的公私钥,将公钥分发出去 1 2 3 4 5 6 7 8 9 10 gpg --batch --generate-key <<EOF Key-Type: RSA Key-Length: 2048 Name-Real: Zhang San Name-Email: Zhang3@nowhere.Land Expire-Date: 0 %no-protection EOF gpg --export -a "Zhang San" > 张三RSA.pub gpg --export-secret-key -a "Zhang San" > 张三RSA.priv 李四生成自己的公私钥,也将公钥分发出去 1 2 3 4 5 6 7 8 9 10 gpg --batch --generate-key <<EOF Key-Type: RSA Key-Length: 2048 Name-Real: Li Si Name-Email: Li4@nowhere.Land Expire-Date: 0 %no-protection EOF gpg --export -a "Li Si" > 李四RSA.pub gpg --export-secret-key -a "Li Si" > 李四RSA.priv 张三操作,通过李四公开的公钥,加密张派机密文件给李四 1 2 3 4 5 # 导入李四的公钥 gpg --import 李四RSA.pub # 用李四公钥加密文件 gpg --encrypt --recipient Li4@nowhere.Land --output 张派顶级机密.txt 张派绝密.txt 李四操作,利用私钥解密上述文件 1 2 3 4 5 # 李四导入自己的私钥 gpg --import 李四RSA.priv # 解密文件 gpg --decrypt --output 张派绝密.txt 张派顶级机密.txt OpenSSL 张三生成自己的公私钥,将公钥分发出去 1 2 openssl genrsa -out 张三RSA.priv 2048 openssl rsa -in 张三RSA.priv -pubout -out 张三RSA.pub 李四生成自己的公私钥,也将公钥分发出去 1 2 openssl genrsa -out 李四RSA.priv 2048 openssl rsa -in 李四RSA.priv -pubout -out 李四RSA.pub 张三操作,通过李四公开的公钥,加密张派机密文件给李四 1 openssl rsautl -encrypt -pubin -inkey 李四RSA.pub -in 张派绝密.txt -out 张派顶级机密.txt 李四操作,利用私钥解密上述文件 1 openssl rsautl -decrypt -inkey 李四RSA.priv -in 张派顶级机密.txt -out 张派绝密.txt OpenSSH SSH的定位是安全通信,没有文件加密的功能,在这里提一下吧,如果想要用ssh的公私钥进行加密,需要用ssh-keygen将其转换成openSSL支持的PEM格式。ssh-keygen -f 李四RSA.pub -e -m pem > 李四RSA_pem.pub SSH默认输出的公私钥明灭是:私钥名自定义,公钥在私钥名基础上加.pub后缀 张三生成公私钥 1 ssh-keygen -t rsa -b 2048 -C "Zhang3@nowhere.Land" -f 张三RSA -N "" 执行操作后就会产生名为张三RSA的私钥与张三RSA.pub的公钥。 李四生成公私钥 1 ssh-keygen -t rsa -b 2048 -C "Li4@nowhere.Land" -f 李四RSA -N "" 在经过瑞娃子,沙弥儿和阿地蛮三位异人的耐心指导下,张李两派通过非对称加密的方法成功地恢复了乌有地往日的平静,各派系内部的争论也以在外派帮助下转移到自身的完善为终。 就这样,又过了一千年。 一天夏天,量子计算机研究的风声从外地传到了乌有地,当技术部门评定该技术会破解旧有的RSA所依赖的加密算法,所有历史文件都有可能被王二麻子破解后,人们有一次陷入恐慌。乌有地标准与技术研究所(NIST:Nowhereland Institute of Standards and Technology)当即令开发人员着手研究抗量子算法Dilithium,并逐渐弃用旧有算法,同时销毁历史文件。 四个月后,抗量子算法研究成功,以下是加密通信变动的内容 抗量子算法加密示例 GPG 1 2 3 4 5 6 7 8 9 # 需要编译支持PQC的GPG分支(如pqc-gpgme) # 生成CRYSTALS-Dilithium(NIST选定PQC算法)密钥 gpg --batch --generate-key <<EOF Key-Type: DILITHIUM5 Name-Real: Zhang San Name-Email: Zhang3@nowhere.Land Expire-Date: 0 %no-protection EOF openSSH 需要OpenSSH 9.0+ 1 2 # 生成NTRU Prime抗量子密钥(x25519-ntruprime) ssh-keygen -t x25519-ntruprime-sntrup761 -C "Zhang3@nowhere.Land" -f 张三NTRU openSSH 需要OpenSSL 3.2+ 1 2 3 4 # 生成CRYSTALS-Kyber(NIST选定KEM方案) openssl genpkey -algorithm kyber768 -out 张三Kyber.priv openssl pkey -in 张三Kyber.priv -pubout -out 张三Kyber.pub

2025/8/15
articleCard.readMore

今晚按照前日定下的计划,练了练MIDI琴,这是自三月份弃置以后,第二次进行积极地练习。大概是第一次热情褪去的同时,也褪去了对新鲜工具那种包裹着贪念的欲望,这第二次似乎能更客观而冷静地进行学习了。之前总想着能弹一首完整的曲子Show出来因而不重视练习,直接拿复杂的谱去弹,虽然费老大劲弹出个大概来,但也仅此而已。热情褪去,一切都变得无趣。 与之前所有的计划都不同,本次的练习有着一个抽象的目的——从实践中审视工具。古往今来对于工具那么多凛冽入骨的批判思考对实践的帮助委实不大,唯有在亲身实践中审视而得来的才真正为自己所有。 X: 4T: 练习一M: 4/4 L: 1/4Q: 1/4=140K: CV: 1 name="右手"| cdec | dedz | efgf| edcz| \V: 2 name="左手"| CDEC | DEDz | EFGF | EDCz| \ 在对上面的《练习一》这首曲子:1231 2320 3454 3210 (简谱)进行将近一个小时的不断地重复练习后,发现手指敲击的准确度明显提高,甚至不需要思考,只需要就那样地子按下去。结束后,发觉手腕发酸,筋肉记忆建立的过程是这般痛苦的吗?稍歇片刻,又尝试双手弹奏,一开始是很恐惧的(高中看金庸武侠中左右互搏的神功,后左手画圆,右手画方尝试失败带来的心理阴影),仍耐着性子按下去,不多时,这种筋肉记忆自然也建立起来了,后面几乎能很顺畅地弹奏下去。 功用 练习结束后出去超市买水,看着手投影到地上的影子,便下意识对这手审视起来——这手竟然能做这么多事情,写字,画画,骑车,搬砖,锄地,三百六十行,十八般武艺,样样都是直接或间接地依靠手去执行的。我用右手模仿着刚才弹琴的指法,看着它,赞叹它的能力如此之强。又跟着步伐,有节奏地用手甩几个很酷的手势。 目的 在路边,我看到一个花盆。花盆的顶部有一个边沿(就是顶部直径大于盆体向外突出的部分),这个边缘存在的目的是什么呢?它设计成这样必然是为了方便搬运或者吊装,这个结构作为最终的结果,其与需求/原因是一脉相承的。 快走进超市时,当花盆的这个念头对应到手上时,我的眼光突然发生变化,周围一切的一切都变得陌生起来。门口这个垃圾桶是为手设计的,这个女士开的轿车的方向盘是为手设计的,这个师傅骑的电动车的把手,手刹也是的。 走进超市,哇!超市这个门把手也是为手设计的!这边冰柜里的饮料瓶、瓶盖也是,还有这个辣条的包装、那个小推车、称重的称、筷子、刀子、笔…哇奥,我一抬头,全都是以手为目的的! 我拿了瓶水走出超市。回头瞥了一眼超市——它的目的呢? 是人!整个人类文明都是以人为目的!生产是为了人,消费是为了人,工业发展是为了人,环境保护也是为了人。城市存在的目的是为了人,所有的衣食住行、声色犬马,理性感性、认识实践都是以人为目的。 我审视这个略显仓促的答案——从人出发得到的对目的的寻求竟然又归为自身,原因与目的竟然是一个东西,形成了一个闭环。推而广之那宇宙的目的呢?从它的角度来说,它脱离了人,不与一切有任何一点点价值判断的关联。它的目的难道也是他自己本身——宇宙存在的意义就是宇宙?! 我讨厌闭环,衔尾蛇,这是无聊且无益的一个象征。如果一个一个原因产生了一个目的,而这两者最终竟然是一样的东西,那么这个过程到底产生了什么呢?那么人类跟人类存在是没有区别的吗?这中间应当有一个别的新东西,然而我现在找不到。如果不去查资料的话,单就个人实践而言,应当去审视那些无用之物,那些从现在过去乃至未来都绝对对人毫无意义价值的东西。 异化 在回去的路上我又一次摆弄自己的手。我意识到:我竟然能够控制它!不需要思考就能控制它。 “别的手指不动,把食指使劲地向上拉。”我在潜意识里这样命令道,它果然这样向上指着,我感受到指根的韧带在拉伸。 “再来!别的手指不动,把无名指像食指一样使劲地向上拉。”我在又命令道,然而它不能,只略微的抬了一点点。 我意识到这个作为工具的手是有局限的,每个手指的灵活性都有所不同,难怪那会儿在弹奏的时候总想用食指去代替无名指击键。然后就对这双手产生了一种异样的感觉——这双手真是我的吗?我的定义是包括了手的我吗?没有了手,我是不是我呢?没有了四肢,没有了大脑,那我是不是我呢?太玄了,这个想法就此搁置,不想了,等日后读闲书时候(也可能是我之前已经看到的想法在内心里扎根后形成的,然而我却并没有意识到它究竟来自哪里),留意一下有没有跟这个想法有联系的地方?

2025/8/4
articleCard.readMore

Oxygen Pro Mini 使用手册

近日在审视哈贝马斯工具理性批判后形成了一系列模糊的形而下学观点,就在这个燥热的八月,借助二月份一时冲动购置的却即将吃灰的设备进行一次试验性的实践。 ✍文章痕迹 写作时间线 2025-02-25 初次撰写此文 2025-08-03 在ai辅助下,完成此文 2025-08-04 实践后,按照自己易于理解的风格进行重整。 工欲善其事,必先知其器。 ——秉蕳 序 本文为Oxygen Pro Mini的使用心得笔记,主要内容参考自官方说明书:Oxygen Pro Mini User Guide v1.2。 功用概览 主面板 标注键盘的主面板示意图 🎹键盘 ,此产品的琴键是半配重键盘。琴键是midi的主要部分,通过是。通过按住 Shift 并按 C2–Bb3 键可编辑和弦模式设置。有关此功能的更多信息,请参见 “基本概念”。 OCTAVE(八度键):这些键可将琴键的音高范围上下调整一个八度。按住 Shift 并按这些键可将琴键的音高范围上下调整一个半音。键盘可以从默认八度范围向上调整最多 4 个八度或向下调整最多 3 个八度,从默认移调最多调整 12 个半音。要将Oxygen Pro Mini重置为其默认八度范围和移调(键盘上的F2-C5),请同时按下Octave-和Octave+按钮。 PITCH(音高滚轮):从中心位置上下滚动这个滚轮,在弹奏时改变键盘的音高。调音的默认范围因软件合成器而异。滚轮安装在弹簧上,释放后将返回到初始中心位置。 MOD(自定义滚轮):移动此轮可发送连续控制器数据 —— 默认是 MIDI CC#01(调制)。 DAW(宿主软件)/Preset(预设)\编辑 按钮:按此键可将 Oxygen Pro Mini 设置为 DAW 模式或预设模式。在 DAW 模式下,此键的 LED 会亮起。在预设模式下,此键的 LED 会熄灭。按住 Shift 并按此键可编辑预设或用户 DAW。编辑预设或用户 DAW 后,再次按此键可将更改保存到用户 DAW 或预设。按住该键可在显示屏上打开 DAW / 预设选择菜单。 显示屏:主显示屏显示上次使用控件的状态。在调整键盘上的控件时,使用此屏幕可监视参数级别。此外,使用显示器和选择/滚动旋钮来查看和编辑键盘设置。 (选择/滚动旋钮):如果进入了显示屏的某个编辑菜单,转动此旋钮可更改设置 / 参数,按下旋钮可确认选择。如果您没有查看任何编辑菜单,转动旋钮和按下旋钮将分别作为单独的MIDI控件。当使用DAW操作时,分配的控制将是预先确定的。在选择预设或用户DAW的情况下操作时,可以编辑控件。 BACK(返回键):如果进入了键盘的某个编辑模式,按此键将返回上一级菜单。在未进入任何编辑模式时,在 DAW 模式下,此键将发送单独的 MIDI、Mackie 或 Mackie/HUI 消息。在预设模式下,当选中预设 1 - 14 时,此键将发送单独的用户可编辑 MIDI 消息。当使用DAW操作时,分配的控制将是预定的。在选择预设或用户DAW的情况下操作时,可以编辑控件。 Shift:在移动或按下键盘上的控件或按钮时按住Shift按钮以访问其辅助功能。 <<(回退键):根据DAW中的显示界面,此按钮将倒带打开的歌曲或在活动窗口中下移。某些DAW可能需要按下SHIFT按钮,并且<<按钮在活动窗口中向下移动。(在ableton中是将“播放线”移动1/4个位置),编辑预设或DAW名称时,按Shift按钮和Back按钮删除字母。 >>(快进键),同10 🔁 循环:按下此按钮可激活/停用DAW中的循环功能。 ⏹️停止:按此按钮停止DAW中打开的歌曲。 双击此按钮可停止打开的歌曲,并将播放头返回到歌曲的开头。 按Shift和此按钮发送MIDI紧急消息,关闭所有音符消息并将所有控件归零。 ▶️ 播放:按下此按钮在您的DAW中播放歌曲。 ⏺️录制:按此按钮激活DAW中的录制。 BANK<(存储键):Bank >、Bank <键:在 DAW 模式或某个自定义预设下,使用这些键可切换当前选中的推子、旋钮、打击垫和功能键组。DAW 模式下共有 8 个组,预设模式下有 2 个组。按住 Shift 和 Bank> 键可锁定 Shift 修饰符 ARP 旋钮控件。这在现场表演中更改 ARP 参数时很有用。要将旋钮或打击垫恢复到正常模式,请按住 Shift 键并按 Bank > 键。 TEMPO(速度键):点速度键:按此键可设置 Oxygen Pro Mini 的速度,或按住它打开显示屏上的速度编辑菜单,您可以使用选择 / 滚动编码器手动输入速度并选择将 Oxygen Pro Mini 的速度与 DAW 同步。速度设置会影响键盘的琶音器和音符重复功能。更多详情见 “基本概念” 部分。 NOTE REPEAT/ LATCH(音符重复):音符重复 [锁定] 键:按此键可激活打击垫的音符重复功能。要锁定或解锁音符重复功能,请按住 Shift 然后按此键。有关音符重复的更多详情,请参见 “基本概念” 部分。 (八个)打击垫:使用这些速度敏感的打击垫发送MIDI音符开/关消息或执行其他MIDI分配(如果使用预设或用户DAW)。当音符重复处于活动状态时,使用选择/滚动编码器更改自动琶音器和键盘音符重复的当前时分设置。 PAD BANK 打击垫储存库:按此按钮切换到不同的Pad Bank。有两个打击垫库可用。 推子(四个):向上/向下推动这些推子以执行其指定的控制。当使用DAW操作时,分配的控制将是预先确定的。在选择预设或DAW的情况下操作时,可以编辑控件。 旋钮:左/右转动这些旋钮以执行其指定的控制。当使用DAW操作时,分配的控制将是预先确定的。在选择预设或用户DAW的情况下操作时,可以编辑控件。请参阅“基本概念”部分,了解如何更改在DAW模式下操作并选择DAW时的旋钮。按住Shift键,同时转动旋钮1-4以编辑自动琶音器设置。 ARP/EDIT(琶音器/编辑):按下这个按钮激活自动琶音器。按住Shift键并按下此按钮可编辑自动琶音器的设置。 LATCH(重复锁定):按下此按钮可在实时(按住不停)和重复模式之间切换自动琶音器。 CHORD(和弦):按下此按钮激活和弦模式。按住Shift键并按下此按钮可编辑和弦模式设置。 SCALE(缩放):按此按钮激活缩放模式。按住Shift键并按下此按钮可编辑缩放模式设置。 按下 模式按钮(Mode Button) 可激活功能键(Function Buttons)的 次级模式。 模式按钮亮起时:功能键将切换至 DAW 或 MIDI 控制功能。 模式按钮熄灭时:功能键将执行其面板印刷的默认功能。 当键盘设置为 DAW 模式 时,功能键可切换以下次级模式: Rec(录制):控制 DAW 轨道的 录音启用(Record Arm) Select(选择):控制 DAW 轨道的 选择(Track Select) Mute(静音):控制 DAW 轨道的 静音(Mute) Solo(独奏):控制 DAW 轨道的 独奏(Solo) 当键盘设置为 预设模式(Preset Mode) 时,功能键的次级模式为: MIDI:按钮将执行 自定义预设中预定义的 MIDI 控制功能。 模式按钮的 LED 指示灯 会显示当前激活的模式。 按住 Shift 并按下 Mode 按钮,即可进入键盘的 全局设置菜单(Global Settings Menu)。在全局设置菜单中,通过调整 BUTTON(按钮功能) 选项,您可以自定义 DAW 模式下功能键的控制功能,包括:Rec(录制启用)、Select(轨道选择)、Mute(静音)、- Solo(独奏) (机翻待润色)推子和旋钮均采用"软接管"模式。这意味着当您切换控制组时,物理推子/旋钮必须移动到新选中软件控制的当前值位置才会生效。例如:若您在1号控制组移动了推子1,随后切换到2号控制组,此时物理推子1必须移动到软件推子5的当前值位置,才能开始控制软件推子5。此功能可确保您在切换控制组时,不会意外改变新控制组的参数值。当推子或旋钮需要移动至接管位置时,显示屏将出现方格纹数值提示条。 后面板 USB:当连接到计算机时,USB端口为键盘供电并传输MIDI数据。 延音踏板插孔:此输入接受瞬时接触脚踏板(不包括在内)。当按下时,默认情况下,踏板将维持您正在播放的声音,而您不必将手指按在琴键上。延音踏板输入可以重新映射以执行自定义MIDI分配。 MIDI输出:使用1/8英寸TRS转5针MIDI电缆(单独出售)将此端口连接到硬件合成器或其他MIDI设备。(请使用TRS 3.5 mm至5针DIN母A型电缆) 注意:启动时,延音踏板的极性由键盘决定。当Oxygen Pro Mini键盘通电时,延音踏板被认为处于“向上”(关闭)位置。重要的是,在启动键盘之前,延音踏板不要处于向下位置,因为踏板将反向操作,当踏板未按下时,音符将延音。 基本概念 本节概述了一些基本概念,有助于您理解和使用 Oxygen Pro Mini 键盘。 键盘 八度和移调 速度控制 音符重复 / 锁定键 预设 DAW 和预设模式 Shift 键 返回键 编码器和编码器键 模式键 ARP 和锁定控制 智能和弦控制 智能音阶控制 DAW 旋钮控制 ARP 旋钮控制 每个部分都包含本指南其他相关部分的链接,建议您一并阅读。 键盘 键盘具有 velocity 感应功能,可在 10 个八度范围内访问 127 个可用 MIDI 音符的全部范围。 按住 Shift 并按其中一个带标签的键,用户可以快速编辑和弦功能或更改全局通道。 八度和移调 通过使用琴键八度 –/+ 键,键盘可以访问 127 个可用 MIDI 音符的全部范围(10 个八度)。此外,您可以将键盘移调最多 12 个半音(1 个八度)。 要更改键盘的八度,请使用琴键八度 –/+ 键分别降低或升高八度。显示屏会暂时显示 “OCT” 和当前的八度偏移。 Oxygen Pro Mini 的键盘可以向下移 4 个八度或向上移 5 个八度。 要更改键盘的移调,请按住 Shift,然后使用琴键八度 –/+ 键分别降低或升高琴键 1 个半音。显示屏会暂时显示 “TRANS” 和当前的移调(-12 至 12)。 速度控制 要编辑速度键,请按速度键。您可以反复按速度键输入速度,或按住速度键进入速度编辑模式。进入速度编辑模式后,可以使用编码器滚动浏览可用的参数值。按下编码器选择要编辑的参数。 时钟源 “CLOCK”:选择速度是由键盘的内部速度发送还是与外部 DAW 同步。 可用值:内部、外部 BPM ###.:20.00 – 240.00 BPM .#:.0 – .9 注意:时钟消息在 Oxygen Pro Mini 的端口 1(Oxygen Pro ##/USB MIDI)上发送和接收。 音符重复 / 锁定键 按下并按住此键将激活打击垫的音符重复 / 滚动功能。如果同时按下 Shift 和此键,将激活音符重复键的锁定功能。 当音符重复激活时,选择 / 滚动编码器可用于更改琶音器和打击垫音符重复的当前时间分割设置: 1/4 1/4T 1/8 1/8T 1/16 1/16T 1/32 1/32T 注意:您也可以使用 Shift 和 1/4、1/8、1/16 和 1/32 打击垫更改速度。要访问时间分割打击垫的三连音功能,请双击所需的时间分割打击垫。 预设 预设是 Oxygen Pro Mini 控件、通道设置等的保存集合。您可以在 Oxygen Pro Mini 的内部存储器中存储多达 14 个预设,这样您就可以为每个虚拟乐器或项目 / 会话使用专用预设。 除了随附的 DAW 预设外,您还可以在 Oxygen Pro Mini 的内部存储器中存储自己的 DAW 预设,这样您就可以为数字音频工作站(DAW)创建和使用自己的专用 DAW 预设。 建议在 m-audio.com 上注册您的 Oxygen Pro Mini 并下载 Oxygen Pro 软件管理器。 在软件管理器中,您可以访问所有随附的软件以及 Oxygen Pro Mini 预设编辑器。预设编辑器为您提供了一种直观的可视化方式来编辑 Oxygen Pro Mini 控件发送到计算机的各种消息,而无需使用硬件界面。预设编辑器允许您从计算机保存和加载自定义预设。 要在 Oxygen Pro Mini 上选择预设,请在预设模式(键熄灭)下按住 DAW / 预设键,直到 OLED 上出现预设选择屏幕,然后转动编码器滚动到某个预设,再按下编码器选择所需的预设。 要在 Oxygen Pro Mini 上选择 DAW 预设,请在 DAW 模式(键亮起)下按住 DAW / 预设键,直到 OLED 上出现 DAW 预设选择屏幕,然后转动编码器滚动到某个 DAW 预设,再按下编码器选择所需的预设。 重要提示:如果在未保存预设的情况下关闭 Oxygen Pro Mini 键盘,您所做的任何分配或更改都将丢失。 DAW 和预设模式 在将 Oxygen Pro Mini 键盘设置为与 DAW 配合使用后,就可以设置键盘的操作模式(预设或 DAW)了。通过选择操作模式,您可以在 DAW 模式激活时快速切换 Oxygen Pro Mini 控制 DAW 的控件,在预设模式激活时控制软合成器 / 虚拟乐器。 这两种操作模式决定了 MIDI 键盘可编辑控件的功能: DAW 模式:在 DAW 模式下,键盘的控件将映射到 DAW 中的推子、按钮、旋钮,在某些情况下还有打击垫。 预设模式:在预设模式下,键盘的控件将映射到所选虚拟乐器中的推子、按钮、旋钮和打击垫。键盘的可编辑控件可以设置为您自行设计的功能。您可以创建多个单独的预设映射,并将其保存到键盘的内部存储器中,以便日后加载。 要将键盘设置为 DAW 模式,请按 DAW / 预设键。键的 LED 亮起表示已选择 DAW 模式。 要更改键盘要控制的 DAW: 按住 DAW 键,在显示屏上打开 DAW 选择菜单。 转动选择 / 滚动编码器,在显示屏上循环浏览可用的 DAW。转动编码器时,当前选中的 DAW 会在显示屏上更新。“用户” 选项允许您将自定义 DAW 控件映射到键盘,详情见 “基本概念” 部分。 当显示屏上显示您想要的 DAW 时,按下选择 / 滚动编码器进行确认。 注意:要退出 DAW 模式而不更改当前选中的 DAW,请按返回键。 大多数 DAW 会自动识别 Oxygen Pro Mini 键盘,并在 DAW 模式下自动将其控件配置为控制表面,在预设模式下配置为虚拟乐器控制器。 如果您的 DAW 未自动配置 Oxygen Pro Mini 键盘,请遵循《Oxygen Pro Mini DAW 设置指南》中的设置步骤。 要将键盘设置为预设模式,请按 DAW / 预设键。LED 熄灭表示已选择预设模式。 要更改当前选中的预设: 按住预设键,在显示屏上打开预设选择菜单。 转动选择 / 滚动编码器,在显示屏上循环浏览可用的预设。转动编码器时,当前选中的预设会在显示屏上更新。 当显示屏上显示您想要的预设时,按下选择 / 滚动编码器进行确认。 Oxygen Pro Mini 随附的所有虚拟乐器都有对应的预设。对于非随附的虚拟乐器,建议在您喜爱的 DAW 中使用 MPC Beats 作为插件包装器,并搭配 Oxygen Pro Mini 的 MPC PI 预设。MPC Beats 可作为插件包装器在所有主流 DAW 中打开,融合各种 DAW 的优势。这使您可以自由使用 MPC Beats 作为软合成器 / 虚拟乐器插件包装器,让 Oxygen Pro Mini 的所有控件自动映射到您喜爱的软合成器 / 虚拟乐器插件。 要下载随附的 MPC Beats 软件,请按照随附的软件下载卡上的说明操作。 Shift 键 按住此键可启用键盘的 Shift 修饰符功能。 返回键 在键盘的任何可用编辑模式下,此键将发送返回上一级菜单的消息。在未进入任何编辑模式时,在 DAW 模式下,此键将发送单独的 MIDI、Mackie 或 Mackie/HUI 消息。在预设模式下,当选中预设 1 - 14 时,此键将发送单独的用户可编辑 MIDI 消息。 按住 Shift 并按此键,在保存用户预设名称或用户 DAW 名称时,将删除当前选中的字母。 编码器和编码器键 在键盘的任何可用编辑模式下,此编码器向左 / 向右转动时用于滚动浏览选项,按下时用于确认进入。在 DAW 模式下,此编码器将发送单独的上 / 下或左 / 右消息(取决于 DAW)和确认消息。在预设模式下,此编码器将发送与 DAW 编码器分配相同的消息,或发送程序或 CC 消息。 当音符重复激活时,编码器用于选择音符重复和 ARP 时间分割设置。 模式键 模式键的 LED 亮起表示推子键的次要功能已激活。次要功能取决于键盘所处的模式(DAW 或预设)以及全局功能中 “按钮” 的选择(录制、独奏、静音或选择)。在预设和 DAW 模式下,推子键的丝印选项始终可选择。在 DAW 模式下,推子键的丝印选项可选择,还有轨道录制(录音准备)、选择、静音和独奏选项。在预设模式下,推子键的丝印选项可选择,还有用户可编辑的 MIDI 消息。 DAW 模式 关闭 / 无 LED:推子键将激活以下选项: ARP 开 / 关、ARP 编辑进入 / 退出 ARP 锁定开 / 关 智能和弦开 / 关、和弦编辑进入 / 退出 智能音阶开 / 关、音阶编辑进入 / 退出 录制 / 模式 LED 亮起:推子键将激活 DAW 中相关键当前通道的录音准备 MIDI、Mackie 或 Mackie/HUI 消息。 选择 / 模式 LED 亮起:推子键将激活 DAW 中相关键当前通道的轨道选择 MIDI、Mackie 或 Mackie/HUI 消息。 静音 / 模式 LED 亮起:推子键将激活 DAW 中相关键当前通道的静音 MIDI、Mackie 或 Mackie/HUI 消息。 独奏 / 模式 LED 亮起:推子键将激活 DAW 中相关键当前通道的独奏 MIDI、Mackie 或 Mackie/HUI 消息。 预设模式 关闭 / 无 LED:推子键将激活以下选项: ARP 开 / 关、ARP 编辑进入 / 退出 ARP 锁定开 / 关 和弦开 / 关、和弦编辑进入 / 退出 音阶开 / 关、音阶编辑进入 / 退出 MIDI / 模式 LED 亮起:在工厂预设中,推子键将发送预设的 MIDI 消息;在用户预设中,推子键将发送任何用户可分配的 MIDI 消息。 ARP 和 ARP 锁定控制 在 Oxygen Pro Mini 上,按此键将激活键盘的内部琶音器。琶音器的速率基于当前的速度和时间分割设置 —— 速度设置可使用速度键编辑。按住音符重复键并转动编码器,或按住 Shift 键并按 5 - 8 号打击垫,可访问时间分割设置。 要激活 Oxygen Pro Mini 上的 ARP 锁定功能,请按 ARP 锁定键。如果 ARP 键激活,ARP 键将亮起,表示 ARP 已激活。如果 ARP 锁定激活,ARP 锁定键将亮起。 注意:您还可以将琶音器与当前速度的 BPM 设置或外部 MIDI 时钟源同步。在预设编辑模式下,选择 / 按速度键可编辑时钟源。琶音器功能在两种键盘模式(DAW、预设)下均可用。 智能和弦控制 在 Oxygen Pro Mini 上,按此键将激活键盘的内部智能和弦功能。根据全局设置菜单中的选择,智能和弦功能可以作用于在键盘或打击垫上演奏的音符。当智能和弦模式激活时,按一个键将演奏当前智能和弦编辑选项中选中的和弦。此功能在两种键盘模式(DAW、预设)下均可用。 智能音阶控制 在 Oxygen Pro Mini 上,按此键将激活键盘的内部智能音阶功能。当前音阶基于当前的智能音阶设置(在智能音阶编辑菜单中)。智能音阶功能仅作用于在键盘上演奏的音符。当智能音阶模式激活时,按键将只演奏当前调号和音阶选择中的音符。此功能在两种键盘模式(DAW、预设)下均可用。 DAW 旋钮控制 使用 Shift 键和 1 - 3 号打击垫可以更改 DAW 模式下旋钮的功能。 DAW 模式 声像:将旋钮功能更改为控制 DAW 中的通道声像旋钮。 设备:将旋钮功能更改为控制 DAW 中当前选中通道的插件控件。 注意:并非所有 DAW 都支持设备控制。 发送:将旋钮功能更改为控制 DAW 中当前选中通道的发送控件。 注意:并非所有 DAW 都支持发送控制。 ARP 旋钮控制 使用 Shift 键和 1 - 4 号旋钮可以将旋钮功能更改为控制琶音器的功能。 ARP 旋钮控制 类型:更改 ARP 中音符的回放顺序。 八度:更改 ARP 的八度范围。 门限:更改 ARP 音符的长度。 摇摆:更改 ARP 速度的摇摆程度。 注意:按住 Shift 和 Bank > 键可以锁定和解锁 ARP 旋钮控件,使其始终激活。 预设编辑模式 按住 Shift 键并按 DAW / 预设键,将进入预设或用户 DAW 编辑模式。按下编码器选择 “预设”,即可编辑预设控件。 默认要编辑的参数是当前预设的音高轮分配。但是,一旦移动或按下其他控件(例如 1 号旋钮),将激活该选中的控件进行编辑。 存储预设 按住 Shift 和 DAW / 预设键进入编辑模式。OLED 的第一行会显示 “EDIT”,根据当前的 DAW / 预设模式选择,第二行会高亮显示 “预设” 或 “DAW”。 注意:当 “预设” 或 “DAW” 高亮显示时,您可以转动编码器在编辑 DAW 模式和编辑预设模式之间切换,更改当前选择。 按下编码器进入 DAW 或预设编辑模式。 编辑控件。 按 DAW / 预设键。 显示屏会显示 “SAVE?”,并有以下选项可供选择: 取消:选择取消将恢复所有更改。 替换:选择替换将覆盖当前选中的预设。 另存为:选择 “是” 进行另存为,可选择预设的存储 “位置” 并编辑 / 更改预设的 “名称”。另存为屏幕中的最后一个选项是保存。在保存屏幕上按 “是” 将保存您的新预设。 注意:编辑预设名称时,使用编码器滚动到要编辑的字母,然后按编码器选择当前字母。要删除预设名称中的字母,请按住 Shift 并按返回键。 DAW 编辑模式 按住 Shift 键并按 DAW / 预设键,将进入预设或用户 DAW 编辑模式。按下编码器选择 “DAW”,即可编辑 DAW 控件。 默认要编辑的参数是当前用户 DAW 的推子 1 分配。但是,一旦移动或按下其他控件(例如 1 号旋钮),将激活该选中的控件进行编辑。 存储用户 DAW 按住 Shift 和 DAW / 预设键进入编辑模式。OLED 的第一行会显示 “EDIT”,根据当前的 DAW / 预设模式选择,第二行会高亮显示 “预设” 或 “DAW”。 注意:当 “预设” 或 “DAW” 高亮显示时,您可以转动编码器在编辑 DAW 模式和编辑预设模式之间切换,更改当前选择。 按下编码器进入 DAW 或预设编辑模式。 编辑控件。 按 DAW / 预设键。 显示屏会显示 “SAVE?”,并有以下选项可供选择: 取消:选择取消将恢复所有更改。 替换:选择替换将覆盖当前选中的预设。 另存为:选择 “是” 进行另存为,可编辑 / 更改 DAW 的 “名称”。另存为屏幕中的最后一个选项是保存。在保存屏幕上按 “是” 将保存您的新用户 DAW。 注意:编辑 DAW 名称时,按住 Shift 键并使用编码器滚动到要编辑的字母,松开 Shift 键选择当前字母。要删除 DAW 名称中的字母,请按住 Shift 并按返回键。 高级设置 ARP 和锁定键 按 ARP 键将激活键盘的内部琶音器。琶音器的速率基于当前的速度和时间分割设置 —— 速度设置可使用速度键编辑。按住 Shift 键并按 5 - 8 号打击垫(1/4、1/8、1/16、1/32),或按住音符重复键并转动编码器,可访问时间分割设置。 要激活 ARP 锁定功能,请按 ARP 锁定键。如果 ARP 键激活,ARP 键将亮起,表示 ARP 已激活。如果 ARP 锁定激活,ARP 锁定键将亮起。 注意:您还可以将琶音器与当前速度的 BPM 设置或外部 MIDI 时钟源同步。在预设编辑模式下,选择 / 按速度键可编辑时钟源。琶音器功能在两种键盘模式(DAW、预设)下均可用。 注意:您可以通过双击时间分割打击垫将时间分割设置更改为三连音。例如,如果您希望琶音器演奏 1/16 音符三连音,可以双击 1/16 打击垫。1/16 打击垫会闪烁,表示三连音已激活。 要编辑琶音器,请按住 Shift 并按 ARP 键。 要编辑琶音器的类型,在 “类型” 选项中点击编码器,然后从菜单中选择所需的设置。该模式决定了琶音音符的回放方式: 向上:音符从最低到最高发声。 向下:音符从最高到最低发声。 包含:音符从最低到最高,然后再向下。最低和最高音符在方向改变时会发声两次。 排除:音符从最低到最高,然后再向下。最低和最高音符在方向改变时只发声一次。 顺序:音符按按下的顺序发声。 随机:音符按随机顺序发声。 和弦:音符以和弦形式发声。 要设置琶音器的八度范围,在 “八度” 选项中点击编码器,然后选择所需的值:1、2 或 3 个八度。八度范围决定了一次按键将在 ARP 中演奏多少个八度的音符。八度越多,一次按键演奏的音符就越多。 要设置琶音器的门限,在 “门限” 选项中点击编码器,然后从 5 - 100 中选择所需的值。门限范围决定了 ARP 中音符的演奏时长。门限越短,音符越短。 要设置琶音器的摇摆,在 “摇摆” 选项中点击编码器,然后选择 50% 到 75% 之间的所需设置。摇摆范围决定了与模式化音符的偏差程度。摇摆值越高,时间偏差越大。 选择 “通道”,设置 ARP 分割将发送到的通道。 智能和弦键 按此键将激活键盘的内部智能和弦功能。根据全局设置菜单中的选择,智能和弦功能可以作用于在键盘、打击垫上演奏的音符,或两者都作用。当智能和弦模式激活时,按一个键将演奏当前智能和弦编辑选项中选中的和弦。此功能在两种键盘模式(DAW、预设)下均可用。 要编辑智能和弦设置,请按住 Shift 并按和弦键。 模式: 智能模式允许您选择歌曲的调(例如 C 大调)。当按下物理键盘上的某个键时,将在该调中演奏一个和弦。 自定义模式允许您输入自定义和弦。输入和弦后,按物理键盘上的某个键即可演奏该和弦。要创建自定义和弦,在自定义字段中按下编码器,然后使用编码器选择所需的音符,或按琴键输入您想要的音符。自定义和弦模式中有 6 个可用音符: 音符 1:自定义和弦中的第一个音符。 音符 2:自定义和弦中的第二个音符。 音符 3:自定义和弦中的第三个音符。 音符 4:自定义和弦中的第四个音符。 音符 5:自定义和弦中的第五个音符。 音符 6:自定义和弦中的第六个音符。 调:选择智能和弦所在的调。 类型:选择和弦将使用的音阶,大调或小调。 声部编排:这让您可以选择智能和弦模式中激活的指法。 您也可以在按住 Shift 键的同时,使用键盘的琴键快速编辑参数。 通道:选择全局通道(全局)或特定通道(通道 1 - 16)。 智能音阶键 按此键将激活键盘的内部智能音阶功能。当前音阶基于当前的智能音阶设置(在智能音阶编辑菜单中)。智能音阶功能仅作用于在键盘上演奏的音符。当智能音阶模式激活时,按键将只演奏当前调号和音阶选择中的音符。此功能在两种键盘模式(DAW、预设)下均可用。 要编辑智能音阶设置,请按住 Shift 并按音阶键。 调:选择智能音阶所在的调。 音阶:选择智能音阶将使用的音阶。在 “音阶” 选项上按下编码器,然后选择您要应用的音阶:半音阶、大调、多利亚调式、弗里几亚调式、利底亚调式、混合利底亚调式、和声小调、洛克利亚调式、小调、旋律小调、大调五声音阶、小调五声音阶、布鲁斯音阶、变化属音、半全减音阶、全音音阶。 通道:选择全局通道(全局)或特定通道(通道 1 - 16)。 全局设置菜单 使用显示屏上的全局设置菜单可以自定义键盘的一些默认控件。这些设置适用于 DAW 模式和预设模式下的键盘,在全局设置菜单中所做的任何更改在键盘关闭后都会保存。 要进入全局设置菜单,请按住 Shift 并按模式键。使用选择 / 滚动编码器调整设置。 要退出全局设置菜单,请按返回键。 可选择的全局设置如下: 按钮:此按钮设置决定了在 DAW 模式下通道推子键将发送的消息。 录制:选择此功能后,当模式键亮起时,按钮将发送通道录音准备消息。 独奏:选择此功能后,当模式键亮起时,按钮将发送通道独奏消息。 静音:选择此功能后,当模式键亮起时,按钮将发送通道静音消息。 轨道选择:选择此功能后,当模式键亮起时,按钮将发送轨道选择消息。 全局 MIDI 通道(G. CHAN.):从 1 - 16 中选择默认的全局 MIDI 通道,使键盘在该通道上发送 MIDI 音符和消息。 程序更改(PROG):从 0 - 127 中选择程序更改编号,使键盘发送传出 MIDI 消息,以选择所连接的 MIDI 硬件上的 MIDI 程序或通过 USB 连接的软件上的 MIDI 程序。 银行 MSB(B. MSB):发送 0 - 127 的银行选择消息,以访问对 MSB 消息有响应的 MIDI 硬件或软件上的音色。 银行 LSB(B. LSB):发送 0 - 127 的银行选择消息,以访问对 LSB 消息有响应的 MIDI 硬件或软件上的音色。 键盘八度(KEY OCT.):从 -4 到 +5 中选择键盘的八度范围。 键盘移调(K. TRANS):从 -12 到 +12 中选择键盘的移调范围。 键盘灵敏度(K. SENS.):从低、中、高、线性、固定 64、固定 100、固定 127 中选择琴键的灵敏度设置。 打击垫灵敏度(PD SENS.):从低、中、高、线性、固定 64、固定 100、固定 127、从 64 到 127、固定 64、100 或 127、固定 32、64、100、127 中选择打击垫的灵敏度设置。 5 针 MIDI 输出消息 “MIDI OUT”:此字段决定后面板上的 5 针 MIDI DIN 连接器是否发送仅来自 Oxygen Pro Mini 的控件、打击垫和琴键的 MIDI 数据(琴键)、仅来自 USB 连接的电脑的 MIDI 数据(USB)、Oxygen Pro Mini 的控件、打击垫、琴键和所连接电脑的 MIDI 数据(琴键 / USB),或不发送任何 MIDI 数据(关闭)。 和弦模式:此字段决定和弦模式激活时,是对琴键、打击垫还是琴键和打击垫激活和弦模式。 MIDI 输出:选择是否将来自琴键和 / 或 USB 端口的 MIDI 数据发送到 MIDI 输出。可选择关闭、琴键、USB 或琴键和 USB。 附录 键盘灵敏度 选择键盘力度曲线时,显示屏上会出现 K.SENS.。 Oxygen Pro Mini 显示屏显示描述 低低灵敏度设置,适用于主要以低力度演奏音符的情况。 中中灵敏度设置(默认),适用于以平均力度演奏的情况。 高高灵敏度设置,适用于主要以高力度演奏音符的情况。 线性线性曲线。音符的力度与施加的力度成正比。 固定 64所有音符的力度固定为 64。 固定 100所有音符的力度固定为 100。 固定 127所有音符的力度固定为 127。 打击垫灵敏度 选择打击垫力度曲线时,显示屏上会出现 PD.SENS.。 Oxygen Pro Mini 显示屏显示描述 低低灵敏度设置,适用于主要以低力度演奏音符的情况。 中中灵敏度设置(默认),适用于以平均力度演奏的情况。 高高灵敏度设置,适用于主要以高力度演奏音符的情况。 线性线性曲线。音符的力度与施加的力度成正比。 固定 64所有音符的力度固定为 64。 固定 100所有音符的力度固定为 100。 固定 127所有音符的力度固定为 127。 从 64 - 127所有音符的力度从 64 到 127,取决于施加的力度。 固定 64、100、127所有音符的力度为 64、100 或 127,取决于施加的力度。 固定 32、64、100、127所有音符的力度为 32、64、100 或 127,取决于施加的力度。 打击垫 LED 颜色列表 名称颜色 OFFLED 关闭 CHAR.淡黄绿色 GREEN绿色 AQUA蓝绿色 CYAN青色 AZURE天蓝色 BLUE蓝色 VIOLET紫色 MAGENTA品红色 ROSE玫瑰红 RED红色 ORANGE橙色 YELLOW黄色 WHITE白色 预设列表 MPC Pl(MPC 插件) Hybrid(Hybrid 3) MiniGrd(MiniGrand) Velvet Xpand(Xpand!2) Vacuum Boom DB33 DAW 列表 1.Ableton(Ableton Live)7.Logic 2.MPC(MPC Beats)8.Reaper 3.Pro Tools9.Reason 4.Bitwig10.FL St.(FL Studio) 5.Studio 1(Studio One)11.用户 DAW 6.Cubase MIDI 端口 Oxygen Pro Mini 输出端口 消息Windows 系统macOS 系统 预设模式控件、琴键、打击垫、时钟消息Oxygen Pro ##USB MIDI DAW 模式控件、打击垫MIDIOUT3(Oxygen Pro ##)MACKIE/HUI 预设编辑器MIDIOUT4(Oxygen Pro ##)EDITOR Oxygen Pro Mini 输入端口 消息Windows 系统macOS 系统 时钟消息输入Oxygen Pro ##USB MIDI 5 针 MIDI DIN 输入MIDIIN2(Oxygen Pro ##)MIDI DIN DAW LED 控制和 Mackie/HUI 心跳消息MIDIIN3(Oxygen Pro ##)MACKIE/HUI 预设编辑器MIDIIN4(Oxygen Pro ##)EDITOR 恢复出厂设置 要将 Oxygen Pro Mini 的控件、预设和 DAW 恢复为出厂默认设置,请关闭 Oxygen Pro Mini,然后按住八度 + 和 - 键并打开 Oxygen Pro Mini。 技术规格 电源通过 USB 端口供电 MIDI 连接器TRS 3.5 mm 转 5 针 DIN 母头 - A 型线缆 尺寸(宽 x 深 x 高)15.8 英寸 x 7.52 英寸 x 2.56 英寸(401 毫米 x 190 毫米 x 60 毫米) 重量2.65 磅 / 1.2 千克

2025/8/3
articleCard.readMore

池塘、鱼以及鱼食

本文为四月份构思的《伶化》一文的补充内容,因其内容较为繁多,完成时间一直拖延,特将此部分较为有用内容先抽离出发布之。 本文为临时性文章,将在《伶化》发布后删除,请勿保存此链接! 两年前阅读数字劳动后,关于数媒平台的认识逐渐明朗起来,那种入骨的批判直接导致我这两年对自有独立平台的折腾与实践。随着实践的深入,近来发觉在fediverse/自有平台、RSS介入这个框架之后,那种明朗变得模糊不定,因为有必要再进行一番审视。 假设 为方便讨论,本文遵循取象比类的东方传统,承接《电子阅读新语》一文中鱼与鱼塘的比喻进行探讨,首先有如下抽取表象的定义: 平台为池塘,用户为鱼,UGC内容为鱼食。 池塘不生产任何东西,只提供环境。 此池塘提供的环境与鱼食是鱼赖以生存的唯二之物。 鱼是此池塘鱼食的唯一生产者。 生产行为:鱼不会无所事事,会在环境中通过自发劳动来生产鱼食。(鱼食的生产过程是抽象自用户在平台里的促进劳动价值进行累计的一切可能,包括但不限于UGC(主要)、正向负向互动、浏览(次要)等 搬运加工行为:指鱼食实体被转换且成可批量复制的通用鱼食的行为。 吸引行为:鱼食会吸引更多的鱼。鱼食过多会产生剩余价值。 有点抽象,那画个图吧: 我的困惑有三: 鱼与鱼食的关系究竟怎样? 如果把池塘私有化,那么生产的剩余价值到哪里去了? 池塘之间的行为是怎样的?在考虑搬运行为后,不同池塘间行为会产生怎样的变化? 论证 鱼与鱼食的关系 我们不能发现,鱼直接而感性的欲望是鱼食,为此它会不惜一切代价去获得它。把吃的欲望看作目的,那么我们可以借用康德目的论的思路进行分析。在康德的目的论的范畴里,“一个对象的概念就它同时包含这个对象的现象性的根据而言,叫做目的”。这既是说, 目的是事物自身所隐含的概念,此概念是造物的规定,鱼追逐鱼食乃是鱼本身的目的,因为没有鱼世态就无法生存,这也可看做是千万年演化的经验凝固成的法则; 事物作为自身的目的,从其结果上看是它自身的原因。即它所赖以构成或生成的原因,不是来自外部的,因与果相分离的。鱼的生存与消耗鱼食的目的是实质而客观的自然目的,且不仅仅局限于外在,因为我们的鱼是有思想的鱼,所以内在也必然囊括其中。所以,它的整个行为——生产鱼食、消耗鱼食都是互为目的与手段的。 鱼与池塘行为的合目的性 这一部分是我较为困惑的,首先从《数字劳动》可以知:在传统的UGC平台中,如推特微博、油管B站中,平台从鱼生产鱼食、吸引鱼的整个过程中榨取剩余价值,这是毋庸置疑的。 然而把这个模型套用到其他地方,如搜索引擎的池塘(母池塘)里,那么问题成了池塘之间的竞争,因而必然导致池塘内鱼的行为的改变,在池塘的角度,鱼就不仅仅要生产鱼食,也要能帮助池塘在母池塘之中有更大的竞争力,这样才能吸引来更多的鱼。 我们假设所有平台(不包括那些池塘本身已经大到可以闭关自产自销的)都要在搜索引擎中获得一席之地,那么所有池塘(子池塘)都可被抽象成一条大鱼。子池塘的鱼的目的之上的、母池塘作为鱼的目的之下的关系显然又加深了一层,这两者是互相影响,只有子池塘的目的合乎母池塘的目的,母池塘才能更好地生产、获得母池塘的鱼食。 对于一个体量小只有三五条鱼的池塘来说,自产自销的鱼食是不够吃的。要么这三五条鱼要在别的池塘里窜来窜去,要么这个池塘本身就要到别的母池塘里窜来窜去,要么就是这个池塘以及三五条鱼都一直忍受着这种饥饿,在痛苦的边缘挣扎,或者心灰意冷得死去,或者一直熬煎直到适应这种饥饿,在这种池塘获得一种超然的、摆脱感性了器官欲望的怡然自得。 通用型鱼食的影响 当一条鱼发现它生产的鱼食被复制到其他地方时, 它自然会愤懑不平,尤其是当此鱼食是一个独立的池塘生产的时候。然而这个通用型鱼食会带来实体鱼食的回馈,虽然鱼食可能并非等价,但总归是比原来多了,这个池塘又多了一个新的鱼食的来源。这个价值可看做是通过搬运信息差所产生的熵减的价值,搬运鱼食的劳动与生产鱼食劳动的价值是不可同日而语的,两者均有其价值。在此我不能明确地评判了。简而言之: 当一个池塘的鱼食少于其中鱼所需要的鱼食时,鱼与池塘是欢迎这种搬运的; 当鱼食多于其所需要的鱼食时,则是抵触这种搬运的; 当鱼池塘有更高的价值与目的所在时,会对这种搬运采取更多复杂的态度与手段——或者更加公而开之,或者深深隐蔽起来,或者采取一种暧昧的态度。

2025/8/3
articleCard.readMore

在这个疆场的那个地域的领域之内

先天概念在多大的范围具有其运用,我们的认识能力根据原则的应用所达到的范围就有多大,从而哲学达到的范围就有多大。 ——康德 假设存有一个僭妄于一切认识能力之上的疆场,在此疆场上所有可知以及不可知之物皆可从无限的方式任意逼近认识的地域,所有的认识都井然有序地存在,所有的存在都有其合乎理性、知性的意义。在此疆场之中,万物皆得其宜,六畜皆得其长,群生皆得其命。假设上述疆场的认识体系的为形而外学。 现以形而外学来审视形而内的认识: 所谓学习,无外乎开合与连结。把这些认识显现,而把那些隐没掉,有选择地进行涌现,就是开合。模仿外界的认识,把一些对象、范畴的关系强行放置到自己身上,就是连结。从形而外学来看,彼隐没掉的涌现、未进行连结的关系就是其永远失掉的不可认识之物,因而其认识定然是片面的且经验化的。当下所谓规范(包括人类理性的,心理的以及约定俗成的社会规范)皆是如此。 考虑到人非机器,不只进行简单的开合与连结,还会进行批判性的思考。从形而外学来看,这思考,也不过是另一种重复。 所谓思考,不过是有感而应的触动。这感,是先验的,因为没有先验的知识作为锚点是不可能进行思考的。这触动,自然就是在先验认识范围之内的(比如灵感爆发导致的新认识)。思考,归根到底也是旧认识的重新组合。感而应,应而再感,再感而又应,无穷无尽。在这过程中,看不出来有创造出纯粹的新东西。 理性不可能超出经验的红线,去提供一个超验的知识。 学而不思也好,思而不学也好,总归都是在规范之内进行迭代,形成一条不断延展的受到各种随机因素而变形的多股线,随机因素导致的价值观念、历史变化可以轻而易举地就将认识扰动到另一个方向。 线的尽头或许能抵达彼岸的疆场,也或许就这样永远飘荡在不断相对接近彼岸疆场的真空中,孤独,且空无一物。这线断了,折了,绕回去了缠成一团也完全可能。 唔,一条无限空间里的大蛇,吃尽一切可以看见的食物,拖着逐渐变长的身躯,随便爬向哪个地方。

2025/7/31
articleCard.readMore

前端笔记101

像骑自行车一样自然地设计网页。 ——Sion ✍文章痕迹 写作时间线 2025-01-? 某日打开github星标榜,发现storybook项目。 2025-03-30 阅读《版式设计原理》 2025-03-31 再次产生创建STUDIO网站的念头,初步想法是使用React进行构建 2025-04-01~4-02 阅读《大前端三剑客——Vue+React+Flutter》,旋即弃置 2025-06-09 受两年前喜欢的hexo主题《Paper》作者影响,尝试学习Sigma 观看视频教程《零基础学Figma》[^2] 2025-06-10 申请Sigma教育账号 阅读《《Figma UI设计技法与思维全解析》 》 2025-06-14 意识到Figam的局限性——只是一个原型设计软件,开始接触react。 2025-06-15 理性看待Figma。Figma可以作为指导性文件来勾勒整体的轮廓而后以此为基础进行开发,同时可以进行简单的封面制作。 2025-07-25 因为MES系统维护需要,借阅《JavaScript 技术手册》,开始系统学习js。 平日走路、工作、骑车,脑海里或多或少会浮现出一些念头,可能是一个照片的绝妙机位,一个有趣的游戏原型,一段悦耳的节奏,可能是一幅以天空为背景的插画,也可能是对网站主页的一个构建。有人说这叫灵感,我却以为这是虚感,不过是一阵风吹来,恰到好处地拂动了脑海里几个不同的念头而已,在这感觉没有落地之前,是毫无意义的。那如何让这些念头变得有意义呢?我觉得要去培养,去一点一滴地呵护它,如同养一盆花一般,让慢慢地成长,才会赋予其意义。 本文动笔的契机就是许多个念头的累积让这颗种子发了芽,至于到底能不能长大开花,甚至结果,我也不管,当下哩,我就静静地看着它,想起来了就浇点水~ 写在开始的预期 本次试验要做出来几个原型,大概有这些: 星际牛仔片头设计 国画风格:留白——文本让位图像 45°布局: 90°布局:即直排版 社会主义革命和建设时期宣传海报风格的当代演绎 细朱文为主的拟物线条风格 图表,数据可视化相关。 个人主页、工作室主页、专题展示页(摄影、篆刻、绘画) 设计工具 figma figma给我的初步观感:像做PPT一样设计网页。 本文定位只是一个辅助学习用的很随便的草稿,非教程,非笔记 我们可以通过多种方式去补足这些知识,​“三大构成”就是开始系统认知设计或者UI设计的第一步。​“三大构成”包含《平面构成》(The Plane Constitution)、​《色彩构成》(The ColorConstitution)和《立体构成》(Three-Dimensional Constitutes),通过这三本书,我们可以在更高的理论层面来对设计有个系统的认知。 如果还有时间,伊顿的《设计与形态》​《康定斯基论点线面》​,福兰可·惠特福特的《包豪斯》也是非常适合设计师夯实基础的著作。 与时下流行的Material Design不同(尽管我也觉得这种设计很美观),笔者本次实践主要目标是向前求索:追寻、挖掘、表现古文古画古书上图像与符号的关联关系。具体到就是(竖排版,模仿自然)。 图形绘制能力是几乎所有设计师都必须具备的一项能力,如果说版式设计能力决定了UI设计师60%的能力要素,那么图形绘制能力则让你的技能分从60分精进到80分甚至更高。 UI设计师学习的工具有以下几类,首先是 图形绘制工具,如Sketch(Windows下有Adobe XD)​、Figma、Photoshop,这也是当今设计师用得比较多的主流工具,从难易程度上来说,Sketch(XD)和Figma上手难度最低,操作最简单。 交互工具,在UI设计稿完成前,这类工具可以帮我们绘制低保真的线框图;而设计稿完成后,我们需要用这类工具将其处理成高保真演示原型。最常见的交互工具,可以统称为“连连看工具”​,只需按照页面的顺序,将点击区域及目标区域进行连接即可。目前大部分的设计工具都提供了此类连线功能,如Sketch、XD、Figma等。当然,也有更复杂的工具,如Flinto、Principle及一些在线设计工具(如墨刀)​,都可以完成从设计稿导入到连线导出,最终形成可以在手机上真实点击的效果,这类工具的特色是做出更接近手机真实动作效果的演示,比如论坛图、下拉刷新、页面滚动等。 进阶类的图形绘制工具,以Photoshop或者Adobe illustrator为代表。用以完成界面中的一些图形化设计工作,如插画、字体、Logo设计。 动效(微交互)效果的设计、3D视觉工具等。这类工具有Adobe的After Effect和Cinema 4D,通常学习成本较高,需要花费更多精力才能有所收获。 目前掌握程度简单自评: Adobeillustrator(3年+) Adobephotoshop(2年) 清华大学出版社提供了第二章的样章,微信阅读排版不好,还是读这个舒服。 Figam中的Frame(画框)与html中的<iframe>内嵌框架元素标签有类似的含义. Figma的交互设计比较有趣的一点就是,特定的工具只有在激活的时候才会出现,非激活状态或者不可用状态下是完全隐藏的。 figma可以创建文本样式与组件以便复用文本转化为矢量(Flatten Selection)进行编辑 导出内容:“①使用切片工具划定需要导出的内容;②选中某个图层,在右侧的属性检查器中,找到“Export”选项,并单击加号,设定导出倍数、后缀和图片格式。” 快捷键说明(基本与PPT一致) Ctrl + D :副本 Ctrl + G :编组 Ctrl + +Shift+G :取消编组 拖拽调整数值:与Blender类似 选择矢量图形,然后直接粘贴可以将图形贴到矢量图形中。 创建蒙版步骤 新建一个矢量图层,右键新建蒙版(mask) 此时左侧会生成一个蒙版组(Mask Group) 把图片放进蒙版组里面 (调整图片或者矢量图形可以得到不同的画面) 问题 Figma对竖排没有支持,插件vertja的实现方式是文本框溢出,不能简单转换成css。 🕳前端框架 Npm package.json的版本号写法: 1. ^(插入符号,Caret) 含义:允许更新到当前主版本号下的最新版本(不破坏向后兼容性)。 规则:^x.y.z 允许更新 y 和 z,但保持 x 不变。 示例: ^1.2.3 → 允许 1.x.x(如 1.2.4、1.3.0),但禁止 2.0.0。 ^0.y.z:因为主版本是 0(初始开发阶段),仅允许更新 z(如 ^0.1.2 → 0.1.x)。 2. ~(波浪符号,Tilde) 含义:允许更新到当前次版本号下的最新补丁版本(更保守)。 规则:~x.y.z 仅允许更新 z,保持 x 和 y 不变。 示例: ~1.2.3 → 允许 1.2.x(如 1.2.4),但禁止 1.3.0 或 2.0.0。 ~1.0.0 → 仅允许 1.0.x。 3. 无符号(精确版本) 直接写 x.y.z 表示严格锁定该版本,不自动更新。 4. 其他符号 >、<、>=、<=:指定版本范围。 * 或 x:匹配任意版本(不推荐)。 选取建议 ^:默认行为(npm install --save 使用),平衡新功能和稳定性。 ~:更严格,适合需要最小化更新的场景。 锁定文件:实际安装版本由 package-lock.json 或 yarn.lock 精确控制,确保团队一致性。 NG-ZORRO NG-ZORRO(Angular 组件库) Ionic Ionic 移动端框架 JavaScript 编程随感:https://si-on.top/channels/aai4qoz5o11lvkx1 JavaScript 常见的功能包括: 以指定尺寸、位置和样式(比如是否有边框、菜单、工具栏等)打开新窗口; 提供用户友好的导航帮助,比如下拉菜单; 检验 Web 表单输入的数据,在向 Web 服务器提交表单之前确保数据格式正确; 在特定事件(比如鼠标光标经过页面元素之上)发生时,改变页面元素的外观与行为;(每次浏览器要加载和显示页面时,都需要解释(更专业的术语是“解析”)构成页面的 HTML 源代码。在解析过程中,浏览器建立一个内部模型来表示文档里的内容,这个模型就 是 DOM(Document Object Model)。在浏览器渲染页面的可见内容时,就会引用这个模型。可以使用 JavaScript 来访问 和编辑这个 DOM 的各个部分,从而改变页面的显示内容和用户交互的方式。) 检测和发现特定浏览器支持的高级功能,比如第三方插件,或是对新技术的原生支持。 “JavaScript 是一种解释型语言,不是 C++或 Java 那样的编译语言。JavaScript 指令以纯文本形式传递给浏览器,然后依次解释执行。它们不必先“编译”成只有计算机处理器能够理解的机器码,这让JavaScript 程序很便于阅读,能够迅速 地进行编辑,然后在浏览器里重新加载页面就可以进行测试。” html使用<script>...</script>标签,可以在html代码中直接包含JavaScript语句,也可以在标签里定义一些特有的熟悉。对于 HTML4里,需要使用type属性:<script type="text/javascript">,在本栈的主题配置文件里,就存在这样的写法, 1 2 3 4 5 6 - <script src="https://npm.elemecdn.com/echarts@4.9.0/dist/echarts.min.js"></script> - <script type="text/javascript" src="https://fastly.jsdelivr.net/npm/echarts@5/dist/echarts.min.js"></script> - <script charset="UTF-8" id="LA_COLLECT" src="//sdk.51.la/js-sdk-pro.min.js"></scri - <script> new LingQue.Monitor().init({id:"3FTSzvJ4NLnOUYqy",sendSuspicious:true});</script> - <script src='/js/mastodon-timeline.js'></script> - <script src='/js/embed.js'></script> DOM “浏览器每次加载和显示页面时,都在内存里创建页面及其全部元素的一个内部表示体系, 也就是 DOM。在 DOM 里,页面的元素具有一个逻辑化、层级化的结构,就像相互关联的父对象和子对象组成了一个树形的结构。这些对象及其相互关系构成了 Web 页面及显示页面的 浏览器的抽象模型。每个对象都有“属性”列表来描述它,而利用 JavaScript 可以使用一些 方法来操作这些属性。” DOM全称:Document Object Model,即文档对象模型,如上所述,它是浏览器解析渲染HTML源码过程中所用到的一个模型规则。DOM可以类比成康德哲学里的图式——连接感性直观与理性的中介。(W3C的目的是让DOM不仅应用于Web页面与Js,也能用于任何编程语言和XML。) 在浏览器的疆域里,DOM模型的框架是由许多对象进行表示的,最顶级的DOM对象是window,他是一切对象的父对象,示例如下: 以hexo官网为例,在控制台输入window.location后会显示如下信息: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 1. Location {ancestorOrigins: DOMStringList, href: 'https://hexo.io/zh-cn/', origin: 'https://hexo.io', protocol: 'https:', host: 'hexo.io'} 2. ancestorOrigins: DOMStringList {length: 0} 3. assign: ƒ assign() 4. hash: "" 5. host: "hexo.io" 6. hostname: "hexo.io" 7. href: "https://hexo.io/zh-cn/" 8. origin: "https://hexo.io" 9. pathname: "/zh-cn/" 10. port: "" 11. protocol: "https:" 12. reload: ƒ reload() 13. replace: ƒ replace() 14. search: "" 15. toString: ƒ toString() 16. valueOf: ƒ valueOf() 17. Symbol(Symbol.toPrimitive): undefined 18. [[Prototype]]: Location 有了树形结构,就可以通过线性的方式找到节点下任何一个对象, window.document.body:HTML页面的<body>部分在DOM里就是document对象的一个子对象。类似的: window.document.domain:HTML页面的domin window.document.title:HTML页面的<title>...</title> window.object.method:不仅仅是对象甚至是属性或方法也可以通过这种方式进行表示。 window 对象永远包含当前浏览器窗口,所以使用 window.document 就可以访问当前文档。作为一种简化表示,使用 document 也能访问当前文档。 如果是打开了多个窗口,或是使用框架集,那么每个窗口或框架都有单独的 window 和 document 对象,为了访问其中的某一个文档,需要使用相应的窗口名称和文档名称。 交互的方法 object.method 命令window.alert(),浏览器弹出一个包含“确定”按钮的窗口: 1 2 <script>window.alert("问世界好在");</script> //alert(document.title),浏览器将显示当前页面的标题,对象可以作为变量来进行操作。 这是句点表示法的案例,调用了windows对象的alert()方法。在实际编写过程中,window作为DOM的最顶层,因而上述语句中的window.可以忽略掉。 2. window.document.write("主页body啦啦啦"),浏览器将页面全部内容覆写成<body>主页body啦啦啦</body> 3. confirm(),弹出一个模态对话框,向用户弹出一个选择的对话框,选择不同值,会返回不同值,也可以直接 1 var answer = confirm("你吃饭没有啊?"); prompt(),弹出一个对话框,用户可以输入信息(第二个参数可以输入默认信息)。 1 2 whatmeal = prompt("吃啥饭?","面条儿") '煎饼' getElementById():通过id调用DOM。如果想从 HTML 页面里选择具有某个特定 ID 的元素,我们只需要把相应元素的 ID 作为 参数来调用 document 对象的 getElementById()方法,它就会返回特定 ID 的页面元素所对应的 DOM 对象。比如调用hexo官网里id为intro-feature-list的部分 1 document.getElementById("intro-feature-list") 脚本示例 在Web页面里嵌入JavaScript有两种方法,第一种方法是直接包含在HTML文件里: 1 2 3 <script> ... Javascript 语句 ... </script> 第二种方法是将js代码保存到单独的文件里,然后使用<script>元素的src(源)属性来指定文件名,从而把这个文件包含到页面里: 如果不在同一文件夹内,要使用相对路径,或者用网络存到一个链接上。 1 <script src='code.js'> </script> 值得注意的是:不能使用同一个<script>元素来包含外部 JavaScript 文件,同时包含 JavaScript 语句,因为如果利用<script>元素的 src 属性包含了外部 JavaScript 文件,就不能在<script>和 </script>之间包含 JavaScript 语句了,而是这个区域必须为空。 按照惯例,JavaScript 代码文件的名称扩展名是.js。但从实际情况来看,代码文 件的名称可以使用任何扩展名,浏览器都会把其中的内容当作 JavaScript 来解释。 JavaScript 语句必须包含在定义这些元素的 HTML 的后面。在代码读取和执行完毕之后,页 面呈现才会继续,直到页面完成。对于一些包含函数的js文件,最好是放在<head>...</head>区域里,这样它会被首先加载,以后就可以在任何位置调用它了 鼠标事件 为了增加交互功能,我们需要知道用户在页面唯一的肢体延申——鼠标,在什么时间,存在于何处、在做什么等。这些基本因素我们称之为event(事件)。 onClick:在点击之后执行此事件 onMouseOver:当鼠标进入页面的某个元素所占据的区域时,会触发此事件 onMouseOut:当鼠标离开页面的某个元素所占据的区域时,会触发此事件 利用 onMouseOver 和 onMouseOut 事件处理器可以在鼠标位于图像上方时改变图像的显 示方式。为此,当鼠标进入图像区域时,可以利用onMouseOver 改变元素的 src 属性; 而当鼠标离开时,利用 onMouseOut 再把这个属性修改回来。 数据类型与运算 数字:0xA十六进制;0b1010001二进制;0o4545八进制;8.848e3、8848000e-3科学计数法(代表8848000×10−3\color{blue}8848000\times 10^{-3}8848000×10−3 )。js中可以表示的数字的最小值 Number.MIN_VALUE是−253-2^{53}−253,最大值 Number.MAX_VALUE是2532^{53}253。 Number()可以把数字的字符串转化成数字(在给 Number()传递某个值作为一个参数时,该函数将尽全力返回一个对等的数值。如果 它不能返回数值,将返回 NaN。),而toString()则可以将数字转化成字符串。 node 环境 1 2 3 4 > A='0xB' '0xB' > Number(A) 11 js用 Number 对象来表示各种数值类型,包括整数和浮点数。通常,我们不需要 操心自己创建 Number 对象,因为 JavaScript 会将数值转换为 Number 类的一个实例。一些用法如下: number.isNaN():检测是否非数值 number.isInteger():检测是否是整数 Number.isFinite():检测是否是无穷大。 Number.parseFloat()和 Number.parseInt():将字符串解析成浮点数或者整数。 字符串,转义相关(超过\uhhh用\u{},ES6新增特性) 布尔,boolean 复合类型,{},中间以逗号隔开,可以同时放置各种字段。使用点运算符来随时操作对象的特性(js的重要特点,这个写法太优雅了。) 复合类型 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 > let dog001 = {name:'小黑', color: 'black'} undefined > dog001.name '小黑' > dog001.color 'black' > dog001.color = ‘white’ 'white' > delete dog001.name true > dog001.name undefined > dog001 { color: 'black' } 数组[111,222,333,444] 变量声明(js变量对大小写敏感,因而可以用“骆驼大小写”的方式来编写一个更具可读性的变量,如GodIsDead💀) let:变量。在区块{}作用域内有效,处于暂时性死区区块外无定义则会报错。 const:常量,一次声明而后不能重新初始化、 重新声明或重新赋值。 var:声明变量,在创建时便被初始化,被赋值为undefined,有提升行为(全局变量):在未指定值之前,会被定义为undefined undefined代表“值没有定义”的值,其在JavaScript中不是保留字,在函数中可以被拿来作为变量名称,但尽量不要用它。通过void可以在任何值或表达式前产生undefined。类似的还有null表示没有对象,令对象为null相当于给它置空。NaN:当结果无法运算时,便会产生此值。 加减乘除运算:js中的数字是IEEE 754标准64位浮点数,使用分数以及指数来表示小数,然而有些小数无法用分数表示,这就导致比如0.3之类的数字会有浮点数误差。如果要避免需要用第三方库bignumber.js来解决 *:乘法 **:指数 %:取模 /:除法 ++:自加操作 --:自减操作 -= AnNobodyCareLittleNumber:自减去一个数值 严格模式,ES5后新增,若误用了不好或早期规则含混不清的特性,就会报错。使用use strict来进入严格模式。 8. 比较运算:使用 \===、!== 来进行比较 9. 逻辑运算:&&、||、!这个返回值要研究研究。 1. A && B:A为真,则不论B真假都返回B;A为假,则直接返回A 2. A || B:A为真,则不论B真假都返回A;A为假,则直接返回B。(可以看作默认返回值,输入A假,返回B作为默认值) 3. !A:A为真,返回false,A为假(0),返回true 返回值为TRUE 1 0 || `` && NaN || !undefined || null 条件运算:表达式 ? 成立返回值 : 失败返回值。可用于局部的判断语句,减少程序体量。 流程语法 break可以离开switch、for、while、do…while的区块,break与continue可以搭配标签使用,离开整个区块。 if分支判断:条件默认 单层判断 1 2 3 4 5 6 if(条件){ 语句A; } else{ 语句B; } 多层判断 1 2 3 4 5 6 if(条件){ 语句A; } else if(条件2){ 语句C; } Switch 复合分支,使用break进行结束跳转 switch 1 2 3 4 5 6 7 8 9 10 11 switch(number){ case 10: score= 'S'; break; case 9: score= 'A'; break; case 8: score= 'B'; break; } for 循环,先判断后执行循环语句 for 1 2 3 for(let number=1; number<10; number++){ console.log(number); } 1. `for of`,循环访问数组中(of)的值`for(let nuumber of [10,20,30])`2. `for in`,列举对象的特性名称,搭配`[]`运算符使用3. `for`循环分三部分,变量声明+循环退出条件+表达式,变量声明 js中{}表示对象,[]/·访问对象的属性。 While循环,先循环语句后执行判断 while 1 2 3 4 do{ 语句; } while(条件表达式); 函数 函数 1 2 3 function hello() { alert("问世界好在") } 在页面加载时,包含在函数定义区域内的代码不会执行,而是静静地等待,直到“调用” 的时候才会执行。 声明函数function。如果没有return值,则返回undefined。函数名称必须以字母或下画线开头,可以包含字母、数字和下画线,不能包含空格、标 点符号和其他特殊字符。 1 2 3 4 5 6 7 let n1 = 100 let n2 = 200 console.log(max(n1,n2)); function max(n1,n2){ return n1 > n2 ? n1:n2; } 语句中如果不写分号结束,则js会以分行判断结束。 辗转相除法 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 function gcd(m,n){ if(n ===0){ return m; } return gcd(n,m%n); } let m = 999; let n = 666; let r = gcd(n,m); if(r === 1){ console.log('互质'); } else { console.log('最大公因子', r); } 如果函数只是在重复操作,那么其应用范围将大大受限,可以通过参数传递的方式来拓展其功能。用latex中的函数能更直观地理解,下面的2就是入参的个数,#1与#2为参数在函数内的值。 1 2 3 4 5 \newcommand{\hello}[2]{ hello,\textbf{#1},\textit{#2} } \hello{世界}{你好} 在javascript中,需要定义每一个函数的具体名称,并确保包含了与函数定义相匹配的参数数量,比如下面的求和函数,需要四个入参: ➕ 1 2 3 4 function plus(a,b,c,d) { alert(a+b+c); } plus(1,1,2,3) 对于简单的函数,可以采用匿名函数的写法: 1 var sayHello = function() { alert("Hello"); }; 更简洁直观的写法是利用所谓的箭头函数=>下面以上述加法函数为例: ➕➕ 1 2 3 4 5 6 7 8 9 //写在一行 plus = (a,b,c,d) => alert(a+b+c+d); //写在多行 plus = (a,b,c,d) => { let dongdong = a+b; let qiang = c+d; alert(dongdong+qiang); } 浏览器相关 js可以通过window.history来访问浏览器历史记录,history对象只有一个长度的属性,表示用户访问过的页面的数量,history对象有许多种方法: forward():相当于前进 backward():相当于后退 go(number):跳转到历史记录列表里相应匹配的URL里(或许可以实现无法后退的效果) 通过location则可以“帮助”用户导航至新页面,location.href = 'www.newpage.com' css 按钮背景动画: 1 2 3 4 5 6 7 8 9 10 .glowing-button::before, .glowing-button::after, .glowing-button-alt::before, .glowing-button-alt::after { content: ''; position: absolute; top: 0; left: -100%; width: 200%; height: 100%; background: radial-gradient(circle, rgba(255, 255, 255, 0.3), rgba(0, 0, 0, 0)); transform: rotate(45deg); animation: glow 4s linear infinite;

2025/7/28
articleCard.readMore

九云坊专用程序学习笔记

fb1e0fca59863677b5948aaabe2d848cff9ff315d0ac35e2f12e004a12acd226f8c5dc668e76899cfa0ce20cfd66a10e9c397c8bd867d5dbb23f61b42c9a7a2177ca909c277715a6fb11f59d9ceb73d713baa0da34916136d34e7fe80de851769832621eff9fa4c752f6936755a6dbb6d83a11c1fde29fc7b05d0ebcd8bd4f04de4d561896d14fa26af81790b702c584b4e0e7d603343f305f43ef652fca39869eb40e314bd873ef1aa727be0a2bf17fe018bdc16533adc897c7311538a2b77b966bfb8e8c46c1eed5c4bbe3a9e08c3a017390acb36714aaed6d95e1503f4083d1511fdee2f7e6ccf5431bba2a70a95529af2a05bacc4918c6eb73ad4f1556abe8c9883e5e4e7fd8a2a6caf5e41278b581c807c66195f76746cbd5cf5e37e469ff27ff30442496379857d4845aaf606d5e6343aa91b32389addc0c32052918a0e24ca707d2aa43b1337430e8ceafd38efcc565d00b6c84332ee75c77762712744eec8fb80943b2dabcbf0f9e84d808af6c91aabe624ade92e81e15311c13000c5ddec9bb884e9e5a960ca6203a21dd5a988500ca7e459ad8afb822d9754c99ea4e9052ff304fda1310d0ec0972743a8299ba113ffa9579dff73c5003411be4fdfe7f8698a19fdfd7039165a9652337ea20299ee0f5b9d4b3321bb593c32f581321dadbc8116433345d45a620e184878b01ff2a68e8d023e150632cd7476ba4b32a2ae4892ce77bdd6f3b110e205abe886ad956134f64f6f59b20442e1e3313a563d2dda721f7796f8fe438af3fe7073f08c0ee6e77515f7a334ecf9963496fe105c3d7fb7302c7f323c819fbdfee31ec2dbe6b6ac2292f8db6c8c1af82137942bc2a2e6f1563999b8242514873c52c86b505ebf7c55eddf74a5943391e099c4c82fdd486cc0c967bff29f929c666ece260695c2e75cbe0f717ffc5f8550032840bfab0a0f89684d70a8b7be90e7e5631488077634620a31a3511704a4dad4e507130ca5f85e81fae9eb6dc575a9c9fa03d6603ad2c44f58def6ba7322b58e986e29fb570ee8fb0b9987c82058748800ae813c89e5e49749ee901887f70cb6955aeaefe9f2299596368fb67d534021d5c45f96f12826fb8057c31e44323a2285021256253e91bef7b4a9137a1b7fe0dc13e0d405cd3f8d354321d1a1df3e9574537c9b9cbbaaa84a667a590a52e352af138a77c6973789f6ba59dae11012a9399540f6f3b315c26d8c385d92e6e7a4838ec783bffe7ec25ff88e36078f2cf71020e4488f59588e4fb71ddc0d8b4cf3b03e223f9d317982773f6e391b4e283f7578b8ab37db98ce5034d9e8716307bd4b999dd2b05428360defb61007cc9fde95869360faf69e4cdc12517c36136049913a48f9b57ec953123ee44a6e147b9bd2fe24a5f7535ba48e9713e843183e5655ca6cf75d5ce3f3629bdc7964e1a059f91bc012cef9b2c58f0105d7f125a2a794d84df18e869192587dcc752d43d09bd3a1c76491927b3f3807fc0c82a59433ee0a4e26edf45b41801d758d891bf10c5a9fbf390427c22eb78e28696ac474f0b05dc42064f1f3f8e50c1b078d84540d76e889d99d8a43447d07334c3505602d0653e7bb00898c2b4340a129f1d32828637ef4fc4c7ba30b6c2c70024df6ba17db5aa274dc4053b0610baa04e0a2dd57b849cdfacb29369737e9ea5bf59e7aa7597c9714f0436c5697c2a6cb39fb5ebb61fe447a44fb3a52d106c036252447f54fe3e7fc428d5b1b48fbc4f72ad82ea3a6eea911b998249aaf60090f53efd1072cc91e38eb71719744be248c3746c61e9a6062f4062867114f177fca57d082519674b2866ec9993f1e5183fa3202cfcc82bf7b5bd856777eeea779870884a62e709a220f3b33a55c735042d28874f58773910fdd9de658602e68d9a0951d223821e5b063632fb9777224435f9162e5a434fe0cc229d1f4eeb9093301deb7af246bb0685ffdefd76f0cc8d279a56ae6217eb94e440470c30038e3c5bea75411ba81eeac2a044385a29dd04a551e6143143a18cb92f5c7ceaea4c49e676f2a83651a0162e4a95d7ce0a4ef01d8844e0bc6ed7fc0134065f75e32dac71ff788435de901ddf992da497c3759260e6642b0382a8911065e48a5fdf424d3eb3296ea149aefd1f7d295b5082e81da4a902e410025132d6a2d6c0d37fffb1fbb393b5bcbb18532e4c1af4b1dbe3c058606db0824e8d0a39b37baac0d685ff6717aa64ba84446eb4bd97276463ae3096ea44581d4ed95f62f15694b3964d7c19641dc8024bfb01b8ce247c2ba941f414d612d24357923cb7e86099ad8726eff8514fe1c7334cd3cde35c85e37b5f16dc51c8d3a0618d915229d4641141d5fe1fb1655bd2c5097270a9f3145ecc20ca793f77d2f5639962f9bd8c2205d4b66579b6198197a5318937f26c5c9fa21feece2d7ca31185c31e6011acb2c473201503c9f800b3ac8d23ae2eda6211213e3507d719e10678dcddc0587bea80bdefe341a92cd19f6145599c9251b63b867ed351027abf4f09c9bdcb451c44f47ce3f8d434efdc65afdbd210fac07e3a492eb820e573b343ccba8286043bc10321de5226c5ce585d9700a199d59e3150a2b472b73ca6d8803f9bad9e7afd786089c2e94b2cbe58771203cdbde223d5f980f2b7849a60a2a9efd3319ce22fec6cf7c9f5ab1c7749da3cf6558ef41c420cb988c27f2a85481c55433faff7ee654b5a038d9da10a26ebd9dd8aece29e4322fbd152c573cbf931c76ff80df29320d2a16de4e351759029abbad85ef7c06cfda2de53f4fcb4f7aad66c71b41b5682ffc716e1e99466115c7a0b6381556b25e28358c6c5d3867db34867ab8e2c6bbe83c42b2a342c2a8f66b448c5cc209733024e65d431f61b6dcf8850de4d5dce0ee71b28847d279b7a49eef0977f4aa952b69ed935ac8728d906062b7e4feb529b4a6f995ad81005f86054ad7e6f6265ada2303abd662a5a5916c3865a6821ace0a1b9bdd9fecc7c707a4a48bf10c71f1b17ab2a829e53e4a0d55d0f544911553b4f42f967235c8e38dc202ebef06ab1820061c4247d40180cc0c4bd57f46db92eab15c94f236531c55e836868c90d56746780bcb5f0f3bbd394c8263e45aff2b2a6684edf67a70ee47db8c582d80c12d4a8d3699643286eb2bded641efa3137cc3ad41bbb2ed7cb3b368dcf598c23f358182914f3bab417b1c64539446c67316a6f167e00e5bd1b214b536995579707846893cb7706513ccfd68aee947996ccb058f599f74cdbf1fa20136a554ba875685eebe579dfdfe60deb738e4842b21ea610a48efecaa92d85b862546c666eca404fb4ab65f6aa0ca55de86a3993421b2c0318b507425e9b2aa074241a69b85187c318e971e2d9f615327e81f97583c096909dcd614a1cb3edff1257d606238a8cb69b14b510f34a10e92c30181269a552681cfa86745d40085c6ca22e748c33668954fdf12f6932f8a05d83106d4fc39cc5a8e2f9c9a1e6161e0575c32adf9184aa65b50b41f16d0f1bdb7c3c1a6331c16b946fd2da05843c482a7f22d520c5cc32bafe3d730bd907920aed3a0ddf6d58fded5632f53a5971e78122eee327a9a3b5b7af5b8f6360271358a77517963d4a634664ae7c611bfed8337843a7d5c8306d9f6fc332a76b33cb44b71ef1b56220e2323b91a5337b6e96caa291cfe875c56b9993dd000096d034c08836efb2b4721acdb0f06940c63329917f08d365a3d808024701e33655e00a4e350c6897f42eed007f21c03cfe622e7e4555b39914215c569f0b57e46f525e2dcabd10aea9dbf05e0ac970cf02bc8f56dd1021513be782a3e8ad746588c28986e9f4dfb9fd23f384df718e2ca1bae22c7fed8f33439a404ca330e7707f6ebb4bd3dc6b14df6acdc4f4ac1f5ea65d443521572bd2340965e939178e015aefbd962f31eed0a9c8a95c5d364e0a48675d5d58493836d94ae2c04fd629d9158753635d32d3bd910c7b63223a07b7ef2b9010faea91ab6b99523d149c0a67a936a19604521651e34eb6d07382e97851be5709ca751c9d88f468a49dc46edd39c4bf4b96fa6d6f5c847f3077004c3c0399bacac520e37925fa4d7cfe9a8571b5aab2903d7ea98c1bb34fe7c9cf97dc8d9f98e6c3b569a1a8481ff59e0bfbc738f45d4e6fda5612c96198530b1ec16d0422a87da78eb02a16973e82a5b8fa58e68d02dda07c65d3903da3ac2b688ccff8537c2b37e6a55a20c9a0ea4fc86fe16f2503e1d08550f736853a73c7b94afc03f2dfa0e3cf39eb5e043c945cb193136a2333d495f8e174a1dc85f90400151e51e3cbd8dd4d55c9d69628de2bbb763281693949d45ee5ec988a09c9a8885a295cc7adb6dc66633736fe9cbfcc96d134e9b84f7a23e621805a1d7b42256555ca31ce65513966a41a2c36b23baca886f69d6f74e60ad83f8767f35d169318950a8dad22fbae1f762ea948fa5ccd5d88d290d805ccf384b3a4ddf8e1cb234137737dc1401975337e4f53280f79b20f058d864919ad1325a28104863c56bd54e8150364092ee959eb05e2b8f63cfc1376ef53079ae1fa1f0f5efdd01ef6b74dc92e3c34e6ca28432aa955d06abfb1ed599d0211b97e258653bc285b10c1bff559f84f997528ad305ee30c73516578481d624454501f6bb2155a5bed5c8d4de5345fe0008993140e498611cf0a22e90c37a2f2fdeee90057852e0e2f5f357f5358944c0fcc1881b0e50549e064ac31bb0abda981e459cfca12750be889b93b5ea333c2c3b1e02a98b79dd9341e38da0425be5a5bf2564f83d292d9ffa1af830fab86c943566aeca292ee07b8e7a666df2bc6bd12d2dc02a6bc5b49c613d298c1ccfc22bf70404b4c208b1bc70ac022619f59aa806ddd7bb9ec94ed46c5781176121294a1fc11730a538eb079e5158ece9c82e80941b824558545baa383ef34e37addd8e414ae973fb686c5ef87b93b99bf7f20eacac879807fcada12514155f7e3236af43c2da14c81f8edb6d55da2376d0e48182ca8a01e8215e436b8bc661aa27f21a1cb76834617c7f1355780ca9f4bf053792a8d1b85dfe50dc65d419c35fe94e6a9268bce47a57b729156be07b9f990bfbcccd7ec56d050456e62544539ef467d8ca37b1418a32e4705afd967546732dba610b5c64a761134bb7f016d3ee5e2f55bf197d3b468d78e22f560f8bf54906747b649b5bb1ceeb112f72b6af1fd44d6418ea5f7a1fd7fbf909c3fd414fa8f11b2d86ba6589b09488fe1654cde7dc2607425edd088689f62c143403d0314a327b4bb747f41896499d2d8c35f80222934ceb25b3c82561199c6b13329d66bc975fa39d7461a6e810c0a13999fd57646625739a5873769a94c8dd80e438f955140b4a888d9290a16e63b628ecd7698dc3d55eb2e14ed55b3d3633845047a9d20a578d532d07532d1a4a48a979f6863c858504d69f84cc2d6730418feea01d1a809ea319bc968f3db57a5c8be57e285e712b21c2210e78f6c0511e9e9b6ab8d53f727725497411a9186edeebd9fffaa549efd2bfbdac356a377d705f1da34a7cf099b97f3152efc94482aa0dbe449959445c84ac10ee3213fedb80c64de1c2b5200ac356a03ca30f1bf0b758e1daa1e034fd2e7295fb3ce21311194c05e96d5cd9ec66dedfcebd47269979de9364615378fffc25e7cbe870fba4ef3e6b2adb3a262d0d0441af96be82d55b3616273be21f373fe813d1c3e7651294c1f19c1ce56b55c7812f952dc88a282b06c85cf3de639617e50037781aecff5497f66ee5df195968721a3949bfa09dbddd6f61d3eec187b43ebb33588db606050ebb7fde68dc38005e3649a8aeb1b069682f71ebcacec9bc3dc7eb59b6797ec26306b7b081b42f132ba10390909ab9687abf4bf5da15224c41466772a39461aa839c99e76356656df93755ba4b342c7c0b508c94e1808102f91e178e2aabe10911a9e869a6a61742319cce7206cef6cbc893432816407cb5d2f0ea1911cbee36b6c4a9957a7498eef2186c55e9cd1b09978aae0a9d5d0a336deee484c408c55ea4c12f71ca1714248f273fc6b6f32e4a6779e6b1e79c8d6d609d7f8ffc9ed4a763312aad0d0e2b3691c5db4e37f3d9bee04b27a85570df8a1f5fe358e5a7452e5fab1b9a764b96b650014475eeb70c56624338e25cedbcb70eae14517c5890e511caabb2c96c57b5d5b1a82567c11babc75bcb353922dc53bded9297176927f8393ad93ca5a5cc2beef7fb476ffdfe169e170911e54d4d5da2ac0f930a19976586c1cc41f88941e829fb12792b2da7a7f1452dc3aac7a3df8b02e1b205e20552f929b3eced98acc2e52edea74ea842f63286eef31be36cf3d4caa3e1b5e1a486651a85b4d2f84a7084ba5431792cb1d6eeb0b5a11434a9de248443631c0c24403cd6ad006de71c8c633ea7063c6609e313af7dd8861822421ba1596312e3cff450351c3345ede869b4edfb78c08fb528cebb074cc110d42c922bac331ce66f1d1eb712e08c89a28265c7e75e416137d2c9ea377a385eb8b3b5a97f7cb0486bc56a7185ebaad43055412ce454ca69405ff096bc4e05b9cbe9d3c53e46f7fd44131bdde8dc49f63c61365b23d6818661009689bf7c45d3014657d70f88eb62179fc97fcb9bfc08c7fa20b86788ea1975e17bafadaf7cf1320403894465cdc73d3745f32a8e42cee0aef7847db39c729cd13a6f4c4e86c65c248e5bbebf05568a2d6bfccf4e26fb4b8c4bbd86d138a0529b2a183adc0a84765a344a7e4f4daaf1d9093140f659279bd4bf8ba095c553b83859cea2230458c404e7997c776e5b7b134efbeb1f75bff80ce1a21408d3a81e346f95f8e265ad2be7dbb0bbd085c9a7027e940c48624535408ad294fb20f1f2096ee73a018dee22e7d32e9de0450662b452ad9efa68a45cb764b0dd481764a28d2ce28fe748e53e1a9508d5f2a0c7c0d8bd7c7b001fba7d1faa1679b47213ca884f8cb6f3b1939d0869a56509cdaa32cb9017a14ead4dbd90a840a9f1d6af38f2854665e8cdf814134ef669ad9aad58d87f74af5e723a9d2f5de86d0a1abf88521242d5e20644214cbe9a52d3ff054db7b74fd33b1299247b446bb397188ca3110a8abf3407f4731cd0e2382e11341601fb53000ee87ff22b4bf7f38ece3fa0483ca05467bd47972e29ac6789711327b882a6f3a3842b016761447c72b16e2677aaac8186c9f4836e202b8bc592c558bb5270e9367e0fff0c399a0be3b4ef5fcc4af079d83a53f5ccdc02540fa9ef90ba2fc84f8f4b4558b2294e9ad08598b000a6d0dd5da6da11004b55ecc634f0430eb271f448682a571b7ffdf84493618ada2ec6a2bc7332ae81e749a1784de93c1917217d4a0d985ef1ddd76bbcb87af46360dbae94c22857d4c081c09d7efffccabfd3bc02c08d253a6887867deb0f7e0bbac29fb460cda4836deba0a10826683893291d66d2f182ae7f0e594ef61871df634abd5cf6c6ee9ae37fb7a9a14ba7b144ab6624116d56f4f963e6dcb932b8cce4b52e29657f14c0aeb0c7f745222d0703b7cdda1cfe2f1c576b73b4f63b9e831095f1afc1fbd5c4d4679513e558f329f1d29fbff38a0baf2d70a436a6d3c52fb027ba73bc4f1e32ab231e5546b48d18e923444373328e4f73f0859203975c85d6937a8030635f1f53976722938d35e388f6d1eacb0dfe424791fea239a41672db3fe45570da6faa20f5c9be804c8de06f814a7ce6ec9f328f6b4d641fcac00b80d9c29a0bdd71e857894dac33d5137b0a968f0e29b2b6e30d055aa1db0b5d67d1c83c6fec84a13fd70a1bcceba86aeb2debf39b9528d68916e70a0f9c8906c2d5ca9ec84e02c05672eb415a6f3c43bf29b98b22471a778071b6214982a4f6b2ca8486ddc84c8162a20e95015f6fafef829654f0ce5ae44f3ccd6db5e92310b44e8fc0bdc58d9953bb928dfe1a7443762f703fbaab01df331857343adfc12c6e87bded164b0967420f8055ff3df65983f59ea87c52f794f25d48e36541484d1bd50674fecc0427fc556259601683a79e30c5e24a41f01d8a8ce280a31c95b370a3c32d27e51d76b812870150f5f54b962ff789307c0c34306bf64fd1143b96aa6b8000f476713354289ae959787e22c74ab3a8822b4649ca85820d2d8fc3d376d7cb3003ac0ef1139617da0e7798841aaf70a939ff0418a9beae79ce0da6635387ff367ecb8287569c5c02713146f11205d8be43c0ba74c675377dd61f68aa3ba5b017b4ab2204de2f6996e1e8e1588ec79b3570ce654bd3ea428362ea6b259d0a0fa4c3fb50a4c985026cb954ec7df67b4ac30bb079cd36c0acaa3a3029e6e31fa17cef64ec640c89f8024c9a8939020e54729804c654efc331f5b42c2c99ab50a9a2bb0a00bda0c44b14f626b283dc270790683d01a0b88b7bdc33741e56b0ef6a5a975803e4c572383ff9ab4ddc9b13f1f6e598b1e77596b28c25cfafddec7adda98b3ba0cc9479ec52a39217db3b3902b62f28c05a32cfb8d67aeedcae044ff5549ef6fa774feb1777dd2c1da4fc3af3e9f93fa28d64683d145c2f57eb6b644e8d9b45ea62db4bb4f2752029eef382b200526a34c1a45b86f3543dc57d89153c7769d7f34ff0aeb464fd864820eb3d184eae8737bae675b755283e84b1bdb8c9b0ee9bbd4759c1c44ed94ecb233c9f2af5a9a6f9258fb019b3a46b772a384ba450753b8fd3c3a89b2343780c85d5be52ed23620d290419905b8e8deea478ee3079195191f00e502d8c3f5275beb0dcf762b6607cc86fe4b89aabb720a5db6d736fa081ecd6909f7e6bb209b251169f4caf95b5b8950659283ea33103c664835ff7a41c03857bca03b8a4b077c5ed28ead4735f26f6dd0009fa2ee87b1a75194adcc3b1931f2f49be573bb9da673c918dda2903d140538cce2cca6a18fc10401ff0994dd18b0a1585ebdfa821652ea4752816f0907e57c1448b70d11aade4a502a10100876cb137102c22deb4caa57599af2adfb706a91494cc2d01014e2d1daaa531209df5062d09d0ae966f8e0a854b73049a5f8592414ad3659f545dc8dd341f94a4ed3031f8cc351406c84228ecdf30685b37008cfb5ad10b613bfa110c1995260e5bf6e90f4fb026e38549e56a83376d15b8d0a8e55fe0d096ea0fa2ff016fb3fea335b3bad188681e7c51e92b9485143e41d84ad01ae974a8c2b7a0904b80b3d372ef500f1893d8d9b644ffb39ecfe4471354e2bbe9bf5232a62c33c12ec2214f3c9445ef0df0a77308b835f73b8f3f3394de3e3be0db2d3859ff53274522272f63bca066a1f7ead215cd12714d619c3dcf2d9ba4ee2be438285227573cf665ef1039bdc24adde114bb55c36dd08813a5aa501a0d1878d1bc8678aa37810396cd539c19b6eb040b4434f325501ca9b9e9ef90ee15eee3132d65a2bbefab4b408605571f1912b70bf4013cea9b5b2529832aee91d83c5124be4c7e54c1a12b14c4503fb4884582db4e3bc2bb0a627b68770deafdf393096d549abf5a4e23a9c7ee17cf5ea52e4d6552f1600e81d8c2fee8461b2b80441f79fd75a6084f0f832a862c4ca131189ec230a0b444b447e184432dda106d23d5b7ba360997c7590bc07852c9d533538ee7d0289b7ef2278535bf1c047a80f6866e43bfabc454b06697cce7342f5a29d8e47431583ededbfb55d7e6cd30b78f3aa654bfcb396e0d79cc85be5db7de6fd59fe35673147c9014c66174ca6e3065baa983ff4ad37048974fffbbf37280eff5ce5aefdb272b2ffa452c470ea4856a4f4fee9e97d84d007e80bb24a784f67678ff393940129cb61833680d944cf5715b3d426863f043478c1f619943f6c6445d0f22dd60538c61195854bf0ebf3c39de2d790e71bcd78d8f81ba26af4b65d5e2df146df6cec788ab1f6073c54df1e1dcee2947c5e08160a376e03a8a3bb1b5a812d60afffb445d8131574a09f669fdb9f80ae3af5926886382f16b56f0dc9056cd857d89ee974936fa81a0cecb7471e210d90fd630926b357162d1812fadca6703afe24de88730b171891b68021807070f195029b36d1cf3dc5da2f1eeb59dea37f1b2b939e0f90aa07471aeff7ae524566f85e0051d993bdc9a9cc61398811bd4be9fe20885408e73150dd4afddcb00d26d7d7e771f83938042f47c96afc73e9bf20b01881bc4fa20b51e7d220bbab946015498690b70597252f9e37ea5047d703115c70a2a3dc662d49972bc002be15ca33810fc2cb275c8431a1a6bf1d02be55e23c7357dc913507f401f9528ee8bc4350dd7a79ba11dc10407274250453b6521554ea8395ba607971b0196fe9cf282c3ee21982acf855c98ccc82bf5e53eb422b799c0481df4ce5e8f594465ced5bfbc36845e23113bb8b520eb6976357506ce119c37184adcd085f96640bdee279899e0a6208801b630a81603e14a3a7bfdf7854109ac7498b7dd239343a39329b6492a349af4ef3d1ce9617ecb663a6eda2c3ce0994824ae44a1f80475941e0389262225ba654de87a7e6172599b789d389dccb959ff4273e96d7b617c020bbf8829dcd3b625e049ee640e7ca67a54d2853ad1385df50e71c6238646142e0208825405c58b03d642b62bb213b240c97415586f03c9f77b840f2711f7b09105b3642d64272bf28e911e189ebf3f33ff29835651b886fda5e10d02cc5572c91988017fb221c503b0f83d7137df88bb0d78cff8fcf2591a39384681d38f3679e9367e313d674803a697a1db63b7830dc148dea7deaf7fc8ec4eacde97dbf3d0c5644f7ae007da42a3c1245ca2b2350c4066de2995ea59f7f677584157a8af1ef0e8fa410db3a2448ccc0c043946e8bb5ece8f9a8ea3a5a4e7c8004851fa41099e395bd7cad6c510c54a4ea370da215764fad19362589f33e42f478015ef6ca6f3047855327d6b4bbcdcb2863528ae1b77dbcdcc5a43febb0a3b7dafcb2aecc693321bf4c6a89b4f4958768437ea07aa24ac5878aae7a75c8b261b07843866a0ea25b71ce9c36046ac7a813835ade9aaf8125e64390344f3b12709e34f5ffa2296b7bba00a9ffc26de52b9b3866b3fa96834700e2ea2f2093d7b365f077e8340ab2f7928f548a56726591b2d8b5f477bba95524bc03fd9e6c3611a472584a8c3b368ebc08041147b9380ad3c365463b95bc390c6c2ffe0894eac69244c31be7744104d2d6ba422d987fd5b637ee7414133ee9b784c0bfaf7cbf4a6d5fc86c0712e0a37e58082bc97139864d3d72f6948d21a44f98206ace4d27a10b9925898e0c2ab5d7d32a55fc30325ad752fd342551fe739ddc940a2b0d65e6cd693fccd93abf1348b3fc4a3da30c9cd532c9e7f9bdbffc294a81308aceba0636924eddfe5bc11717e21626a1b81e4d040c9592410ed7098056b67dec7694e0b0dcb6e7fd87c64813a6a320dc3196352a0090abb52d2a6171583a27e519a574afaeae4e5077d5082163d9421a1db7ddd42b9d51f2a393479edc42141a01e7ddcccfdd719c5d503fc46828fc481739b19113762dabd72a6d77822b093eec4d25fdf58d89d1ee6d0752dda6a8922d579bfcb3075ba023c1b487571a79ca7935f64da69a84d46a3eaeb1e3782f1f1580e2d4608560f98247a65fc8fb8aa877b399023d7eb78b06bc3b5c921a53a5c5ba4e937d5c01da368c52fffd3f2a1d8d9a6a7805cf53abc00bc037fad37ba8b89dfac244c8dfee0d7d89ed4e2c4854edad5d077e6f9fc09ddc48c2b6e7ccae8ebb0f1d1dba1649eeac6e205ff323c414d1654a748189bc02fbce0c51a4051897f3723ef1c80e67680aff74209300e7fb5bde968c7df3925172dd9d0fad5c4c004c81097084419a05e803aa52acd8db4b1e8e1e8773facf64f99068455e3ede57aae7fef02454e508bd123d269ff536b02829081dd97f986ad0d02472106ec2cc40808dbe0ffab9f99f1a362a090374982bb64d8c218ac80f77e2122c9f22c002e2a410d493e07e38f67ad9f77dfff66f8f7ad3c708a0527c237d180630716f2b9bad7cfe72fa7d9c9bb950fe157125f7ced9c923e229533e54c93cc1f887596f46dff3920166b6e404bb27785a98dc2044803acb917b6889bb53029e620a13f69ffaa5286d9dce217136ca357ef94e9ccaded25875cfe649e1e383ada16025f5ce2a37e08d46899550d58cd4424106b5ba27ba8f6f696510aece336b7f143f3ab9205c295f9340adc1b3f13d7b00d1057543b21da6bb456d53297a658231412b60daef0a62e2e962d751a251ffd446ddcb871c5a905ec8f8aec5f519f32c89ccdd8f33bc7526680d81133609adbded870d29cf0423ffee48947d68135e76cde3364c7ecd5d83a1c3fa3dd4dbadab10240b6238e631676485299abf0682b6f0c4e8ae2009936cef3a97bb83135fb9bdac01a2d777c635c5316a4a9b08cd58b9067c661cec6911f18dc3a0922187f317b48771372bd9b24bb26888af99b6102ce993bfc0ae7bc3a6b50afe04c9c827aec700daa634296cc37d73fc7fc837743c93798b15d5d641a2a0da5302ca2b12ed58d4e98d616e706544221a5204e2ab423ec8339adf32b8cb8f76e266bbbe12ac7b94d4404030cd15c7e87ebe7c4eb26b54d94d3f2a04272e6a79688c7a6e14512e5f4242264b882d0e90b846c05420ecaffe70a91760dcc6fd2198e6557c5669675b08290cea55edcff29196842b65973798b66a302cb5c238adb3635fa1fab36d9e81b1a91c74f7ca0c5efa413070109461b8a6bfb01c95fad5dbee26a252bd0065181a153955a61a312e6fb2ed39052fd64304b4b2b77060b475977c0b1331e27acc8735db78982c9545659258ba51a7041c2efc314b4ae3e91298fcdac6fa9312b627dadea28f83801de9bff38676b8e0b095c32bc4a36e479d5c5f4725398c8e8c86a6d4d3930fdc6fc7319937511f4325e2f4ec236a9f467d5abb7a4548f6cc45175d901319d444811cb6b43d4458dbeed2f30dd01f16e6bade245171d79e4487e6355c1afe8feb475d4f9dd338056f2d390741ac279c718f95c0c250d3118765265e805eb0c67c4dcd2aeb7df33d81a6610b25a611b39c0771ee893e86cdbadbabcb568d9d209546c00ceab303f5fa6bcaceeca92aabfd99c3c2666304335dd671deb10be4166f6ec82541815a61f207b82739857f6b185a087e2921d2fd2d1449988eef7046f83c4e6dd46cfb1be9590043ef8b38a4ad5487a5f3f62f2cd607161202877752f60d32efa3d6680a555469b7bb4623ea5b8906c8f03da5b2e7f2d7eb9e30c6d43d0a2461e1ea493380a7cf17204a7f1f6132844b597afe76ed99200fd93f081e13f5eb30e7e84b4e07a1ab3214307523f4136fef69db057c956eb092284ffb797544478fac62b2e04e4873d718451b952350a3bc8d0af6ef2f5a7bd96fdef8baf2393f3bc09c45d89450b2b5a922c225dd27ebed39ea461f4f77fc474e635846660a177b9b3ee05044e193e05602cb16685a6e01d512260bb0a9c560bb328ee216bcff42abdedeee2eef4c144cc6fcfd2aee1e757ccec9e4080003ca08452159e5331d20445f60d7f1bd6231a1cbcf665671c28d9760a3d8b67b31eaa7423b63a6a464ac89ef31b93c988698c8ca415f306308124c44dc20cea6921018e0e8c7f056d809270137485319af5e74a6af55dda9741cd506b64705905f893dc66700abe8ac64ba43aeab77e09b9cde27ec34822a022d8e31ca76fce51be11d01f087e1c388adb8653f1ac580cb85469df2672fddd55092636595ca9ce7ef2d9fe429791f000fecbcebcb39c388b264d8f578bd65a2563f971e6d67104a066438b0565cb92902fb2b7284f7a1f3224929d85a731e799a8cf949094576870c9c6108a39ec1481d176f8da6751538cb59355768df84fb8863bcb3dbd7b9a3147272cbaa8e27513824d8cc576303fb72355e70798b208f871e507aba030c6014bdea7d11cfa6b7eae17962c3ce57dd06edf09e398c784624695c1f858f170bb10e350a9352a53d72942afef9f171a0db897be89ce47feb30bc4ca4680507b6d47bf52206f33570c184916e1c7fef6b00814fdb1e9f8d8dfe918338cca8254aa77b79e88f5515443e857c429d03c3f0cdef1d7305ffb5ad325538a328ab5eb28eb0c457187c9ba3f3e3d5daebda935ec4553ff7a877dfdf685477daa44c4045b85da860525c1927ddbc4d76dd02d9ca016a50d24c9e5dc9398d77959673bdf4a7ffc6b017f7f338e1b3ca39ae3059f7fbf713019c2d482a19b97c9d29df65f7a6c2e8ca8a897db3aba2e6b8d85de90da1375fc5434055f3f47a4b74d69a4632df13774fc8606be1196b9cb50565a68e6d59c37ca4790f09eb78688c1a2295002f847f1e048974904c7feca49b7ac2528560b64ad0d452b0edb4d495795acddf9accf1eab0e60dd2131a1eed7ecfa005df15dbdb51de5be09207a65e2c7e06ebc89194edf7c2e8ece18e4ad1519549f5d01ebeafb04b5bfbbcc1d81a243fc4054eca8ac1636143896ded1f135ccaa8ee825bbd9669f65849edd14acac44f0e5b66ab3c678963b025853356f6471750db63f98447f234758d10300652147c4ca5e2d1138b7f7e541ffb71cc6e9780ab871001cf146d7b3b9568a0bae3a0569094a119e9269147a9343ff50abb51fb3a32b88bcecb8b4c45dc6bf617358d605a33e04473865fb8c7d3ef5164554a5ba18a362122ab6fe171d3e1e1f9cfe585316e780b354cb274d200fc64e535143b5b7846fcb36f3051a91c70ef3e742949db769657c6b90a2f99bd2a93b7a726bdaf3e266eb50d30a931eeaa3467e305ac8c86c35e9db25bb978093c3d9a6fa25f624df1ee17299170b89c2f7260eef802701a5e4a3c100dd52b496f925280d1183ae3b6dc252ba24e223dcaff0372100f2dc05d3a827b567d92962bb977f68523f1e70cd9d49202d091c8df542cfffab0a3142a327e3006377249bbbde377d16cc7abafb58dadd585ed4b62cd20a8fe73c36945a3762073e519f7e15db016b19720bcdbdcc417e2f142954634598b61556b53d65f1e544ce069814c6a06c2e46efdcd1187de87ace2279401e54868dd6bf89c4d6cdc1e13222a1be57cc73c166a99bf0246143a517ea9bc013924f2f72a959a0af60c2c0796ac7c8f2ae6f7d1d9aa8cb25a291e88d7ef2189152cff6d864b528d470c2993cca39411d5cb7f578c773db6674e3715ca6a8983009258fa55d6f9688c35f624292048de36bb2edd9a9cf425faf4df5d59fca9b2581def264c9b4c70b183b30c9b82c363f6671c531fc1b2d23a390ee38a2f6baac7b70dcc30e4b69e8ec1680c1ba701423a3f81321274df7e8dc89c15c99fa4b9bb1a5c8e17252c4b40be1ce806197e1cfc915d6e37e6c95e4a5aa7d30d7799a76be601b42fb1986d8e76d15d95dfdbf4a37116297a477e3444a27dd8087c07de1d059cdc9ffe104b125241cd3923165a44afc61d861ab32ecbe7c38e726f3b63a690a3f7d621f6cf1c653ea767922dab32ce82a6c0141f61ecc07b9fcb803a8103323ba000f0949a303377bdca6327de188fc484c3f2638cc011cdc6a615c13e27f8c5fae9d039ab0a43d25a1274814498581facf0982cbd6ee4671319f816c521f9fffcc3334f13b1fb85a238baa5f199ff020d44bd90eeb7f58698c617de68a125dab9bb33f30fbe6411d6176e9cba23fc1f1568823144b0e19910ccfe699a045bfc790d56885e9210076cb1645b88f131892331c129cadfef86dee2532c46475df37c70383678d142c31866323d1df27dfd68f2a81f9d51476587b6c9e799caaa7b8896b241e0937ddbedca9ecd992664d8ad3f0e567ea951675743c2ae1b5ccff430097a5d41e97cad21698e35c093f20abe39628e7f78174727c2ce51857ba45d1385a2fef959500e771c3c80b4db084e6f388e31d928ff83e0a0454082d5ef3ab5599600b1d33a79221e82aa1e26d8dc20aed34aa82305aeb7bdf98f305462a152374c07893d374005e0d5fff211ba71a830b297c8b5a214aa163a2f98ce7847782fed0f279ba2a2f9b6703436993fd4fcaf201682c092e05460fef867b23c49188fbde5625bf08d3c4a1072d2e450a18748077fe166192feba466716d9b074685ad3a990b7dddd4588cceeebb57315b8b049ff2bd17255a5cdaf6880d8e3145e972ce084ee7a1c3d20eee4f5fad810a4c39ed18a0609db916be38b70d234c3aa57fd83378e1bf2bb92cd83342e45edcb7270b7147a2ffe051f6e9960e72fd797998d2bcf13400f696d10411ba2bd223353c1b6d59ed6e8e2e9841c82dbcb0c0d5518414b4402415706f05c1417bd6e634f68a740047caae2da11f21cfbccd1c51478c64b4d2ac0b63e1577260a12579cc9f61809edf7ad93c17e08417bf182c98dec998607460559970946a6468bc176ddf34b0282e425c1b13325899b12a136c2ee074e009675bf0f8ce3f69ac810f569617d5535175bd4ff14298160e0c458935c78ed6f6dd200685b4efe971d160fdbfa25e034982b0f9380783a604bc74eedaa1c62dde40f995a87911010c194cd4e2f53e3b65d01e0c1b92f92e9ab99ad59bccc536ec405724391614d0888d37535c9a24bc5ae9696dc736cb0f4938d020f80a03490d5fa485200ac2e92e2a2bbe67e7929dceda7195368a59e834a8d858daa05a99cf844a8d4ee90209be78e1e9ce0e4b34a0c11c17d178bd5804389c5ae8d8cd3a136705ce36a5ac8291384f7e1d333d804a78b9e40dbecab48586ffa23079fa640f6013a707c6fe0e66fa293dc11a1a3d06938e571a9d636c1ed60f0038b4381b467c637b8610253975444b97d1e7a706ecd0262fe82460cfadb987e5a64c838864e3f8904619d3dbcf68cd21a3ef33a900f2c2d84fe590d3bd236c61894ec3177cd8e1fd9d8e92db11c452d905705314478736f83a66c2a64a6437c07f95110fe3250a07a1e82b182061927b8fcbd84b7b767dc58d536d64d11e7afafd03ed577635de104db1fc21c074408942f66f8c62fa26056c427c76836a402f3aaa390f18353b6f9e853a568a127d4952ed27e33b1fab8f6356d3b498f3f7c1ffc08c3f694f9043b3e663a5b34ecb521d58f11b828f5db98454085a4ea0aa7a0f2612573c20054eee8924cbf5a1776b3863067e172bd2d1b5382f89a6347499adec700c2ef9c2296d73f1c18dd630c307712d29a629643fa533d6785e21a561fa73789cd13665435cbaec492c14744bd4588dc8a381311286877ca57de32bb9f36cb5f93490834c768ba7ea138913eeebb92d8b3dc9536008e17b9385f017cc939e7b3ff36190d5821531028292dcc9accfed65661dbda46d27e847c7b776119b7e953aeedd9eb68d1b526ab144992845790d52163587fc468a5de115029d2cf026c2140ec4f4fb34e7bc506f6ba86271ec37624a3e86e08d227e567b093846f4c5860acbdee2f6b75371d816834792f3f7a8b47b5da191b536f110d88ab05ff928e4b3ab13684120a6a6df0e724b9d5b7038627bfe71973ec82ddcff2a9d21389e3b5af81b15583ec8b719fa234a32f5cbba1672bce284163d55110b7dea129b791f328c3272a63ce6acff2d68f632c4ad2fce8bc9017a7bce31b5a8cc72671f4b90bcab7695f02d9d6a6f3711d2d5e05e6158f6607fcb834d44b2957a4953540b7f48089860f496f045c5db2c24608731e7610c0487d77cd227539a5444e8f4f66bb804d2d394ca0934808f76936f158b907513fe89f3353f6cdefd705a17a6ff36ad7fab2b2644ffdf825ccc7a53f7ee6ce1106a378983a0cf0cbccebf43c0f4d46c13c7bbe693d0b5e9e7bb0ddc77e984ebafb34956ed28b04f36256352e8e74aa4af305556fd48543cebd88be03d4e67fcd1ac79ec6218a516c09763abe768f4e67d595ccd8c7611657a0fb8a488c729f40d18ba7c6f5a2458ad7af5ed19c77fb6e2e83921b9694a26be85efa1552e0aba69c50ee787238bb56393e2222ca237de46e6778646f32a128c8ccd5337a785792f9708bdf4cc0f25a90dec3befe97890c6e3cb4604059ec465d35608d96c81af45545b9b8f8e611975e717f4977002b429df4507d6d60f25cfea20d966eb0dc0b395c9474be0a50da84655ae5916dc9dbd0a0eb61a60899bd05c9a37c135e0fed622f4c8a118889ec76da7182d67882aa661205414ae79cccd861a69d3cb5d7b6d921d69aa552266bd5145dc36fbbd9b2e07a5be69e01f1593468281b2606fcc0f801383eae2d8716f711b4fe85e0b0ee4d3430a65f643626cb192d814971cfadc8768428e0cc5c5d3ab16efbdd8066bb94c8914cb283ab21f57d65eb2283e398c66cb98ef5c4b845f69218901af1792966760b023eab75289aea9cf74163d5311680d595481c80057d83a82bb80dee7511db87b91fd1ecaca8c6bae573225cf63b2b4e90ff81a7c8e2d8bae95677c9ea47e2e33db196e8a89e490ca32104f6f74a292c21abe5e0a767d13fdb4abd2b6faccb192cdcd59b4a0682ea4026f5274f83e95d633867c0d9be25d8fdf118df034d99c28de06068eb0232c6c4d61e9dd5257b43f0ad1260359a936cddf6fd84062fce192ff4b98ec603f59518cf1aed5c9a4ecd6cd6f088071a3dc9d477af81a792ecc56d6e6b2f3bacafa6c3bb948b13a4993a46f98b3306aa25e631cf827722efbb6e11498b24f9ec6762c48442cf2a953ffbbf6d80425b04621c6cd7f12bd6c76aa9015ac698067d7bcf8ce770630e53db8e409e4301783c0e550164f7db8683b5b82c86e8d82d01890f9f78eecbea3498c3af6454fba7bf23df0950bea8ade266c76929d9ad287031f559213a542d04cc566a81f5d3d2e478c3cb286226d348cd5991db41552f82b08976e6311b9e9890afcf0526d3ff148eb389b0676bac929fe2f7972d729360d1259644fee4bc8c7e4ce8a59d257d9e53bd42c73987f9941af2ffe429657de5a790b15dd0f692e6fb0d3063f511583dc3f87e6af3ccfccfa91a7d673b236b8a8db7909dadfbf2a65d5bcf8854bce9e7a49513826d5173a0ef39a4beadf849def6019fb9e8bb109daaf457d84811273d92f628cbef4c6a3f93b8fb03d1a45e666d507ddd607aefb1bd8cc5010ad48807d406ad5f6fbf1d19a2cfc595a435192211ab6a5c18867b50f9ba65388cabf2a01bca8dcd758e76201bd40a5981113a3cfeebc3f53c71a4779bcfee41e957cac1fe7c0e62eefadc629a8f027fd5a4a1b07cfe42893b887809273fc926f6885144e166538ca9a3c2f56f12212ea5be28a03b09464cd9913a78212aaa2b7b5d40185523913034079ca26a12049b8c07d71908ee11b38725762d5218cc15a119e50a92887b142077afd7f3c10f870e53a58c5f09cc310b9e2b07be3db821a78f1981073f13aabbfac36d0e80222100c83743181a9a3e6b9d8e0c96e98d33a3902630e7a8b98ee1b85172128688f4f650439c2475a4fed3c7c7829445d6ffd7d6d97d734471f984c50179c1505bafac4e54bcaf2154796d09e07382344681cca0824b7b594178f8d4ba8412a6939fdca24060a0c6c44aa8f99c1cd995ebacccb002d6e205c1669bf62b5b1bcd79f4d264239c5f3933cd65f0ef422229bbe0d9826b1252a0562d25abff8d6ec993c9158c5eceb8d873c86340f08c0deb95e30e2502d38ad6a4b9a832c627a1318c6705ec897804a6f4209e3f540859977a3786a99c5e84e91656d2ad5ee348c2daf60d7547df89e2c1a8f0fb5bee446c9f2c7e97e3310b4c1373b9a1d611466210ec0dc07adb4ceafaf621b64d74d54ec49eb666ae7bea1c2d216022217cf985e734dadc2d706d8d81ac3fd547fa8c68e2d2f4117e79b093d5d5713b1dcaf9a828003c942160cc3c52ac5ddff45040126330376d68c4d10fe6cf2548fda7c6540b1905b524c365230bdb6735323400cabe733a538f3a5492d0359ee3a0ba9065a20d3aa92d9f851c7f8728acf6f5d01d1a87628559e0d2e4348aff430a5d06bc0c3e2b584d120b6112bc96efd42627c8a07a428a648b4e00450966fa1d3c93dd1d74e344c572bc49aae925e625f4483a7303031bd8730b46574e73de66a1573a5dea5ebd23e51b97b16da3b6278d2731501daa50ca9799144d2d9c3458998567c0aaf843997be18d3324f950ee1f65db85f6e19cbfd53058b597623df53fc8ee7f30dc7a3939beb9797fea0ff11edef4f091b5114ebd2de24b9de09dbc44811c854d5ec08b6a08ebf182506b498d040baf2bfd02c224a386cf32995d233aa3d7c29aaaf8155f38902ebbf8c43826b5fed65461123eae82dadc583904b0181359eadbd80d3de7dfb639f509b47bb1d07219b6a98ce3dc83aa568efedcb68a1fc07c031ed2bab2b81ae45dd6dd6dfdd8567a987927a09bbbae490f3c231e161808ed69449b778a1399833792a6414a72add532f26259ad692e1d7cd0271990ecbf9f84bb8ad1d43600540a24503b5b3d410ae747d46cf66acbfbbc7968e63e0334ea41eb28735de9c13915f239cd4f786b837b741e1daa50e7c789c348392e369e0d9f4e2a05c2036f51c6907b8d98ccddb600d74fb1da9dc4bcc2461d6c609b87f9caa35dd463cc253a09ef608591de46936c9fbe3bdd98441e477477e92a8b59d5524366ff45ac19740e452472d96c0de513aa848e5fbfc2cdba29d178c5a87e14da61420a4370e0958718f8faeb6b7c32cd4383d4fb842c43ba79a825a09f9102e7efed77c37249821ec647cf048cf6395df34a048af95e6551cf61de4350074025a23a774c9720b6b6776fe9b3007691bc8afb21113c30afbffedf2a67c85f56a0c949eb48d92192bd67137f8f1492a653b9e2ed2bb4a782289f9fe943dd0ccd2ea46e427221acae6acfb237888f91eec75086ae18a73af0d8b43015aa79c1800d7de538bf2ffb6548bd55d701b6e674db9e5dabe56e17cde9f18122545e4f1585d732d94f6fac44edacd2d66fc43d89d73892e0983f5d707f5e4cc7b905e8b2fba0a33e542947768c2c98456aa20d309652351146887928a9d8c8bfd411ab93891fb0a40f2df8c69533830dad513f0ddcabd0500df043d6b265805f0f1d0e789a2cd3b7577f53bb2e14fb872037f7431bd9d41c134dedeeba9da6e12bd26edc4fbce489b17e84aaf349530bb80d11c94985de67eb38a576c2dab51c1a81b4b0efabc1fd48254c31820b456239dc4a72f94cad75e1257700581ad9835af628dd3ef20f6f958c70e26146d79e34fc4d9a4f76fe9701f71dc92d2d9f01ef26de03a68c3f59bea44ab2c554a9ed0a3ac8ec54ed16bbeb704608e71098684af971dd399bcf0d73fb08d1cfc2f2c8bad4cb328a554b89dcce8fa749d5b467127856f11f548e6f0cd8eb20519df8f7fe966e2da771d88b53afb9f1894105d45d2881754386e56a668c7e572ce48ada8a5180f68a31eaa1c55477d5e16cf31d3b968cb16523348554818d330c3c7ba4bc2f58426f2ec1915bf3d3d62b3b7db42ddf44aab1041562ab76e2b76d03f4caf5f99610ef71e5bee479939e6c878efb57e1ad1b98c18b2db4b2771d0802a4d1ba718e0314ca0861b1fdee8e5f248666492e6e37ed85856e86487428e349a5f96e77bdd7183333f9e69ec371a57ab1168f5a55c62a3ecd3e673326590eb63feb1411212a9c716f6f780b21951883c995419592c84de7689713eec04825adc494505ed83031c5aaaad87968f4a1d190c70dfa4af54fc900da06f844093f4df7b1b76136d0adaefea16f51ad99cf9648c031c52a9a6bfede880281a9f193337d949568f7130050d213f21038b6d12a7a7cd30a2798c1a07a070c5fe2367e1cbcbd99daefcce0dcdb404dc040996618dcaef48d51a24369fe53691747cfbb6313bbe21dac6ec24b7d85e22925a72ff811900c07c30cddeb711a075d8af46da451dcad10d4e2345b93fd8bfab77dca39f4b1003e7f000419d18530ab67617c95ce951b6c9f47cd8cb78e70d8311d7c75c3327fb99be04d9497864f984fe9c6ffd534e2bd4160f7e602a9f8c630d592c93e9fc3c5aad0438d17b1d9f0d0a13d05bc173b0ead42b0ecfeee58cff27dbf653931e1d51e968164347705176c1d677fee8e4ac1295e47583b5a0e6813665d7f4ef945a7fa2323de24137df990de7961fa0597c3412f4ca0b9de213530b013d055f4197f61f03b2c7d980b3fc9b3af135bce582fab0da5a5812c0387de248564f01902bb0703081a7908f3faa1e36b1cf45f1cfbe0d5372dfa4947bab0cc91840f3002d28ae42cde915651a3e154d5d7358c36ab8034b56982e71fd461b1a12ddfafaf40a623ecee32d2d955b9c03f80067e92a2924d73792ed5f9f7be49d268664769f9bd67d3fecb1c5ce83300627328c5ea4f665ad0ae6575d29709f4f37a1b07d5e4cf161294b79ead31121b5d52fbb6898968fff0dbdd019b33b08d3bb88c2ddf649dd16b705e38e08215fb64bdfdfd92831f9469cb95d708283055d492e1ecabcd9cd5acb08efbe5c1d9261b84e5b269024c7a5c4d7f29d01898ff64d97e024d44c3beea0547804ce5e4c7aa37fdc3279043a1a46f340ee71fde9d01a7595d2d82d7d45f5596c1cda1d7f37da30a369410c3e2b5599a30a8bc43ac52f3ea9b0b2a4b55cc0a27613c55413ca861728a41e75f25456e1832d4a2a873bef9b041b8c31798f8e4cd9ec12e8f3c56b3b60956270bd0468697aced194d087ebe613de4a3ca2ff3fbf2fc9a664fc3a3977d07c25bd3ca1ca9879566829110ec9f690844787d258032ecf0a39746404c83b7974547a0c05dc3b74cff75453bd6cbd665232417be581d4182ca977fb6f90c7f20824fb8a15caf50d472f9a513c12d62db4d4c64435f2ec60022184fa61fd0e889ff4e390fa12f6a474c38da113fd352bea131cde5d57b8f91abe37851c926db3f923b8574c503f1ffc87221db8bd68fb17d5036d0373c5c7cf9b34df79fd0dec36eeb943df40c696e2481b3f95d544bfdb8da25aa60fe5e939a417136c08bf0c3fea185f51e8f8aa31922c7f178af56b1513eab84755982412f5fd2dcae9a250261700ef71cd1d84e9fa84539240dd7a310df26536e4f11a3747ad56ce1b299c56b37924b900f8ce4dcba1a8dbc04b2d6562ec5a649df9ea89ee5ce358d8df978bf44039054da5e4d9050c29ebe357e7c937374d9a8c09146235e0f654920452df8d4c5265dab654be1ba58d21d8c3d3ded29919b0f8aa3343df1d9ab94f02e20d58cc8ed2757865c784e27336c25d1f4792ef205bcb412dcd3eb5b61bda301d3f4c7f41e5fa2f4e86ce7f48da8c9d9847aba25f8342e3be2e11110a84edffb2e5be38a3b81c41f907198e8918879efd8c3d52fffabf4c3165e1d8a0da0b0d4cc84e9c62fb83b0c39e13ead0a013e2348d50ca89f892877f245d6cab188a15849e1a1ce74eedc129a3d2dad4602d55fe7bc497822b48b938cbed29a4499321b68a3b0c9a3e6515fe810c466d5ab5c499934b57cce2b31c6742bf56c075efa9edc1699c465a4a08108da0f624955aa5721484a8211de2278aa9b4c666429d4ed8f3584647bba5fd14fff957e2f135f66bba3342490bda862ded0a7eec6d781b468f0207cdca41efd2da76c9320158bc44933cc0926e17caad7eb1f10f641e54a60c4d5c3d31ae74dc0961b4dc89a884134163fca1da56db769674bcd2ca017b08a1a01f59562ed034de66dc531b510d2f1ff3f472d802c4de337628fb2c2f21a6bc8314fddbee98f01a96267135962a719c1d7ec761cac1e3e73d11078acc803a219926016474a11ae725507fc1d0110b94756d38d4b07be3f603c5f7fb9aa84d2b968a7b9d966244a71b4cc25354b8622d0e62e812b59cb6f3762ed7c588592eff91283ca5f0ffe33731831347379d6ed37810d28f245b2071c4cae415c5f6014afeef263a4919afc12a364ae388d8efa6406077ebf0ece75f38c298e3482dff4c92e5b28c806170ee2e38f068174e45a434fa34e2f58d42c2fe453a644c6c5bd458fed492785955ed9f5f32480129f2d976a7e2b3d3e91bde2f10a1f395bc4d0678772b5a353f454998e1940a0ceed3df7009439cbe2dd7ec2b7021d4e42467b995f95f649b1f9589a011e9ef990c31eed29a2bcd6b20f54c6fa1e470ac366d9e4785e366b552fb531caed562aff3532229105d9b715894dde113e39b705366d58399188a8a1b583a2822e7fda7b460d1cf25c2689ccb710877ee4f659b3e458ba311ac16a278f66af0848f0e4982776c527373c246003e9d161ccd4ac7b13f6d526cb0f2903cd43b7856eac84427c3f36995d458d73a8319310ce1ab5b8409c3026ca896d464ccb08b180321c08b1c87c01bba9d3998f154305b1a0a1c09ca84b154755f027f51627535a2ccf9bd10f6b1dce609cac533f00527d395fd877c1dbb503f5ebae1f426446ee792d8b16a2e48f90076a5066cf1697ccde0ac6b95f90275e82baccd10d34765e20f3aff7ef9fae3494c473bfd0211fc2f8db344e0bea5440cfcda775938754310beea16cf010f06594799ffc3b0ec3f3b5dce6b7e9b6851fc9476a595f2f7cfe6f189778ee138e8ee952b3e6d297a6d33ccff865e5e8b91da09012632fc7570d935627360c7c1592efaccfbe63e27fd77d5570a24020a7f1287cea038e32273f76bdc1373fc5d3a581935dd2287db7501902fe110fadbe9ea95d57968ddd7e0ed048010963b8b1320f6de6adbc769921ba745af977e96d87ed1a67cfc913945a48632967dcda4592d2d3e26ce04e779f63ec76db8ec5352b9c4a7a9be65e02675d97198518c9da6614f898e10c609b7e259b4b12aae7dfda3bc45792120200a8bd9d26d7bfcc08e249b9bcf0abac27748ea3eea57a47c8e1d895215301c6ddd4f8cfa5df7abf4a33cd39ecc0f75e4a08d9a53819bc89b494f35d3de1c3a5485d37ff550fe33572141b342b94c4b76ef7b6a1b43e5a2b50edce165afd637a0f93e71774d6247a21051330a5785e2aa1209d738e9f0336907cda1a9ad7c263db81caa4564d25f5391b283ea11bb502de3dc2406c066e755adc7a5fe680a636bddd0adb4e978de63d076a2c584c5b075b89f6f11b5691da487d3cec8923cc8f579903b29e3fe4c842a5e1148919cd7706a0b4b37e9889c5e9c4b4a75deda553c3017ba7c87f50a8f9fc38660da2ccc42e87c2f1ee631a3ac7d9293c8609e10fff4deb9b9c800c181d7ca334c4218c931a9da1e3b22661cf0f1d370688ee56cb5171aab07f256c3079578539e6810bbe2a44ca88265f93b2330c381867e06767ec033770ebdeabd2fcbb9745fb1caee5e2469b9b78edf403a1eced77a1e230766b4f0f5750a773bdef441be4a88fe2c2c53d8a3e9d8a3fac6e6c569db70a916854022e0c0cc7d2266b53ad9217dc9a88fbbe337b131a96e51fe4a24539f9d85511f0917dbb677bf430a5956e58aa758a367301248ebd47fbba90e992cc1711f3a8d780696ed2de917d59f1c82def5553d35ae06e6fe3e88da8770767333417f511b9901d21c080b51cbf10b38fe7aee0a2230a118a5cb5e6802fd4a368aa26cdd0d58a1310781ddeba8043682ee89eec8a600c8aa8a3bebf02b1769e5666632c5b0b9b5e2f4afc4f22824fd78209c25e37f792729a7535c99345a31c99d305da4990b8522f34f0e43305b8c302bc7e363bc2fa786ce1be40153f9cd46223b103a6b2f84e580a5c70207a550171277b8a5960f1045c9fc83f437b1ef97e6aa7fcc7470877eca1272105fab7fede61800f02decc86fde2193edf6b257acd57fed5cdd5df5ceec5f254b2ff2d92cabbcfa96277fa17c0b89042e314d7011737f03428cfb3fc35cde4ff0001010473abad88cdda72a922ee97e33651ddc7da97c4638577e3c8de0f57c4c39132e6c9c9856eeb798404bcfe654d1e4b99de7e5328772e2654f22754fb50e3de6145334d578690637b6d4ebdf7fb3a63248be60235789002e292c1baf015730aff80118fb966d957d355d511226effeab0fb4a983854c271eaadb5c0e8fd76b73a3155e686894420da952ee07037185900eaa990bbd62f43218936dd3ca06818f1f25822fd9358a4ded7ea493ad3626662f21940b6889114383a0110a8a11c24bc7ee87dd2d440b9e2722aed608a8379297a5d45139888a7c1145d24be55d964d769d111ecfb3ee52e9e2d7ada07d5b2ac62cfca7aed7030a28185eded187b436f55439841121d28c9f84eb6316392633336cc75b1a88e32ae691b27f484663f68fd096a205e81f7769bf07f331647c9d2d5e676372ef0e5a60eb63074f8331943cf2561c598fb9274532be33e55984fc5a80dfebe8d9f50b8e89d64016177986084df767be23d9a22294b5dbc063e014e5376dbbff9a97f8bf724ec22150251c0fea374adcd2314841bf4687594343acc3acfa9101c76d01d6ad24a3e326b2648ce5c58b4be5ea5ed07bb8ca96b8f1dbea00b6b1b2981b63f00f78ed7b64677025980a58f222e29f993e649f391bac702432775986423f7c6dda05b682953bd422ac8fda88af2b84226d4154376e2b91f611bead605cdf136deb06122fa1e6c09fb9951de19da5d55b52cffef3e60aa0d6e5592550e8eb5f4eba33404f669f6cfbf5ab2acc385d848c05c7ddfe54444314f3c46ed065566e705b74b267bdb72f1aad2390e81bca6dadc6874a70595330efc476c49e1d73edacb6f289ab7a2c47d12b27ea568cfbb0b7db3dec1daf91a44a918e876c1558ca24ef7f74c1ea91001cbc463807a03644fbb7394c2ff8dbf82caf524dec93757cafd007052ca40356ff7eaa29bc72afc10f4d0fc7459b42d4903c4bd9865f8a90ce2b8cec9f7a2f160d96d0eac2cb44485c480ec7f2e3099439d3a5975f0c7843bf03fe0cdcd3b0d10c5f18a2c61cdeac521f6094d6146087f669b932ba337c20b3b57f47637c008730de3e5077328e7cce32071e8d2336856f67ad838afb8b6a68b356d1cdf21c91912fe4e07cc1d0474982fae4dffa3404b88c488a780d9d212287dceb3ba93fccbabfb83364a3153b31498ae335215b6b58f7d71c73bc973b0bf2aebed2c21c09dbc53eca1aec8f6b7c6584c1556eab6f5c4f8ae3f8ad817da85cdd46fb71b74c8bdcce493acedcfa8b97e0f2eac659496b4d06e74452ecf8a17895a85aee649a1440b85b8c512069b426c4f11d9a22c09d2b145f4efed7cca0fae17ca6ef6b820769b1e93a72b1bdf57a472e76ac50d26677d97b0090dfe3390f0d72cbce269f67ac811b134dc6381d0e9123a7cd03459e7f9536c2f364170e03683ad98560b13e9a00d6862ec4b7b17d48a1d61fd81a58da4108b22bd3c3d12ed10e80b49e14713f8a51d948e4a72aff8a3027dde703ac62de9828fc634c39eed3a5898d36fc59600d7bde65122c4d923845aebfa7afa2460c722822b0577e3e0debb1d66df003b2024fb6797b8cf9dde3673d4b0d04e25aca147078115c38e1e1a9598393e7b3d0365e7613e00c9c8327e3001df2e37a02b95a4efbdfd6916e6feea32e1110f6a05581f6c795271516ab381d712e69be8a57a94b055409a2e5e7c4f861c21db052f7ea8f3d0ddae75d37f8e8ccdc862dbb11ca874faa3cda7085c3daaad43e587b6276f02401e9624c6c3f8935b3944b1fc58416eb880e2db98f2932d72990adcbae56ddb5538d5965a91db4360e2d24bfee0eb0188de69de6e68d152ee707448b3d13bdcc3a114f48b342b84c7e8e097fb774dae4b30855aea8d1fade3438af765de321c4b2e057bd1ed8ae6d5cde141462e4eea1e008a613566939955746bfc6b83daf43ef74d315e7e9b39f6eead1938900e7566e51122ff4ee2233e40d788f485c2a15222ddf9fb4e6f34db0d874b00240b26089e5bfee4ece6a473bb67bdb79148618a34ce53063d2f5766f804a88c009adba7ef647352dbf090ef1f5b6adb9f462226e1087b20b3372c92ffe7867e486d7093b5bc8a7e993ac4e31b347186e1843311110dbb8e7b311d9d04f15059899cc661082b990c635a43bae868f96918833e7953b78a11ab0d94eaff78ca6f20005c22d816ad0db50e616c9128c683ff35ee40f4289ebcd1ac8fe661ccf86b8670ee4e9f04d5aadc1e0c94015a72d8536f3b4d85ebbd10ca48cc240e422a64d25d48e837d708661e600f3a4265257ea99aa3d8071428c6e75e316a83d9c02717afac30d4c1762aa1b33ff9722c14cdc14b269bf4435b7a52960fd8339aa90f484235285b60850ecbf816e4e10d6982754f4844f6393747fd252db53f229054a062904306f3934ed3330c51fdad477feccfc7f852e8c9e5f6dd8a8d079d005ff2e16d63be39c8463a0c4b57226dc193be2a8fa2bcfc2e30e5fd7bca4af9db6779b82cc25eae5189db5af14b15aebade45c5f571c2d06f15805dff94f3e405c4347f7a2831471feac75c7fcafb1e23c33d59636d1449dc222b86a0ad32484f1f3dec01dc6dca15199024c3885dc8e880405cc1ece05ba807cce67bd5014b12046b6678cefb50e2ae020bc2ddef5855da940abce03538e28d9de49eabfd827462dc95894d644c9acc09132187c05d975034017b2f41dbc9ece2fcc0cc98825208c63371b8c2435c4f4f5f62e632678bbaad1b93a0d4b407777a1a38353776bd362c41fe42cc891cf22b9671780251f6708ebbf5e55592deeb6367185deb2ebcaadeb4ac09c184e6c09351f5d890e56bd7365a35ab5e5fe002b74ea96b88ac71cf53654ab9b50aa503cb9d5c9a66276acbdec6873143d2685006591979add2651eada4e707d105723050c5ac8c48b2ec35cc743e76440e990c3c0854cc439e0de6499476b6cfda2bfef1cca3abbb7dde9433f334b82de18e4cb4c8b1e1d64224802a42f7a4c07cf9a5a2627fdd278355a7016b24a5ec74aac8d7a917bf3940e983156561dca93ea62a03736a1f685e54f108a7f41c820cfd03687d175f3b158dd060dceee72978378a3b5947144ae804a753c1e1f1595f8a5a9195c58ee28f68654bfbe34ea22955608ca5b5e8390ba6c36d57585086ed40b70c8a2f4eece39a243c3110e8625c10d1dfe50c0642a7d1d45dbf824e33145e570883ebdde95f1b6c899f62fcd3cd61bb6fe885591b0ee6dd2c78b96e2edc909c011ae616dc30bdad5ea683b73aa4ebb2d721ff1790756d2b91b3ad6bbfb7b2303a9f2cc8d70c284662dc59f45a2a0b97c3c812ebcc46032db5e340281a3d7cb25e7db55e9ff3ad709a0dc35ef256dc06b728203232744dbbae1dfb91e172491c613395020978d55d040e1f76f9ed8632f4b7a4d3d555aa4d81436b9b2db2ba4d830e0e225f06de8c7bd544eb4dba26bc53b8bda288fe7e2c3ce74a211fbda0faefe11b8c8e8e749939d50f3ed5a96fac380c3440e41f34ab9597fc443a40797168740196b5cd1525bd434425d8f8d89decf8eba0f81bf87afd1764fac3dfa603849907faea6b4b874796a25cbf3305951d213854a2a310a485be180b0a7eb260c330f8bc226d836b90e6f220aee5c249a0178e5317a8e93407c84751662f87cd64213d3370121b4f71c659252591921d7d3e7022e89ad7ed86ce9da5dbd73365252366fedd18f4501af72491d12a70f06ded36ca566186c61a794a8ff1230980cbe7a6c17d9f35e9d793fa2eb7a8d24ae577bb7e48cdcfb2e9364378e0757748bbe47f5b299e361d7eb96ca7c0975696ae32fa96012dc02105651ca3cb6ecab1accde0cd8a519f287ed31463a4c18250f7296b02fef41b7bcee0a6354700fdb7ebaebbc5a239624fa81167ed55716f7a55174dceec247df8983c964c1a112e5a580b320ddb6940b05d53fc629b2b1c53515f81f59f76a28cfde62d78ffca5ae97568b22d785cd0a3afdb79fd6b32fb79e0274ec3c22d1c16d42b96a1468d56afb8c9575dac8eb7bbd4058302da6a616bf3de8a17eb99c19986783ae05df1a281f605b6739933f0dff013d71e5c001dc6c1606ef037fa073f92cd52e81c187f5a303564910a7a5feefada6baf55368b5d9e013c828a3d6efc0d6070cf2a4f34dccb628d8612607ac186e410a0dd0f5196e730d87e6cef3e94b6be2fc6201f737763070826220375d038711d1974a5ad72d4da395221aa3be5d165b56fa3d54bc861153ba693194317f86518bd57071db4b06066badc1852bf5d3c330fdbf547bf83f931ad329fe393ad3a19fba8a8213cc3bb378848757259d1b6f0e0a97cfa3a769f84d77a5a90b938de95b4476efca5f2bc6562f8259415424e6fa4e4adc29bebc08ee23b10185ff65ca5568d577e54165710a66edd1b13642a976587c721e330b4ddbe63aba86a1323b9615eff47338bb011e4f0eda92c7625b7f6e31b939a32062f21ff4b30ce89d8327d3a3bf634d095fdba58fcf7c3b872ab9b4e30d35fa23b5892b4a64e4c5bffd410fc6eff807497dae9196029c0b9af41932153a388a33e20ae7b8965c02e2dd0a4dfd80027b2cc7875eac55f558858d42744eae7dc4f45abde76e8a5c6621461fa3da1b88e07d1cc1bfee9a6126f1339ef7bc9a029747088e2438c132bc33ed9a394667db25f52686df50beea6dcf27efd3fb0917a816ac8e94c91539afec5c3f6a684b1375b11aee9b7f7a69a475f18d132eba95a583dd1e4e8afede8676208eeac978441f5a73cd0ea6c78462c5bff0facfa408d214396d049fc8070ef9f7b5ece416c632b6cc45b2f6e7e72c06659cc902825eed5ee36a6dfda90a9ec557ed3c9cec266dec7117d1b028275be5d43638e39489b0966d1be5d6b30ae53a144da428647375cc6676ca937adc1e9d9567fefa94146dbd967c7dfb6c6ac1d920755098673807039265388e1075f9607c6aec43f8a20f4d961b86c32da5a8937d3dee1e3ebb1d8155266727624903412b94c36efd8db0c81ebc220ec1e15b2cf6d06482ec06d54719f8e6033b7b7baaf31f6b302af6f072ca19f2d8ccf609fef2325460d2bbe943f9bca46e413bc8050387414ddf193ba741f68183b9f47e73c9ce1a53f638b22bf74bf4601a9ba9ede679b927955ad1da3afa31b2f250ccd71c22224401f392543582e9af50ca41c2f260a0da98a77509b80ee3c0c133eda32eed14d19b97a44a9cb470f83868e64d82474a100f9b37311c66a9a4262795a9a3f8068904ba6ad1d720eebdb28fc78602b93742446e05663195f4c512c526771ab61605652bec1322b52d0d53c8fd087503970b7c09a277f676b26966169d4ab52027e5bba5a020e00ab2e137dfd3f810e25f7fb53bf3d6b3f97cc292de469bd1b5490b76546a1aede0e1a13a91027ac1159939bb8c907f6cafd1b2c80627868059dfe2b2428f33a3066f9e1c8e8907cb911f49e82bc5929932e87731227099f93c7fe949d155590a565cacef05ad420559350a8a7d6b7266f3091cd0b2fed12e880877be6376f2d9a6521e59a0e55b76597883beed859c347304bc62eb38f4567ef2b5a3272f98553b6a00f5394da30913f38eae8e2f2fb935959d93fd614a39acc774a9f4efb9ce26dbcd1d0c671f13e1ba9c570313dcd546524149a9003f463719211d51d959778052a0875ec21475de92120349ecefe1cf052b03445341af13842e915f906accf4d7b3d662fcf6b827c79cd0ecc6c5963ba5df9f854de5e5c762446b3f258234ec67fe490a97c89787f0cd2c4e685593a0b686f390d843b530c6cecf4208f86f9293f7e9fe552b3f0e36a971573531dd3082d90941e36d33b7d5681f91a23dc6a66e52dbfa1c5e03bf310f35c9e2bfbe91117568341b20bb2d72a405193af346ca5c749f64815da0cbb544a298c8bf6da5d87fc775201212492587bf1743000c012997e7eef6bbc88b4ecfdcfcf22441f155d4de27bac856c3cd13b969fabf732aa2026a94be68dc63694326a0e7f6274cde2c905b5ad8e4ac49f77aed6abb936d2e01bcffb1a0e5adfb5ba85d6c2abe94b313eec67360d90ae554d0c0848f9cc01a58b7df5b0623ffb434c474d0ea48fb583f68c51dc2794802f448807234b453d83d421e50d81211be1a24a19c0254e647a88d4421ebb7068ede3a723e035ab2871a38e7c00ded8cc4574d7dbe5db4418337432f625d912806ebba844a2a3a3c69974ca6f102317934931e1df96031524a4294e427d018687912f8455695a106f2a5439bf51ba6503f9ad5ddb6a2e1ee0da28545cf979d43d23c52483ee5d5760cbdd2f55566b6e818418e75f2ad58fc554532357799308ad3374d50ecff57cf9fd4b0dbc673dcf180c88925bcc39d68cbb834e4d289edf27dd2486d36b281848405b2759e720549aab0e4357349d661566d7613186d139a3ce3ba37b860b93f3ad9827c25d7a8321e9c1fff74b80bdd1373410dba52f6dd12d1e4a026e4aaabb74194ef1f20d42d149194c3ec106e5d40181c8f42229de6a102b62ba193087c83937619c56d675961f59c176ec1ec0ed7201ddb940b290066d76de2f33a8c55948cd2383b19342c3dec7f214e016a8a73a595aa4fcfbdc567086f4ffbb428b3e68194495ab6e519623b312681f59fb5f4892adee21616f9ec7ed8094f0461a580c3da248965e187d6793e9821f08164c01a6ac93f122798d103e3fa68d549efb972a1c507d91dfe02f6cecbe032f2a2f71009c7e4105a6232740f08dbf4c31dd75cd888f76693d75fb982d4ec4eddef703550c9cbace56742d51709aed931b66a589d74c593ed11fc0063e51316b1f51b11a44c0833328b0a947f23e1a132bb5cb27a0ba94a15e31507e813a4158a7ea87d71aef375148f157941d493057eba212556a0a47363305577df71c1aae6f29e49e500d60ec48ae5b676a24f47326fc7a7c52257bdc97355f505da212d05f17a71888399ca1e80449dfa6daec9b591cc7f99e6ca49a4cf6dd7dd65ba917e09fc411956e3ebf1a83f843dfd3599cc2ca1a2eddf1d35c9766bbeefe3c2417505995141e016cdeb7165347ea6c52ede61d3430443d891209bde12d605974afff22173d66353b6892dd144a3af153249c154085639184f7a274f79ec9eb04e1ac2bcfd5263dcf8e6e4c635b9b6805a2604acac3be46f33057c04dabb6ef358824e10f8306e03a0596f1b417b7bd43563821cd870f4bb5e1eab563a16fe16a65244a54a335ba50e75ae7154c452474c55d46a554e4c4ced3b5b6d1dfee16ebfd0dff8c0ac7e9a6f012268c97747c5880ddc1f7c6b9b71dfe358a1b9ac102a957aca8ac1cac724e3397eac88ae9467550ad7d7c775e2548445e184dcfdcb9f732caf6fc59fe7b35e3ed641cf95aa35a57fa174f98af955ecaa9da04cbc0a59bcd70dc32948a01dce3296851c58def37d83ee341f7176f894ce3d6f021f8c82c129982e3cec809d5ed22c3542a8439dbb0c1fd1735e2dfc552e74828271f687de4b522d80de3f53a956bd8bafd5d5c20253a316a042e7ea5d17c929ebc635adb71356c75d0e199b130e273ce9bfb78a2ee6232747619c8bbda107a23171c0c11a468f6c0e8e26fc02993995b8747c4fc4b8d86b7495d96db1bcbd256b60335b25373c36d25ef5717811593b12072c55163eaec511f071b30f7e1618f6af1ea60f5f29751cb53e8127fc9b5059c0475fcf65e4a7c3a7f3a52a60d96f6d26f9c67d0b98b44ac7caddc1400588c10f7881043b07511458b01d1f6b9be3bdd39de35f6b6dde856a882430d58cc69692e3168b07875edee84ce3932ecde72026ed03d1bc918dc833b2c983a3d7fb47a5db934835fa084adabeff956ad2cc906e0ef0885cd2164644eaf61977c85368b385b2c0915aaca0812ab2a28e6d274691b3ad966e012d574f862bc33aedbbc591aeda9342622b996361cd88368c77a18f9155daf3bc1ce7cb438d9792fb5a9c32664d5615e29b4cc8bf13228f3248af888af698dc503b7e92d6db7f176eb23305944734ad1df15cb71900926676e45c0b2570fa11df84047f9204bd80168c3e42d0f96c72eec3efdaae48847ab7b39ac41c7abd8617231901e0a1fdf61f79b9c655cd9da6f5d009058fa44c0fb78722ef711ef2e173bfcc6abc836e1c7006ca68406be0c6677f29fce5a4e682bd6cbb731d0eee0cef825c7cb9bc684c8dce94b32e08f59283a21d8fe09bcf41b4bbb0ab8f75d2a1824e26069ab08dc4b2db5d2f557d407d511ad15c63448eb967af0d78fb0bb5917bb44bdc1d26f4c404f06456e1047c17335b89944d0917de9286d2b235471ee33c6b737cd17960986a9942ca41939de5e422bb1784c05c753002f77f2584cffa4900544c9efd298e7344654e6c693f1bc8f9ac9e98b4245500c74e4db14dcfe5887a276b37758276a17f09f4210eec803efc913db15851212ad9ef9a26b103b5caf4b7d0e1b58454d747d422d77081c41796d6c5ab54a3526c75936909c9629c093087b7a521dc812fd47360c4f0f6409ca4ccff039d1550890f8762973b3d310daa7ecde2425e0f0ce6d54a7365015cc1f6b109c16268160bbed3c4a5094ec3403a06d963fffb38b13b40fd3ab83f92cd9d4e5f7c7b1bd807a2d18fe7c9755eede993ad726dc8680d726e6fe3ed8d992f5b52e2a283b92106e1baa3e7750b4ffdde48bd340b42041ce8ec9424cceeab3b631aea472524e774081728d508940211109a2925aeaed2dd43f7a82eb5374c66196ce8d51309e993aa29cbb997e58619036217a9318ab638c38e7b0fcde380ff8b46052b67df79ed1916432905d257d317d8508e64f5b444e976bba6520194ed87b15962f9e235865518f4bdaccf7eee61ba3d691e64b70fd79ee63f93d40c1376733a99d44ef23fa424eba70154747a725682cff3a38a92c7aba452a3734a0cbc3c490d91b2cfa475128ed310c6062324f40ffbef4a1a511520a3d209fae549726ea8ecc15b42066479e3ab96e7001db3e637f52bc23aaa014d84b7490528bc18bba7a4183004478a9d652bf0234fa9ab4b48305401971abfcf3d16c593e7c7026b2be8ed45266ef14d264eca0ec9fe679b988526c190476b89b42097176be9aa92c17bc8dc7d258103574d8da1452212347ae59d9a7ec617fe8e84ad0f72a423bdea24a7b72bf5d6712eda2fcc0529fec561b11ce3fedbde0372263692c63ec9ac77bb9b7fb09e81fbff01e348e2602ce1aa9bb6d57394395a937e44bcedf4c30ea604a16b294856d1f0a1260359f865b1460a1df00660e45267c6e59bb9ebc1adf8f44352c9e74a192bddd037880e7b7d03413fc5c7ba2f521912ec64c8c660e394a197c7498dad0e16e3974db784b7c37342fc9b41c2e246eec63b90c0babadd56da2d316df392c25af9ba88904881a0f37127cb2c5ee5e8d4f02b56d0363064ddaf0613235c44c83358e72442dabda8000bca4ee19a83c271a0017acfca9a8de1bd49001179b34006b114b5afe7040e81a0b1565a728be54951a5ff4f03581c7eb0c5ed27b5aee1118c0206091a6a8e3d9082051cf4e4c27be145a802c1527ef53914becc9cb2bf1030db4ca22c4ef3c3f05f38e04e6908d0e897a5f0bff8b6f57ad9fa29d4ae5f1277ba131aedd128c43b60e2777380cde8ff927fddc0442d0792357fbdd904112f3198bea977c12062f23e1952dd4827f8ef65e8b59cee2a16cab2f0b492246cd4e1bfffb5d679b4a03183be678f014462710e7a394614f3ae82ffa9b0142661a33a6030a826cf20fdf10fc017c08febb5d282d594d9ad9c56847ed2f4a9ba206545172cb0c26e655f6731cc57f809c89bc49f1c7fcc4a2dd580931e805170a825bb7edaaeabe1319f74f241f9e07a57e8db95084f19e5acff45d0a5d7bda32d6c6821b41d15153f318009f93cd9231e446821a2862f8672c5133fba315283870e1aa3eef52e98318f446d0dcc573fd1c6495ffeecd9b052e7992dae0680fda71a9ebec0d49e209272b0458a7df7f4d06bd32c7ee42ebc7bb7591a2116788356735174c895c225cc9721567679cd4727a77739afef2a6971a75342aff3e3b76ed8ced596a4af097be2fd1f9b4ba39da32ca5c0e8269828c96b92c2577f23ed7e42b5388968960f184b1983ebb7ebc7ff710c5f0a7ae56735167a5bd865200bac5031d112f6fb1ee47cbc493999a8f377f9cbca074daf7d10cc664a8221bfb8f879f96311ef6d760615f7e1421bc37a2eadb43956fb18487e40db2b142263aa88678dcd85f430c174e55b060054edd81af2412f85428f001893dee72a03e3685fe9f918e906a866bcdb5c54fa7e659e0cd7f532c534508087f71b9cf71c56d4bfad6a9d6f94ba4956683c8d206fdb8d319271701d488797d61387bce230573d355ee33fea183f8370488ee6c18352d1097bb0ac0ec2f5670739223e7053d23d96fd9f1a0f2018e8d099c34374a7d61499469b86db7ff24c6f500e9e18bacf020a63cb8a29ef05adea17d08c4d17fe3cfbda0cc64ea485888e805bcece73b179d5d9b995461913c592d38a839b5c59bfd1bf524a514fd51552e6763a55f962a0ddbe5174ad07d5273e0854b291a24ee0c23397203db857652166f20b106d7211b8c7281ddbec3c7ea2064e9667876e0b89efdf2faedb74aec72eb3c1e2d4a36c9d0fd5e72dde5ed72a9d2fc3a92ef86f39df4dff282e67cc2f42556f4c0a2c2163a92b039ab0832e943e993924a9fd2b98fb98b71626b6b7a828c6732d922e81651c6fb7aa99f7ece054cbd72ccc1052dca71e17c7c331fa55cec5952ae2dac869825f96a731867656fd7ddb8413750712bd6095a47c3cf805608015f30be4c770eafed8a497fcc0750367dab0dbeda6e14c5b3b1347643365e6858eec2eedc407037edbd8a33628afc41cd266b4c3f64d4560b2fc0da2b7539ac83d090199ad23173328be1c17bb522a70ec12f23c207567260466496252a29160d12dfd15b3781af21b67be5f6fe343485b63c3fa59ad6154d3b5eafd20138ee6168873e28c1f45d4e929792dc5e6223495b7ebe3ba66894401510b2508b42230eb4bfaf614edf8183772f7ad581389ade319e31fa3dbb12e80c28e1399e87575331387ccec84c56a9bb9ba8bee27900108b2a208740ed380fab91376a635e7c3da57739305ee3564c3aa8bb5b7ecf3583f6aa902d7444a87bb9e80fc7b18368ab39938a8ba9023e7151610b4861cfe15bfac2ae6a86ca59095e67290431d872ab9732e9fc916f64857ec6e130110310db06531d787cdfd4a45040ef4de40c9996377dad25d73a595dc428d1e824667b928a7b0ab1f22739744bfed93ee067cd5d15d445b3617674e13e60922b6cf710afecc4deb3283c6c3b68cf7ddbfb8ae74ade620627f1530dcbb8a30fcc3f1dbe2cdddd80704ba402d9f7020fdef717db6380bb9e2fa85a77cbf83435888d4cb775d6f367a908ee02074a0a2d5221a586289db874d6cc37ce191f1aa97748d93caf6b2e179e5cbc358d7e8b68a24a155cf4b2247f17943154cbb12a8751b949af039eaedef3b3e95fa777af33ff49d22ca12b6e175462a0197a335f851e97b0a0e904d29dbfbdecec8a7bf890b4f12daf649d02294d87954a96ca57239579aa0d1b4103b39bd359d2267c09c463f4eb53f5fa70fd353c8be35a88d70e4b47dd1db0f09e3a6f7f75899acf0398aa64b0960071c1e99fa6dac17442fbb82891f166a797f97a6385b19a166b5bd602f3e76545608c7895e9253cbc89ddb601f2c847c2b3744cd142b876283d756f1e6a8d7f8620164432ff03b36645a7b7ed8f057d4385d64065567e3dffca7b026ba90a887a9da9ca1c8ff5620bba2b2b96d8725a702de94d0cc1c7d47fae59e3d905f65d31233969c5022435574383eb28761c410b29cda3d6f4b9d4af39901602286ff84852808d9ebb371f76fc2add947eafa4806b1a51dbb92f521f7fb20d453eb9539e2410979452f63ac8a624f596fad37c624147659e38a90532a00cf6aaca34949336fda814dbd7d3ce19f67ef56acc10fb74ecfaa7ba87e07cfbac5d43bd75ee40987ee72613b9e9cb4543459386d66503202176394e8505a46f26332b6243fe4ee734ab994e127db6d7632327c0bc5d65acafc6061f2a4f4e0c588538ac583a08a46848150ce57edc7f8011dfeb33698a87912a313a1f642c9dee81e152a3afaeb17257769d651bc127e036e24055e864b56afe7312a0cf27bcd3da0fe450ec473fe4443ed399b9491bfa60cfcd439980e978b1550e475c1f8fe28e1cd1fb224e0737faf31ca915f51897557ce5990c7aba10c3356e29603283a8e94ed3961b343b6a956c9ba2dcaab87e8489b8d44a52c14dcc68532ac79d1658bfdba07f18aee5d5b57b78c836ce8a37486a784bd91a99bb8fcbc0899a2be803ae3e315a098efcefa5c30d0feb1cd726a24afeb97278ff5384f7ef4c4e870bea9cad17d6bc2ccd103356a9685a30c8f4f4595df41bedf638572077865b7cca5496682be348dc10c4cd99517ba2600abf6cb9167b4d697494d84eee0293207a401c9c4bc1c0d8df96d4270886b3ef42c72243b9348931bff79d8d3af91465bc801aef3cbf03983225c0b8c8e6f31dac7958c742b3bc29575011bc61e3341516ba5c6b03d805cd41d317ef3c443d4c77c3e23deb6f391df9b6309ce70a98ef45791dd0d9e0caa8d95d6fa854a944c74c5638758a9cf16b4ec3266996be4191a59d89e3fb7271a060b1e1e73d61f4012c27d35a2ae617765f96ea69a8ba53b6c2b8631cdb49c9e982a3f779391cf01e911317767eb035380ac26f4f933112b3af16510cbe1c11e7997e917b75397cc0a8c76fdaeea608bf24094025bbb761e153fd06592e7abe759cbc494edfb7fd1cbd06415e203e719dc899170a9a72f253fe6d8751288a9daa63e682c01770bbfad6639c62c25b24f304fb666c5f6486248080a643b2dcf058170e08aec74aa5538b3f82a95555f4c00ee582cd7c5df398e3ffd0e1f4fe382fd3616c44f3792ee1a1374f14bc58bfcd86b7314038cb889d844390ebd1be521a36aae5b44ff26bdb4cf611ca5d11230ff801185a1c9e9f64804958b1680fe9703f53d745c0bb4c031ea56f91ff946a301f47effab99a33fef60a777336397cff352d3e448dc636533a5bc6172648333b7c6dfa065f9d24159edb729574f2d9446bcd282b44a342a55d2b7efab3cea82429ac2408a897f21ff075f3d17665793412da21b186161603e3cc67dabd472e1ace8894ca5a18c09ec161fda08cd13a37124b4de004de650b4187c32770c886b53430633c55f784a4cbf9ba377cbe7f8cefe302da949910f892a3f0aa5b9853500b084a4be0009b1ede7281c6432ad3870ce4bbaffa0ed004e8fc01f7df179624574b80da38bc88d42bccc81cdf00a71402e2980631a01f3598ebda65dc9b37e3b6b0c65f2eb0a377e8a1040064d8fffa25106310ba3b62ff762093930a7eaf1bb69132a58b1d4f70b2d0794cd8e2b227214dcb50d997eae6ac9adc84f36c0cb8316f1d9c658abd5b7e6ce5cf4eef791bdef5436e82a1d7eb577ee73ac2b1667a2e28d22329f27561aaf240e28cbdcf844ce09912130d403d05bd08bb6c09ab73e61533472e357f3564088b1693b6991523f1c18c849cc572f234eec3b0d59b6bc419738dfc30c9440394d50f81b7e1af3fc783b65925a4ceb60ec7789e5ec6c2114cf8078794ab39ffe2865595394138b2628d52223596c699943989177f6be01464d82dbfeed518897f3d6cf99b5699592bd600799278e8fec02c6f0b6bbce7ce1d36f3654528d5a18bec79562cf998e7d5d7a2d3697a4bd606da5818e742f621f1421e1ee54e6797240604c0b78da4860543529c0ada9324041d214a5075ca5ca01006ae146a5783cf8e848c7fab36fd63e6a06440250ad9fea509a3d0861c69417281503e40a0a87c79a627ad3bc952fbcf164f82ce3b4abf5bc42a4905e9bc18aff544fbb45c7d2002b2007bbc38032e9393e1ca85f46a27e1793bdb623dc20fce5d8ec3d90eba8232dcac8d9e3a310d808f971f52f77c33ceb6a3262b72f03438ed72386f46d6804ee9ef00c5805bec7bd0da9e5f73a049913f585dd957cbd0bff25b5a76064c57b71110c131f28e92bc0da4150be048c5497164ffb769683638d6b5615e535809e2c1b2e60d4f83716de384ab18e57f97adbdb118619cc23d54eb0b4d756ae00d7c91a7367eee5db8c6a8a4796a105a290fd5768781412c2ef100f0d1a9779e27e3b2cbabd5dc4bdd2a68865e9caf01ccefe276fbfb2f01eb2f862028fe8ef6b67f7068af887deae9caf8140a0602b8b51916aadfdf797e621a4acb27c24d250f6c9ca99bc75ddc9cfe50fb3fdf1ee15c3582a25a392e6d84fe4317b072831a795176e6bd94eced5e3deb1fa2aa3dcefc03cedec0a25f80e0f0c38cf1b571e936afc696c3e1e743b5074361464570385502df39a4f25e895e658111deb430e97a96138829b4522f0b662aa556c1d19a0afcb43f9ee170b0b0d0786fafb2d1bfee000a53f62af9c9e728d59baa5206bc88be507a324d511781031eb4aa10b8ef70c603c7dfcee0f44bd9730d128b29b93cd4e3fbbce4cbd2fcc5cac48a59be9c6cdf8c74a8486cbc38e3937cec4e43f6d448845e2e0c3e9750abe464b666e7eaf18627d427688aa6f1af9755e801ceadc319bf48a9528780949af8e760f7e57b9c7799ac625c055dd84c1f596f5f1a49ba54859ee762c0a55597125caea822bcf19508b21765e0d3d3f0f285b1234e750acd0a5359ae3b4f606441717b7d8c0adcf0fefa9d4332949b003af5ea5b20c839f2d1e4ddde53669e57940226ea27df62550a390ae7685bf6845687eb2e4dfcc49db2c857aa84e5e69f3237c40ef3dc0497f9463d0f4c294d8f6b9485414a1d68a3b999406caadf3c2d5b1556b544c5154fea1aa4c2dd4859b4148266b4357ac9bdb16c0ceb1bd771b6133b4d9bc3dd9f5bb57381fd2847c5077e19625169037ea6c617edbc8d5db97a9a8e1efc74c040f2a637a2b417274265d73c58aa0088fcb57d05573c299ffde0967f1f100089fa9b0a03acbfa67bcf6f2489c063d58a2c403eff9fac89101053c32e0ab87ac384a3322b1c8747a9818c6d8cd8a7cc4e94896de0c0893e6d9552ac6dc14125e9baebb37cab26f14153c2945a0e4917ac5e6b82c6134d9e1d6ba490a5512000e01ed7cace0110c4745c6b022758871afcf04047f2d949e6306dd85e5d4bedbd512433228e8e44b1f1d25b3cf59e48e1298fc0525b17562ae71bee332417c5bebc3760f440fd46a37c18fbfe5c21bec8cbe8842a4fa6d69871280bbed7591c6c72d8ebc7937b4580876aec08b6278aebe5ee136cf10d04dc3759706eb3d82e8e913033d52f08334a8c5bca01a1ece95862ed49feb6108ec922980152bc2cb99258346a4384347381e1237e2badce6591cbafa5c29c0b4d13626cc39da75398540180484a5ee0a0810f85bf5448dc0726797998fdd6a3dfacd8d07b16e530c2c41699c5edceb6c8ed7653e254e0c2a37139cc94db2892aade8417e23d4212a08a1aaacc4e215b38237c0048cd8ca312ba4e3b60a15c65d0e621c848e219a2aa9a41be0adc978791b3935382af98db56164dbb584498ed918263d06a2e5bab8b0929ffa7542a144bd58f46390765efab752693305cd8cf741d843e894d67a06d992f563eb511c17f54ee319d96990f8adcdb4fbc6becbe783457ba4741be0db550efb9eedc16525cdd4d8f7513282ad41fbfb35b94592786c9a1bd171af9ae930360e2709cbdb06a42f2ead0d84372054e079791042d9ef43a8006c872c1f63c59538a64a4caad1753a1ab3c38d39512981330c57c9374c9c0818ce9f7af8f42e637075caa08fa7c8f666e1f8744c0462f6a1f6d09c7abd7c6c7934174a85b4ce68a98037ecf30e4f8ca5728bcf00ea4ad28092def7f2bbb60aecaca23d03efe068b26cb135c251a8158274b5d20984d56e9fed5901c163f3e0b3c692450cd86b07f3b746737ca9cf6dae2705214daf3196b2ace6cb28ccf0b814ef611a4099037e0fe985bc923101d039cac16f177dd7db8c39d1a227fc570d4c6a23d22d659f4989235966859a6efb306577cce64754c9b8c488e867ae4bab78b0d0801cf57915d7e2be3a907276ccdad12cdaf52b1272da7412c92c1f829363f392363d86f2b1c959ff6249ad8e76bce5cab813c3391d61f0a753f5fcdf2e4c17ff9deb42c14e7feff8121125e98b4cf8ed1b9b9821eb5d1acb8238bc95df48f7eeeb6bb7b1026f401ec3153b3308a3c79daa84be79110b08060b00a8cc841cc6140253db9ec9a76b6737384adae87622cee748f2bbdd981cab3ca5500d371e16c25aae903a088e2221147786a572832dec01d7bc07b2bc8e4d13dd7a9eb459eeb01c6c84d886e81b01eea00a846ac939dd29ef34fcb97ab75bd2947d53047d0b2891061c12ac54155c9c767d3e185998a7265d85718758394dfe938953213fad35efdff6f034290539b7a20c1e5d0343b2abbc5138e7b8db83e2befa414c1ecfa317e89fd61e4b28eb2f0dc8eeb13e7672bf5d71ed7ca809b7cd599a8b95ff4804fcc201d1609a9739c7487af27692d2ab9a34c278998c490bc55a8491efc90623d8f00a2c62b41b97d98b3fb23f4d1dda4c9afbadc195d219f9baf127aa7cb8fa5bb36598b8f10b7ab97c72dda2fb1d61753a256e9cda571a746f2ebc6d4eed077a4aa7c9a267c73db5949d07b3cab561c1ffd78736966fa50fb8e735e294500a5e12f960d4ea0e4cffc89fedd6f702b345209e29bdc73db1c83cecfc7ae84d033a9abb2887671c9542b5a419509e9f07d288cdf453ba803abf76deb6d7cfe4916771a19a27d73c40d875b6a29fed83e0ad829bbd75b1f2a54c65d656e311758f9965402c895d01a2a88a05448fe71c124ad88ae97649d21658824ac86ac8a50908fb756fcae0109dbf1637f890f2505af83a6291ff7444ee5f4552700b519d4897e62ec07904183b8bedb05170ae14d5021ec3326a07cc303e5347c2d052db4d77e4d068606aa31e48253f7913258d64b815a12d3c91e3d51b2fea0b99222cf435322fc1f34a297e5b8ee81799a5a7873283d9a2ac36394799c44dfaee28180b8a3e21c2a6a53bd6a7b6b89aac346a651e3cba6236a6048d3e89dfb2e5d3064259a36ed7a5b470272855e7a2f6bb8d342d3c9c756fc23a82e1cfcc01cf83df610ace7300b9af28f70024f986de2006edb39c7ff6e866ffae26100918131c348fee6a847cad6a840ffe4def9e6d76b9ddf072267483263c3ba73e33e443394df0d9e9ee108799b830c99b9f8581917465a6b8db3d12e58ecc7037fe590aebf9ee47f307049bac7734a3612872cf85bfa673907c5d626a6e77dbed3a42b3b664e93a447d6142f05509681fdca408ef408de7f7bad7729f46fcc39b3a2f10b2a616bc40690c44aba18935a3cb2ef41aaedb536eaec61a5a847fd53b6fa4a8d337a2994d9bdec37b0348a0e15ff53d67b4252fede740bc8cfba2a0c84793edd4454fae1db9c600d9e51751d01219909a5a9e1bdf295ae20476d82c631d98a35ca53f08eedd2adf76bc31afe737e0f295db39ba230715ca66fd161e853da1aac30ae19fd79f7f3851019f2bde6a118bfc6256598f04d740d347a1795907c4694928424bf196124de58d7dfaca32396537bc7e1dccb97d410462168931824375b3eb0e6d1a4b793378fe13fd2e235914cfbefc590d422e841088c78dc0de4070405188d7530902c4b4b44ab7e57fadb5dcefc7201d634ea783cb394911f747a35b710625397087ce5e4963f8502c543937290b91815d9ee5721ea648fd9c224fb81192106e4caee62d1b22457f7eab99ceddf5dcbef45885710bdd02cc50d4227a3893bb35b814dcd54f28d62db4e2bbfe89f0563e37c1afbf49f19fcf500c117a435366f435af3fb1e0b9fd42175a7429a7a388ae1afc20df03034d9a84eae99dcd93b2337b9b13895b415b7dda42787f1426fbd76c0e4f25ed3b25da70cf0d9a6c2ddcfee4f9017be69fcd79cbf75d7720b790e35208af32e3c3a2df7a7543a17556faa0956e245a492a80d65399db348a8fef37645cd3fc5b0dcf0954903a6b5d5b777670ecd97fc48ec323915e50e5ab09684ff5d101c0aa3603fdb551aefe15fe4f93255864bf4b093a4e124f8bbfe100b9ffbb2e2e608454eaa6481900b20ec4725e25aee99d7160cb68f83b22a4fa79995d6721991341cfd52cf597e853fb9a7ea36c7d8a902e813563e1bb57ff6c9e32e6e9fcbaeae64fc76c8c9750973b8ab90248c62a63cc552045a940520351e7fb4f7166fdfce2f673a45e92ac7b788c6fb05ae23f9c329457f2bed42d5b19eef5efa1c8b87f35490ea7c823663b5606d291e8b63e0d8df3917fea9c81f22ced133c754561a5c1202af095a6726b4399e3456954bb71f5ca219059ca3aee5f197e97aa6476a7acb084daa7cd6554347bcf99fa5f70bd615090c9d3f85a84815ed9c0622192afab2e36de42f5083b3a2407f28be8fb4bcb3590618b56fe4d3a6dbed8fa9140328c16b8fe0028baa290b9155d931fc120200898270790cced017ccecad7c5596b578f77b002b0f48f54c127e7127b728dd97ff791a017ea684aadc9a6ad4afec46e0038e7c436637613f0372364788a8bf95f4a006d4fdae8b130a61d3c852ea619b9b23c95f6ff3f33cd594f755e64cb0782be964acbbc2d2abae3cec512cb6a6666ff5e7e629b2c83b0df5c468082277d36cb90eb6ad9146cf882e8470c948057db035932dd99e2bbce0f9d80fc883bea149e8fc8e7a7d1c620781d6a011653a213016d7d8ba9f16d5129a5a87f963458ae77c985e8c89a6d5556ac6e484f355acd8716ed28c1046bad55b53fb142b755f40a4a1691e1fcd884ed004ab4e50b1e1f76231a693808776fa49f9fcb62c08d54570637a08de5fc92fed3dd7953ceeda901b5f2a7203c07b060ab8f482476c0450e68ee174d61efac9f9ca97a898cf282e8a71b4d688e6fc3c1e2435c243547f51a6247806c865e22fa9fdb8e8bdb73f62ebaa46db626516b04dc0bc8ccebf6e85a9290b1bee6d940ef6e17c27df1c310ef0a6cf291d7bdddeb38da38c2502fbc1d621efbc92aab1b4b3e3ed42f69d139f28a374f28a0b4eb497a86efd55cc0050aa7499b77377f987e0405d7bc714d76bb87eac79bc906fd3e2aff59be8f6fc37d43b98bce2685e7fe1cde2deb3a1bb55a4c0463d715109fe3a6b5268cddfd102174c9a7a066bcfd57d2a3370c29b9dbbce58a2cd5879ed90a370a2ca289e97fd38333bfa994e417cc2cde8c48482642dd03cc8100580cccb6a62526a9812c7c8ec2f983679dd6280371e554481ae1a5a07266ad291a1889c841706560cbf3d3556dbfb36eefecd49e311c4a0857ca402a828050ba158e35a45878320ccf0536808e3dc7743f6fdda869b194f83bf2cfe0f24c01b1a6e894a88c07a96f7ca4f1d149bd094f5cff7fd9dec80638f40bb0fbe4a619b1aaa97f48815ef353a6fdfe3ca6ab8cc4bae96161cdd4b3c31104e0730ebecaefaa0fa2d267cb9fd12159cbabff14931a8dd1164cdcd62abb97de343e1bbd8bd0cbe6eaa25f7b48cf28e3f9e83c30a8e6a640effdc6d7b86040e75365e4907acb211130a62fc399c71d0ad938bc6182e788e7637c19b3dbb4429b25c1e0a117c646ab477fafc9807283a37334832bfc1eb5df84ac8c0012b90e157552dd8c1de807c0a8850dffa88fb07d509b62506aa4b0500e85510f620c750edaa86642535d6cf0b1569ce80a633de3466241a95d819b1c01c078bd6f9d4ccfef52801029b25ebddc463902fd69184d1b3fb8e50f8124112c6363d1a330b9f017f8ec14d9519c93f29f24831f7feea3c154d6a59c3543656b5384f18f47a919471fba163f0c3833aa4849e5195a38062b7bbdb3d724d7f9babc80560c2dd224e1c52cb9b8484f732ac799a62658e3dfc70eca25083557810e51290a95e984582bb6514ceebef3545640f1cb5fe342b9d055a5b8030d292977e40f90dc8f02f2e4f1388af811aed3201b90af76d7782fc5f33094669dcd8b92251d821d30f8a1484a0333b02e55d3a8cd932642117e7b60ce3f8cab47cdb63f6c90dd9dc1506f93da62442612063906d8ead9ac9896d96ef69df3e67870cbada3a83ea8eada192dc482798ff452d1911d369d7555ccfba0a3c1e54a3d2b28237c5bffc628e3876b6cf7b9533cb0d86bd99c1fdb1403bde5803d5437cfe63d1938fc19463a5941e35d79d7c195c5a83f2e121a549e499e8a4f8fa3c35f57a964a2188f03a5afd17aa633004ae47f53b3a3083f45d26c1fcc1a5b26d6b680a805770685917b43745739b9f4ca4203fd3a7d0497d485ec7b0100975785cb86805ca47945baed391c2673cb58e68808bd61ae129f5935332c38341a9c2be6ae7a7c9a96d195bb86ef769d75c4122db63da9828cd9885ec9f1b74be71844ef33ef33fb92db5574a01395e54c9673412134d6eb7b6a42196502ee18f35afb201d35d10656b381aee30956c9568baf8d310d3456d2a5899f9081b5395c6f3a43308d572d9ae38aa621a00d35c55e6f83a2e9d5c7debc7a8bb03dfa6a62fdfca09f014e66d3738c0e42a022b4c40d8865888b51b47d06faf18e4e7f52046700c31e1e56dfd23f659aa4e5f5640fecbc0ac378bf6691639a45a3cff9613107777c32c8b55f3bfa52e42a4194f35662c5ff275c6291f1c2e2a607f04ac61bc7afcd4eb9cbfbafbd8ee1e9746b1de8b16348864fe887462ae8c26a01d5f078acf2e26bbfcde5217e84c9634b0d8eaa6b3bf2cdef0d9a7aae1f970f11408578fc8ae9c59782cdbd7e33ae421f239c473bd21b3f118a0c6bd371e080d59ef2856cebcd84ba28d8ba0ab9db3420765295b2a7671c9ec022fbb9f9e1fbfb97c623b79a0e6366ec4da642ed046757c5cac4ab537c4ed4416ecc689fdbd5cffa11e5b36f22d87166c13c71f6540acdde7d4d41313c5a7a0f57d9a9269d96f8273b86a5ffb8b92047a19b6ee143db04414b1577e591b149207acc7b4db2599c031231453fccb06e800137fb8c727d964f5aded05b428f23441ca05c6ab650d7557ce0e1c0696f082387d50fa589ce8936ce39552d2257ae22bcb82f00c4bd664b7f1e8009ead200eb876a0df0eb63b164c56cc0b8e2765f2c1dd6e69d8d229f9d150a8361a86caf6f4b10669738d0568bca8cddecdf482854bac242e2b8085ef689709203a5f7f8c95a14042cfdd0cf3668ce33ce4f748f0b8f26c1643ffaebdccf08f23ad7ded7e2b42ee454719ee329b98da1c287dca87c7412bd9d97953cf0417fa70533b3830a17efd4f7668c1a5fb6fb4457ca9e030fa87d08dfea5ca73f36c430531f31c85906184d86fe621692a356ea44e0821444f863dd652eda42dbc8e0fa7eac02d365b677c69761d28adb4d87b993478a5d1ae83cee51afce793b80ca953e8aace61eb0b6d209eaccbcb37519c5a0f347d0fef4734bc144e40a6f16f9cefa72241a932670661044dc7a27a21cd5b2d4c6d57677f763fc31d34e65917aa5e03b4328e29eb5d25434ca4781d13006ed2daa34d6005e94e11ae37ac2b80f351f263f946546be657f87a8f4a0ab5e91c2327d8826ad98f3b39dbef5f9786d543e63af832af2f9730ed2718df1697f968850870befd2be34307d8d35244ece30797fed72174c2c517125ba36ab1ea822810bdfedae6c2d53b48a5fa718f7492bc34e5b119bc6bda0b22777d1aeb7865ebfc7b97c13fb3786148f464a059577a7aca83a2d96527fd2ca2ff8116bcb2973b43d4fe289ff49795b37329a1ee7df03e671085ec9eab67eb6b6efe9d4f0cb9947ac434a33aca7bd63863ec85baccecef037dc58f19f531c3355aab04f92e840f3354c3a66b6cfeb49f207e7371f159b3ebc651ee9173b44ba2f40c447d842a2a3de1e67c200045672fa9eed659d6441aa0329e9b9e7dd7c686bbd52f809ac36872317c6280e21dc0b258048250ffe967388e38a3355fc1a87837f5ea8463ef4ff73be38baeab3526a0e3f7fd4f2094b62a845bee1a7e6a4e30cb1bb0fa1b4c65c206c31138fa5dc23b4726bbc6078e015a15e4787b2e88e03dc10cdeaed397f49a66d1edd2af8fcfa9ef0001d76453f1fcf555b58858d9e84db90f24390e7a62d5e7cb022876ba4e309bd2db8dac9da08d64b5c9f9529fcb409ef6353a4ed3801ffce5de2d56d11bbc2133b6daaaa628b5051d57df9090e042a3fadadc687974347ddd4cca65c1326d16837d3d47fed4ab70138191e27d50afbed0d6b615a71f26035dc034def095fb86bfc54f627726623cbaa76a0a2c6838cec781f8d1b5bd4771b942244ae9eb58772eb7ec808647e0ca54d18e2f45f9c7d0e881fd988f958c1f85bc29b90bbf2d50dd4ff83d915f60fa1d59d42f3a215c7c81a558045ef079cdb2df022c490ef6444c232b4f6a7477eec67dd4f6b04be6035f8825de583ffbae6073742723c91305cbdaee0d979fce3c3ad30e90310a3d8e349ccc3f8847227fd931e93f6144b44580561462c9238c9327f47dba6dec52fe025adf9c8abb5ad9697a62a50f09095a472862b45e1e88124a6a353cd7b6b1f8864f220f6a94ded52366e4b755832d4e4678c56ed193b433ba18cdacd2e425422edb051aca47b49ea07d69fce42beaeb185f6eb16459b4c14ce74adb1ce8471bb7b4c96c1173f0e00ad5717f8ecc789404448db925b0fe3f7582babb4ec91416a68c1a5746fa5c150f350bf885b660b86a812ae575d3c36070fc2d18362f24ef70c05da51d2fa6ae43bf2ec22230dfb5851ccfacff2fee99d5f8ce58b68d13d9769bc168261728481e4fb5d74ed47a4b631bfe216a1559ad9ec035294a8edc8e98e0664c4c9e5aff7dbab6bb7e0afda69dc04ab6936e59b65c0794a82a4ef8e781720935c80468b530258540c56712d13a462034f547b5c03804c8d69f6b958178d47a2a138e1b7f28040b1c9a27701d477154bc332fb8d3525358f2abc078603c6172fce9243d5401c77f8c55e2e4f816baaac099791cf642eec3c52e19b0eb672b53ede1bbd6f4ee976e1da56277dcbf7812c5faf7582c4954edba8722bfcd23f5583f51dfe82f49dc33722b1a77069a812dac2a4d2632452ad0f11e79d14528dc4f167a453755b7516f5453ecde20f0dd9223d7b96ff5e3fe70d891a939eea323a232086f2cf67b7f79db704689512c581df41fde758d01c1fa5438540c3e1ed4d801e41c550b00e460b90916f742c1cb529048427370327576a9aa8d511e9be8cc4f0c3bf85a1d67426329cdb4736f9ad7f8321a40e4b19524eea5b3694e7eec8780ffc4698aadc04437662c15b5a7afac950696d55f3dc0628edbf9d67f9d7118d7d48e831ceaca1fdcecb848ede6d0da381897fffa8d19976b2b5e3ae6ea26d1d8d70dac83b6d21e62a0c75c5b2c535947ba3408f51e480abbd5b7ad9753e803509d156b6637b24ef74156e695707f3c901da08c9f30499ed559f1fb6864ea0a1045d6851942636e1b98c3bebe2651ece766030e3bbc8229ba4edaa7de996b5cf115e194e0fb7bc2df4922801b8ba39fcb1fdff3c4ca4f42ff9388b8ce6b90b702f1d540133fe1a6806d70573daf70c6855ffda270e20e8d42b11fb671063944ff2b38f95dc556750b69d9343463201b51fe46d45047a55f3c7b12e33e343d64e99c201a225d432b385c2ea3b9b0fe7aa28cac495f00d2ed43bf36407a6f8fb2b6fda1b7869f0a2a18bac0c0071d932c6d37255ab979ee2e25eb366dcae9d128434fcb2172288873c33c1182203c2c43bf2c8845d481e152f83f09d065276f5bf335ff3726307dc0d1e1bbc2f9b89ab59e0e33e89a6aa2e03976408bb24d19b07b9e66404d83655b081d749569101f26279d8369d8a07b79ccdab9ccda67c04f892e1e1a8435b951a7548ab1b65bd39e6f0740e4308b963d329888d8942ee764d3f9afb69ece7d6db660d14094a6335a56d830b43ddb62f4d44d37889ea8920ff0cc43594dd8754dfa787b6e670b38a26acb0b09fa2cf4f14ff0b0979f44805cf6bbdca361ed7d182530f649a8ccd04a1790c6e8db328af176b24dd6481daa1c5392160ced1ba3566ebb0110edc4807b5e1222827926f224a671815729a96d1b8f338d4900ae8ce6af04e01a1a355e73ccad3c2c2ee7a7e5325a1a649c73cef80f2cb956d0194327134fff874b9ee9b3a887ad83eaefb37f57f2d8c95aa93a21a806b47fd8a3ee9c21664e6df8957344d6f3eb46a255e68cc4e642b7e7102387776ca77b83468f58b9e2e67dc566900127fe716cb066f9e3994f96a3946ce78886b4d2c266aee8888f510e219c0704012c524df666ef84b2138235afbd658fad7238e068c22d66b055b2c77e8003ec72d90b661a828fea34cb603b46c04c89da34efefbaa7f49f1aaf698483780f244d33335734b5ca652c7b0904ddd4f066da75b5405fc91ac745377f78a6ee97ff947da29e8d0566041be3c3f441183bbe19f21cdbb73a035be39ec62a3abb51a332be3c1e8cc70b5c700d6f648783241ad14f1e5ccde73e7fc84ba799cc9c695a273cfb3803b58f81a44151491974667c32b034fc5c4762e91186a06e530f08766315233d2d8224a0c770abc7285797eb9bd45931aac98983d9297c863fff1d38e9c66323647a0580e0b8c62b8034cb59b1656742c751d4987c1d30ff2acebc5bdede636db81822af960d0f0808e0199bfd3a5c5f2f6b7fa2aee4e64de2c95e0cf76cbcc6eeb72ed928d2d244f656178a60c49f45cd0133f2f139609c6a64451cb90a6e19eae56c0b16d9d18a5f0db1d4cc893c5dfcbe8773949df2f0322a8e14a23cc504851a6f8615fd220d06b418f17069a0d766737f49f75da7d43b0d8c9f7c68e50d968013b3f2f8481811f8581e1122359c834cc23b31f2f793c0ea5175aca098463d46d50f685e2fea619107a28fd38ad73ace5f6b8b470296c9ddf6f4ff844adc9c5280f85ce887e80079cbe2ec6b6193b05357100746e88827018145fb37f3f2070fad8e8c170fdc5851c9e45309aed799d8ea249cbbcd3947fa24db54fc8cf5841bcd3668420b7d7eea138ae2b5cba51627c9a1027e9ed868fc7e81b7e6ad56f0b7946d6c27019c2a9311a4d19b1a405e24e2bc920846dc57e1ebd00ced11ad7ac0099258f78d751c1c049118cdca3f82d3b719d960aa77587db3054d62d9c0acd70d086739c5b0b368f7fc2038255e9cbc0a5696ecd8aa877bcb44d18abc00420047e78a93cb161a1f2dd0f287718654f99fb7e5b487dab9d1300b934c06d0569d8498ce18e0767ec18b9aa18800977bdfc2536b24cc1d864ebc454448c44633f94bb6610da9982a448cc8031aefcc35058945c32a3c98f81cd5914aa6c83127b8b3af8ee2943cf2ec65062014b0428a09d3382b5a053402b68cac3121fefccd1241ab4794fab2641bbbb751f14841105140cbab743dfc72efb323a11b197326862a8102189a7a3db22fde43575e52ff0144fd68fdc137e481a2c5478c775d9761fccd96528b659dbdaaab1445d58cba202eefcd8eee1d8cd0ec479d9706e786454ec362a43dce13defaa31789a2299e06eca5e7172f64795026eb53315afab0215be44ec62cc857c30aa8a42d3634bf27a2d44e12dd237339120a67d03c6a2698e73f487ee869ffa48547b6f84fa0bb16aa40b00cd8e267a241933873a48f0a8b17d480a070ffc56cfae1fa20ddd0eecb155d6d42d7046befa8cc1071602bb6cf82a472bf786e35e836fe64ede1275998a6fd8d8928cd3c2e7b3bf185d087d2e154413d8580b21139974f6acdf8e914170756c8f47c43247e05a5a41e85aa7b30d6a18a907751aaa0930bc4f331bab6025e53df37bbb44c3e6787a8c7a8ef7d9015ea9fd81959b84af92de3829ca5735df8333be87acaaaf04eed6f6d9861051b5f3f8bc6420378f80542c28fe66f874daea69da2187bd4373bfb24f359db9326fe8f4fcd7636035b5d8931812c20d3470d7c6b57917b1fcf9f991709b688c483f760d4da4c864ccc44122f54e26a48e99cb6b9884c0b400206a35efd9e7a675e20d48ae3013faa9ff5fb4147ac68f70e5dbe2813ac8d7f4ce4b3c0415168883e7cc6b0170ae7913579eae936f885a92f6c6748642518db01debe1eb7f9fa438a7c5365fd1daf5632160af9effdeb68a3a050ce118e4eff582b64e070a516ec4c0d2251029ef520ceb1ba82e3b192f11ffbad8663e51f16cf3be8efaec42c7381fa159e4efdb2b5a178e0a512411173261cf89046bea4d0da4836b39dde3edb1acd1f0220a29983a21a7ee183a919ba930af728146f11445256e5ed34a2d3a7f0a17f76a4b9cc244b68f5556e501a2564144f34576cbb8288392bbe6c08d32e360c7b2e93982868deeb0ef84f1c3f98899d5f7dbfef5c9aa90e00bbee22315e34bcc143e69b0c47ee074fa350602880f6b5f5498c8ccbf3640dcabb888993ac58a59b65d74f6e1edd748866e0ecde0b294c92785586383ffdd644d87a2cf21e7f541748e4509e2318ce85d5f604cdb3f2ec1a0b0653a0fd0a444c01c65c6c4c6f59712a1b7706d9f06017a9dd8d16529b45556f00286d76b9ee88a93d2304696912d9393a3cccfcc45103a7a13852a686163774bad5c65e6fad82c18441c2cb6fd8714ef589497d1fe80ad2e80c298fbb5d1c36503901ea941b664c26df1ff0e4e111c43e1329b8cb02cad3544fdc83eb8290b9a07bbd7e29fb3d1b0f9e38df8e050bb85966260aec035985b8133c7f0c8afc9439d35d4003753b96528cd58c933aa5e90b500b73318e16fec017f4742e5bc4757c94cb67571633ad87aa483264bcf54ff7ab39eed5365a859de2f5652c389bea23e6abf6de5f7823cdccf62e3fcc599ec1fae5ad34d8f05d4aa743ad287fb3e274b0c57d919e799a00d52f3f7415db76b2f3fbe33b229f14a47c01c1c8c054428dcbd7222c3b3e5b84c5312935f6a7adf3a449e8d54ba872ab8a6540955498f32ea42f4ebe5c71ac100886aabc19c47a01b6b3a0a49a7006c4b3948b5025927d4e00be18df5722fc6a2f27375a343a7b1b6c8d73b980bf63fb7dbf55e7f55d38831d4f64398a536fc63f44e769b376944e8a9f438d9d3a782bc63e0b5da0698029a9dc4bf98a9acf718b93155701e5f9a00e5b4ec164492b6d908a083b81bb5bf6d65f2d316cf8e3081b285cd5c636d9b8276c70552c0d23ae073a7018bbe06acc891cb3e12b22b29092db535b60b533de43db4ca4495293fc1297401bea156da3fde4b9acc5788a58381ae53e3a05a7dc87691b031fd6937dbcd27a93bf96333b9fff2aff3f73c808114ed1dfca1e69c4ea283bbd89b9af33896caae8047894e7bdb3bfca217cca53ff954f0ff869e52fd94029f12bece0659acb15cca95ec33dcbf894be0dee9c7c691eebd8e4a4ea853e2ae52a030a0fcd9ceff18df387a08c59d1dc63e2297977bf6a2e1c5329f79fd75e4193bf781978afc6c2d8c740af9f90963cd710e4a871c29c4df9b9ee8885cf15897d61d29c0fdb251a3f43ec60400c938bf0cce9fcb902616cfdc76c16227f47dd6ac988935c06cb95120e68b9203da3cff4950645d7419bb6a108235addca1a27ab4390b54b864c01831eee34ee94f8600feba147b5cf1217fe850a98e97044cc7152ee755468c416ca16624a7025fb7995e40e9e47efffab00922298b19d5892db3fc7b1d243e964e622fee1f7305a7a56486f0f107b03d0b5362f2c4c8fae27859cd2e0d3f9cde6d3e32a1873d430f8881e4fe69591ef9dc96e22af90e92b44818dab5634f5298c6b0e75c0061e2c462f24fd6161d1db564af173fa46b4efd8f04fd674a5f40e80759238dca392fe6db38505acc5db544305f302999b7f0fdf7a9b489ddbb89638dc4a4154f9b7a8619062b985a28cab4f95704aa763e027fd19f38594a0249d5a9b4bbf6b42b297a8c0b645e77db299a4fd1c1eb71fa3d40c0cca984df61a6b9da36e9eb3c7861a1e07fe440ae8cd5f82f03bab0dd9bbe1fd0f3b22b23acc9bde9cd188c454a51302c3c0daf3ea23a2e225fb99aac48a473905543392ab5fb89b2b0ac929843753b824b32eb6caa2147c1a565f76bf94e039a2b7a9369e76f4f899c0680a1f9952c6988287ca3d8d28e28a89d0f7231dc7e2362fba3c70324c5b33ae6c33c40d6332fb12941790fc2694393e4a75f766018598980304af12bb463b030caf33ae0740aa538c6b697db57013fe6d7000d053fdce200761ba31e63d1f9eea584633cedeed671bb5bb6d031d3135edeea44c5c9a4cf8e86bf957647a48453d2c5ea5b6dfd50df6e6371e1f416a6c5203f3f3a1d7c6df25ce1a1f2cb9da3f3782e522d68a6b51ae91d605babac404f7a315d954670437af6d3a8384784d8cefdf4726877b2422f09ccbfa5437021befd69b94b129abce65cdf26ec00f65799ba9187da06a2b00a0bfc67ce05607d696ea7f2918d5106166faff5b3adddf71cdd65ae5c72050f84bba7adf1d97232d0ae8f6b253f9e5398d1f12e1b9047df190def1d6baed8cca8b14b15b8d642823875bb788e683da2bea7359a37bd18643c4506c22d55ae6a14b578f9b820c3bc07a74cc31094c92b793b7677f1b9fcc27aaf8dd084b37c113d8b34246586b317266ce4ed933947494a511158d773541449f3ae9987c8281b7bd18341bb05cd439cb3336ef98e11133782b467a4d825770ed165329815c0cfd6b8574ce83c521c710ab54b5fa0f892099706fd225fbb1e077afe8ebb22df0a8554d7b5a1cb6b79aec5c63a1a459a8896df09c024fbcfec1b1afa935136494afbbf7dc46c91c9c881282a2a4bbebb9bb9d03e765c04d860b6f6b0407ac750a1bbfc04094a0136de6d08e2052141ac2ce433d6b6b12c1315a99645a94226a58f3026ffe621cf773ddb356e882cf5fb688f19e79ed1644354d774be14e77cb1d8838292930221c08ce6cad93d7cec72ea03db60b4d844c0da4480907ad7644d808df3671677a227b531731fc5e77aecb289eef003a077fda1b3cd2e95fb1dc4703b7f862c5968fcc2be6873f75ba13a981dd0afd8cbb41285158e78a276e80ccd9f16e1b51c54f087062429126b88791b8cfd6b90d37d96964025603d3424e32733ca4836b159d4ba03eea74212632c880c5de96055eaf1098c49d6246001691f913584eb5ee2ad8a99b1a6a48671e006a7c2fa82728e5164673ccd02b71441ade1b36e8f4b23ec66b08d94ee093eeb24e1d36b933e32bc8b02301d44731c8ef40330b40f6c46a6d24395f53456d93186a6a6542ddc33652b928703a5d1bb8c10afd78429f424e67ed2045d1ef62d4d35465cbcc806a91d85882e377d0498d2debfc1761c57d335fd83364d3bcab029e60920aedd0ac3541d69b58d351f00fbbbeb305a4db221d0ab0ae6f9ace85d0a8b628efc5307753149c51888126e1accaea2c93cd362757f3cc0f8fdac77830c8be11e55f5dabd5c1938c7618cdf1dce8e6b7aa174c459ba57d9055a36b10a592409e933fd9f429e6b4d03855f9131962a2fdcb842b2e95fc6820ed3355be25a79643f70c67cc56dd5a1ed8dd863d186bca0948c6900bf8bde41335c2c8e97b4dac4284d0b2b9caea35e70c905948e280a596aaacc2fd9fd54d7031e0f6c40899bf7478878fa49c389a43530d65b4b17f603c2bac5620e9e52fb3464026a90b52ca31a1829e6fd46baf5d0ab0bb1eca20ed0148a710b7b223a7198cafd4398ed2047958f1ad7857ba527b7c5949cb37d9e4d8708f27e5b597b26953cedce23b1c367e8fba27ae8826262a964df1b52b9935e5e3aee3f0c5632864d234fb0de6c9b3614c13c8c6bbdc023f2a3d4ba53a2bfc0bebb2116e5eca35bb1e2f0224581d74aba523a7626eadfdce093f3db1b9ca545f80206b0ee1fdf26956c85909bbccf068f3b2d15a7abb351a499103f00b2ba72a855ee5dabc1f3aa2b95fbfba34674800c663763fc4ae413094d71ded978d5543d4cf5ba81d0477978a8d26b3a1ed4eef75b5c69072e2ccdf733133b282e443d5ce7fdb3fd5567422d9a88a046f6f9bb0376171bf1e07f960d5589006518127b7295e52d20274663aed332a5ac635eb0e2b23ea1cf8e0941bffccac0a5b455bf77f5ef4d6a21715535db50f6a089413371ec1632b19c3dcbe6f8233b1d4c8cca19c33bb60d3c251733705ae2944f3ffbdf412616ed6d63d5d72996debb8ffb1f7638a0d89a8174e2fce250d4b1b226df55a7b02f380be0f998939b063034423b8760db767994689f4a92deaa9e179f0994b5fabd7459c79f49dd1fd1509765a9e553a58185c575dac01ba70f0362dc00ec9dfd768d56ff0f4aed2410abac086645de03f8d4f338e822712978bb6b61c0b3ec0393483382ff8e21667767ef7aae0051da6b517164dc76dc3712cc5ce8c4dd0f8289178f8e4a783a7c8dbb00bd03c5d162a0732c5da28972ad8e00cbfcf3a854473d2524e453d69babc1dbaabf9b523fc2238f0e40729f83fbb23ca0a9e99df49a5e6282ad6e9566a794f2ec0975c4989deb3d661a22995f40a369d692777c074c47fb0dcf872203da2bf633ef84c2143a568f269d6c8be918c6656246f92048b6e3a5ac877467cceb62121c2882a071961f82e9e0c6b4dcb8f05d8e80ef5bc4270512e975e087cc249f6a940e31a738b22c294d780e2c71c0540c44f773ba98a723a9f15b28d9ff3fa057eca682a9548ca1a0f3f4453438ad847f672db56f550ee2e1e25031728459e56b92b65bf3a4ac598d9b07994cad5c99b8910a5e62f906978c0df865b2ff800298c58b89ed7758686fe35879c1f2548d07d7c072e12d744b0af903ec5f228941cc7ee80ab732375a7ccc6e18034d475d2742271110c792dacaf48bdcb8eb59f23627e0150f100b7f9a8ff8010d31f644d1b16310fb68272b379ac9911fc557b66c33e13a3e7695db43ea541d5ce30c6fdcea8a12079811c3eb193a529bd42f50d8ed528b4c0fbfe087ee007d92b04a6cfb373d57e6f0c562f9eb89bdc4a474307cbf556e878f8c38129dfe139f06b40d22c99a9298ac1bc6c79c8934cdc3bc173233579cd518143c00b02f66209cb1f9f1ed723085c3fd70ee855471bdf75c576a92a52f555f5980376c738d4a04b46eddd330f77c84530a8bc09884a48617d354b050d2633555f07bb0f427b5317f85b92228ccc52c782a690d29343d4426371ccd118b99658edce9795d2aa1a3608dc0c1b780f3e73e1485408cf9d9d4b1c7c9b6c2e9e6c95ee81a736e71766bc02475f12c058b8324f5430f64d4b7ea0455470da23d605a9b407ca620ddbde40e8e88b614f7f6635c8c94b6c6739ea179953ea656a79ab247a49e616c2b87653d26d30760eb396bb1b55dffae92e6f648d943643d246348631b3087ecc4aa168f89a4701474396886e69f83b165de4114664f5b121417f6f79327de393dea045f2379b60c06bbfc172118f47ac97f9a6b49d73349183896234fabc3347a6d6dad2e2e7b174647505734187ddd72950f3a90e7ecd2d9292afbe76abfeae058fce033a9860d85fa853819090b63cccf4137a0c9e3e45f4eca3177436291578b487258bef976c0d37dc4f14714100cead76c03ad9da60158fcc734fad2cf2d8148fcaf526750f8db5229663149f3a682459b839381d0758c13698f01d2c80abbcb8be3e8b3f82058cf38f8ea10df50e0ee723f300432b7d6f228f571de934fccaa263d97b6c672f3ced15ccec0da87aa9e989ebe8062ad954931d14488caf2d863352faf4ba7994d4e9fc5dc7002b8ee35d8c4e2ceed4bffb7ef20d5ec7c0114ec1a53105efb0c5faf098794bf2910cefc76261b8e7f59528025a073caf25ba95d908a9f40afb1fdf0e3f38138a8cc08e23ae08a2de2e363b9d37852d4f3695528079dc6a1761f7b11d827831eb47cebbe775b5711d3d5687e5abfe7cedfb3c16d760140c259ea7ba16c0981ef360d456a244ee48bcc4823f2e2bcd9eca240bbff357adab140a168072a50293b775785cdac1af7be9eab9925dfbf34093885da8207494dc4b3b6a72ef7f2dcd380be9b7d86d2bd62e56f3658fa37a13796826b3fefdc1d3c1b9e5f27ddc1b5e2d5050344c82299e8456738f6957cbdaf8fa435523710eb6ee368ddd0f9a42d3bf44bba686795000bd2d1df1b7601cea84aea6f6fa3658461d9ce6dbb8b1bb77aebae72fdc9f738274dabf173c5283e319c69e808143651e413e95403c31634f48bb5fafe8bf4dda49af40115abbda8224e2158ce462a89c5ba33de5b836ca8010a80a5595be8931acb4e62a667e55ae41d7a1ed7fa2e2b727422e0967008d82c765263b016cee59438a5376e8cfa80560ec6820b7fe99b45e7f7d10773e3439484a61b74d462f7f9e9069958554b0a6886dd2827e1ea3f259c38fe946498f342c53920e94c79326648aec18e822f39947c31b2c72465c91014ae5890688f4c769535621162e058eebf13cdb8f8b8ab15a68f7940b567ce23e7a80e0e019079b1079f1d3d5d04664689da8e199b550fecd6b7e7ab20e5a3ec2594652304a385b15f329355979b1919b0ed348939aba3081f6b19a30d0376dcee3626346016f2e80c9367abccd6eb6951bf2356673aa1e7cef214e02c04cbbe4bb73272c9f78618bd3141fb881083727c4b67f6eb6e47511805ea97ac293a08642f406d0380d4e5f5e918813d47d631cc04c7288fd5defed9cfe57a0092dbace66df32d892e4ab6b50268880eea5701cff07bfa0a3aeba73ec85c4913b2e06698647d81295a6c92544f36714c3ba670659065990b2934bba664d4da28a9816e06ab8d631c02f6c8322a2af21d51d0ad46f6b59cab91a17a380ffcd6510b0342aef2f0eb2e95c83901149c5070b7419d9ca22f2484860f8368dd79f2e7bcaf1864df5775113af01fe20138697b719b5539b8c8f4f8d28dbe53dc63c5c8e838d44157435e3201d6e971630e69288c3af7cff6a3a6cf1cd243a6de65c3150a51b0f697307fa7fdddf28cd9f3a7be14479175ed22ba4691201d03beda3d092f9053f2a11d426ae9530d069e055e17dcbb8bb198ea6909f9ab0f61ce3d78293c1eb74f9a0b7837fb2d399a35532ca5fdd24931437dd4e62934678675525e4f6eb6559b1c344b4293e01ea747f2f298ccf0074c27203420a8325e81051cc815d843427ad980cf3b62f62ad7d7c02e350b9a09f3d030ed3dba719f2331d52e3757f7e89154a9cb7f84e603c8e595b9107089f3208e49167f46046e4d198278dbcdccc978c4e78269cccef1f39aae8950d16e67b8f152e16679c79086bb35b704c6ea919d43a5135c39dcd38a725a81238a441051d7f000502f7a7964380ef7048a1fac2a876f9c713fdd116d2dba2d64b77b887d40399d0f48230db8cff286b9b3a0b1b8858be6dc4266216fd8e4008b4f21cb83d775c24d16437466281f7414690ce566a9a0fb3831150f1e8c6cc1e723b97497cf0b30e7d746d88a860f7b6d3ad6a4e79f12a9e14dbc4a49957c55c434eb46cf52c2dd7aa5e5e2e6f63a212096f30ffbb1b54f2166a988fc85e5a6bdf2b11b6fddbf51e1640cdc5598795d0a7f279603e81a1df302dbd35f0418622340d7a6d1dbc72cb2877b3a7551031cf527d02f21ce5c531915bc58503e35a5f619dca16ab3e1b5b7f7e8c13f93791dabaf7ed8a58bbc6f77a564606389f815df83f7e6e7111995b7063ce49526e758ae10a7fd2fe5d4f3bee344870a4b2e112fbf4eac4e1f5c8383ccae10734b23f820efc96ec510d62bc32ae6467067b41f4bedd5a8a0b89c25549608b8e2e1e5517f6cce84ead928730e3ad31dad1707dfc3cd962159d10a96fde38e6c79a95e9490120868b6c3b5fe966885b1b2e46834852396e66cda2608c7a37358a800167ffc82f30a6afffd6d9638cd35e76c116c2aafae85fae3019e9c01e48d6a5e95f67a0de2e87020700baa14641492ae8c03ce59a4fb3ba97a1237a8cf0aea197363a142e28b5f1c26e33fbee2b1d56b429f21f46b451c6622106755d1d08d73dba45ec858ebc44dab5f6a815098a7dfd27ab602744de916bae24bdc4fd1a04fc8305fbe398125721988c515e7e545be836cae9e15f1a7539404e691e9dcea5cc0ae9ecf749ead27435e9c2648bd8f7c914b734ae274ebfb07a8ed8195fce754ef27a2fbdc09ecdb79c718e7fa9713293e11f433ea6571271d166bc46e79702e730042b6a104b6d9da3299e7d2328e7b1e8935e7236ee9e0c7009bab7d18752cd16ca912242dfc347d3f15e620468ce01881edce2d4f4ba391685b863b67d5899da11ec2a65cace42692f559f690a27cc79c11f417b2faf103708edcf6dd31f749c274338ab37963007760e6ad05a774fd6f463489fa0cd322ea219783467a18e1d3eb3bb135f7e38ecd212ccae847e6467e163455cf00c3b4e5c46d2d50441c446678b7bf4cca8b537c3537c9fe23ba72d29496b9dd04c7af53f26c64bc33fed36e394653dbc31e3ad41cd8fd4864446fdcca4e2f3dea7a203562143c9b937e54ed56142e42ea6a728c4cfdb6f64af708356b050e1e99c955feab59643e687579e213a97d6e93fbc8c7b71c33a5ad96c3a19e7e6249af3a7db717d4f2b0f55b9e951fbb4c7909804d0d5567cedf14fc43ff8d2caeb0cabcca4da2cd554ea9a3ff815db6f1cae16822df8ce1e48029ddaa845830d8d529f989b3d07efa634b158b5d7f0f60a5e8cdf68b45edde4002684baa5255421bc890147b269cacd17ea84fbed475b4c41973fe3059854160c9e63bfb1774737a4dc247f57e416f5f0ca100d16e13c40c11e53ab10992fd203bc19afea8845de6d9f585199c6b756dca25fc6edfa572a50a81ada4a1faf6beb7b5c6b3ebd6df566edc784d8ce184b4a10b8837925572640dfaa41c34bf56cb372c34e4f2ef445f1753e89f0cfed41297d1f06a64437a47ae84470f423bfbf6f4c2de4e6483a278f3b85d50b10f91a3a45158f10762af9e68deca250f1316a69be51ffc6a5e59313e1ce69046c9f04431d69e4fe105d253b0f4306da30bfe855f4d87b4d39231d3a8751f8eb2e60ba3a99d07a072032484bfd1bc9e906e5fd383d9fdb682a70d2032cd49c8f4aaccb467f834105580cca77e0e1155ad04978363b4deee948b24f4c560b818cdd265e0160aa2ca8b1f4673d2165faa8bcd2adf3fc1aec1dacd2f57333c4e0a60ff1e819e794a025c2dab855f0470a133e88bec5fc715a1660af881d87eff3897f72448efc4a1fad4f155a50c7b275fd03f7faeecba927ff3b44da04c1c32556e6ce15434e76376c66995426c72296137d79f4588cc0e19379660e81eb414d278c0fc485fb913d1df2d029a00bc12ce2eb5b6a40a7a9dac676ae8f28f1f489f9eff324b6e616b3ef94b7383ac22fab31564945e82f330fab1de88fb5b9acfc44e4e47f3c632ded9b7f0bd097274baefad4527f6d551eceecc2b1a6483bd992aa0e14a2d85703a21f86b19cc45d8e0942173b4f42c685db241e2d723d83db92fd659213a938abf3161c60bd21ffe88b078f441cabadc0f825b740daa758314c3eb3f01cbe18fc105a25c38366ef1ba9dc7ec472f7cb919f2fab3bfec39dbf844eb30ab1a2bacf2abcb0e7453a4138c4bcec6a9b9084ecfaf6a4f65290d4761aec54b3b4b7d51642a493144fd857c385694bb6446aac7c2ddec7d07990948b14d7b68aa2078adda45afa77131dc0b0604b5ccbe84e8ee2db5e4f85c3267b872a157cace09bac4293dac195f6d6341ae05934e78eab0a02bac5f514a21035247d3311d9e489fc353037e1e1334dbed467b268ed9368508dd12cf794213b6d14d32ffd9239a3536b820c93fa3ffc1b150dbff1b9089cb3504c4eb1d6ddae5779c9ace157c3b31b5d82d49205f6157f5ee6608323d8545a9752e563e5f91a36a825b39ae31fe9fcce986176629c98326eb2f46b8fa20467f642becc4dee917c1e347994dd5b5d1ecea5fe0e8ffbbd3c323b6c77e5cb846b02f02a241fa7d05f9ad9cda2e3941c120cd887c3c7bb3af21da0a52b1a85f656da6e975b883aff6249f98b6e02fe13319c437879090c8576da53d93b2b4c0aa14c35efeba26f8f2bd3b5ddcf71cc516c0178cb97d702dfbffca1713514050a6fef2eceb9964839e64d6a599f3d9dff566adea34f4b4f8e2bc223576fab9699c56bb20a037634b5484dc1a22c53d301610c824be6d3f3ef64829526d2020c03dfb748d7590f320fe34fc20094a7ddbc87eaff727ce4b5d33a155d5aa299b764a383d9d5e15118aa40039ff1c28f32724ecc92b897dd91243f59e80ed9b4a0c4695c8642bad7fe233af3c373c4b52a155fef52d708bbdcf0ccd15a0fd31d3e94324828351239fc9d3b7609d6475f8526d3e028f5a0492a5885b1bc8932fdc77e674fc5548009407d2b1ff8bf93a1fa379f52f7b81ca478c06ab44bcdff4770ab3efa64553f77baaba3562e1d6c0a48016ca6bafd849644e54063ba778ec2be4c178c0f5feaa35ecbe889332f198738ee0e6192afe3b8eca95d182617d288e73d5ab963c22aebe51e4dfc177f416e6ef80a859274b28cc56e776c18f21bd8f91ba40a67c9708ef871304bb4b34033311b93d2bc6721c8a4039ef393a802cbb242c7b2393ef8f9291ae383ed5adabcc2aa6d565e5a70a20753f368a68e103f7f304a676cb4b1f9813eec805e45e4f5dc725e9c24882764537be1626b393d7a959a019e86a487a83c8fdc4a335f67fad4806e8dcc438e6b42ef20ff9aea6bdea336f17773c81acc196d5e318435dcf8aad0f2d2a2ae802f2d49beca6010a4532ccf64e103cea271abce51f438abec3706c011a2bfdc7c3cb03419566650c33fd4b35d74bcf4ef2ed6f8f1a42ed070ce2d6064e1b5f840bc0b11acf020ed518602a9a089048938cacc754d63511f6839c31897c790ab5afc71e6cedc0b59ed0f3edd9323958606f570a70667b935a4a99e66c2da3d81b5766d2f99c8fed0f4ec6ed55db8d47dddda460a6149df63dfffd6bb665bbe260409218744672374633eab27db26f03f5bc716326aaf59e1ee3bff1af0beb5d1fc7bf81fd49ffdbaecf36d16faa4bbcbf5ab5ef4aea2a8caeb5732bb7b84ac899538e15a067163f4eba6b6f2d332bee6e54d49e30403133ab7554d11590dffd002d18688c241c90fc62f1eee9b5f95d1ed90815f7e34ff7023b4c13a6d5ff1acc26e8e57a11d0734b063cb635a160233c0832d088b2a426046a8e22c7c25b17ed370d8b0dd0cf14f623446ba4578a867adbc26289b533b0b3742217f0c52ff1ae3a2836961379d2ceb6dd90b98d3e72cc0dc75d1715d9f4f2b3bbd99c83cdd5aef06c79e9a1cdff6c6a55d935dbc034fb1a7b350a391fa0e5a5f0997911903fefecf890bba729466a5b1175b46b9129b9d5dba427a00aac470ac6d736c981e0ce2666852b6ca720385af20d6d0554960583c30bfdf1c3c2045ffb3959993813fbb1d127349fdb8e7f49ac66e1605da2be04615214f65eb90b924c6ae4f89cbb5e7f541b62fb76164d3505e77db3281cf4d1e09a8edba308f3444c96a97109c65bcc4e98110f600643afa8c0413d701bbfcafeba375badab9ae8fbe8be864f0b78b30ce930c81597a58e525810f1c00b85e38f9b24c4647cb3c3ab93e82f4853a0b26dcb846fd8590147990f2e4fa5ae566b6fb7beec399b76ceb28356c4c69518441051b64ea55c34ed000ca86f2df5cce4faea07d88496a088882108d5add3e10e92b3a94a77383de17f86869fd6db1c6a4895f26b12b5c18a535519b1a417e8423aeb6cab6b6f373e65bcabb5e59404514d2bfbebcd6a5630cbb6f38e8eaf514f5fb40b7ee9f601b43f5eb850382415f56fc144df3ae12cb7c40a31e2e71692bcf356a895752d577f93871c7eb43dad089f055c146386e804af2cd92c577ad22502a7f491546c2592ac211147e19a29c895d6e5b41825a45ed86c537af60f95392ba13c9ae8d73f47098b8175d34d7b400a181f9d4d0e027dc27f2dceeb6a12d53c26df34107dc7793c6f391f37cf8294cad6fe9a5daf670a81a3bfaf805c826887a8a1be50b63aa38af694e4cc4949e36f47c081e9334765383dd8f6c76385fca85b09caaf464934e4e155bf2443a0e77fa8924caa148f36508526e8c23471d5cb01c3c16f8324303e70d9ee4cc85d4e5612131a226884646eec8865115bf857ec1689fa5c8aaf42c0fc86721ece6e64e009878f4d612ab1217a3ad7404bb888d3f0af48f6dd2ca38989c5955506d0d76a68c20ab21ee4e2fb2e19cca9ae516010fb0879a8e89d6d5054d43a7e855991a876975fe9fe04b2e44c978f1f89b59975af1b18b5d6b045817df7c7353e8f61b46118a0bf2d959e23b64b5d288100fc5a1d8addde1aa85cef8c8f62f592095aa0e4d56c0f0fd3332b15863f50b2f869d3db7852d542bd4e59a2a42b640a397dab6a2280b51827bcf495605215ee232c171bcfe382289179c8d693843cc994113f03bdab7d5ed1ca19c6c350042deaf345db744488892cfa8fb5dac24f45c1f58af79826b58706d41df07e24008104d68cd1a76560e7cee0645ae965f19b3c68bc28e9e09f86aede60258d0b3339feffb9dfe860de32538c2906f30b7d08f9ed24adf21ffde72d9fc6178a4f11322a00855d8b831bb6f34a33e6d4db3fbfcbd055a0bffc24d96b8757722febaa5ab5165f001088aa3cc31c2975f65cd5651e7818c1f0fbcbe7d7bdd7112e0b509ae2e49410ec95b0f95366928e5b06100a17159a4936e7653441130a9bff9b28d584ef04f830a8717c803ae7be04c1e5bc88a246a5b4913f995ac8e0d0af09a59764497ff6e73799385efab2549e13d25992d7e920c161c39801d78aba63b9b9726883e5382d803d5b891fb96b133468be8c118775bcf8e4a1b4a03fea1522fbd7824e1f1b2acf31fa1a1203cc9f1617f23dbf44e3e13023234d4e7859d10b1c881bdec6b6b492eaa22c7ff67e9636336260510112b0033991e716189237ac6316bff57203268fdbe00aed696130fa622ac02e26daa4274234e5c902617792c0667105811f5040059b2b2dac185785ca64a341fc45137e7e6ce01598a1ff42e44c1a5e599ec57c344896e1895d9372f192b31b71be31966cdacfedc33850cae0c34333fe87ca26b3f6379db40af1a36567f6cc9a6839e7e3eefb4767dc486cbccd3aae5f840aac9da4f5a1c35e858a6547121530bfc309f64672454cd38dc690c70d69607ae07ed0d521231c32818b5c9239149b0365c35ab856d3d94bb2fe455260ff5e97b9f011eec5425de0f00a0ddce497ac9b5265f865c3c1ca7b82f93e715a8ecf6e5cd32c269e8170bd1ff2944b9753dd48b9b89a7468a1d5573f37fec37a81e1f096f09785224e3d21405cd17492cb4510ddcb7c5632eacfbb8acd1d57eeec7f2d9862053d03f7fa9eb6009943b0c1150b310eee76330aae1c63c7a9c04ab707eb9315c7b145cd3049a0f0de0f2935668f399e7cb3524d00dbe93eaac0b997736dd21134e4d24237be82fe915dcf0791126a391cb640ff3e23d02a2b428752e8164f1070dbaed3e3fb285368d67d1863557102821bf39005a810fc0dbd4a320eb808a8158f61f34fe2453a40257f829724be2bf885b8c083162503e2c09b2711f8b51cb5fe026febd49477464db0d801408a2b73f0cd671a8938ebd97b5a2f24c30b6c97cb7486a3ad9c05dea50878cd3feacd02dd7d0bf58ab459908078c8a6b3308d284a2b70379af236ea2c08527ebdf50760fbf38aad0eb8d90c61fe2e45ba9b597799742a33c94a661801bd19af3084e22fd09c84d6364b7c51c3e3d13cf444f5c503e3a7e1b238d0dacc09e49395f5ced9241e523594d3989f21c5109bddc7cf93b3ac2a2a0105dc75d3ed9266c7cb5416f6ceabfbacab2591b6736d7b18d384a9ee4189407c198c1ff027ac6236fd6dd4c0f4e4651fc21706d2bc0f2279a4af3d4f1cb13dc8ce4f6155b0a7a81a8d58a7b9cae26612fa3a75c524a0056e3872c0672067b9457d5a47c4139ae8eda9dcfe475897ce5df6dda53196b3716d7c8f494abc98bb4221f00b3b8afe359655fa45fbe0291debb0fde2e71f9bb1998323779bf4d8d010cc93cc486bce93c8d71b8dc7feabd4b69ab77cb003355bf99c49274b49b1a7dd08ba8908841a04e67a940943d8c991f7f170526e05bdec48b29567b3efd3903630e1c28797dc3468aa56c08b89460c1fbcf6ade41a642664a425a3769327c400b1fa903c9f20f477330efbaf7d97bf8cde5a08fb4cfa7f1e54b05cc22d8d0303238d92e13429ec5a720102736b581ace8f9a4176929265af10ab92ad14782be040d8b509ca976608e42e9af2ae2ef40ac48399c368c918eb8bcac626d1091246068f421756b4e46f12aa9936480ca7b02ad6c75a661f8ab36fd54e049a47e1ef9943f9697684ced275a0361476263b815ff2e66f3a6ad084b2a05fe7bae8275d30111ace1b9e4bb54aefbaf9b6f6c34ee1f6f0a4f87697ef84e309fc3d783b01ec24b58b062001263dc4c4f40153b091fc17328e732309fe0e82541fe62fca90faa7e08f28c36267819ca781fe35a99e5f6daf9a0b9a41e788ffe482d061b64eeae708831cc746adfaf3aef1a5b3189d10bd350affdf9fceead4d9c1208c464056af283415edf18b25e3e7e518a637f09bf6d36b6238302cf3acaabeb144af5a29c10abc13a90bd9d7e0b92a3743f2842556ed665c6e47185c489ca2b5fe279c98abfcef1dbb4d9a820b725540d3b7b6252ae6a938f3f211866eb03b241e0c8638d093177762219ab47520f76538d0d0b53d9c1cf322d5d0d67c569ceb36a6397c3760e7b2dc862dd61ac029d7606a840eed527af0b04c001cc192e263557aa25ce921434d58bee7ad625eeab7d0ab66ffd8d9a6ada9478ba30898f7a884762b68f5ad612fa9bbe53e38f3d59d49b954e0bb96c660d26da83aa41fbc7231f9867ecab085fdba1cfb0ce6cabc1c562803450a64283d3e4010db96355eceecae6c4d829a451731aab2c3f0b0d11a75b591528315a538e317bf3c901b1d52dbf6aeffb04dd3c6654a36c9436cea2b2657ab230780f69d98e363b30571cc9320e53b30aef4dfeef5311ea96fcdfe1e7c9761f56170040ac65040211b65d14f5ecec80716ffe7d54bb9d9e44a5e893ed5715e655f36caeb13e08aedf6b50a3e445f6563728cb3d428c526e12e3ea98dd0d354d5cddea7c224a2dfd634c5dc962c0ae5afde965393a1c1833072f0f219f6be54248f37b77926055c6f1ed94b7d3fb62d68093cf8ee262a11363d56ea0757f8c3a1fccaaf0ec0f935cecb8ba3f8edf5e3aef8b260abc20847ade8b6d2ff1c66fb94702b056d16cacdeb285927b9a1cfb56b114f0c1ad35afe4dda1d11ee2bf9ebc31a0ece0c9f19fc7bfda87f5728e9b9eabeb728d00b7786466de27c00b1aa416fa46584e35540d01a427ae61f8c4d61eae2903954d074639f03130788ef1233bca316bdbc7e21c3b5198bdff2ff21e3a0bfc69b78cd2a447b91790cba1d31e1900f922edc541406863fbf49115a101991637d89cb4344f875319c3aa824f246ca9927c59f15fe95e7a9b74dc295d72eb7a0567c26c7abb1a69f938a6ba9aefd393319d11fde87e961fe1a4ed05852140fe334708c96ec5e80d5c6d0022d8724755d6caecdb68f39574702fa65d52b49620210b7ddf0d3aae769f3b1779565fdf49fea75b8fe14f4ed2ae26baabb8037905514fe42da40b194a41c4e26d2429b5ed3f543805f91a4135c378a98ca7769c422dead4346ca8fa68484225497555fce2b53588ed924d326216ca1f62dd500ca88934a9ba5a5e4604078ba44722ef497ce4adbcbdfa48459038f7decec89329e27f4116bb9a87a628532f1faa442d7378585b7c8d8b32b89fc1c24de67bd51a0c43c22c5ca9876a47cca8d4d36814b6713c0cd5af05b9e3b89e2137c157c05c4954a397a68e73e84d406047e40dcfafc06d8db3343b9199ef0ea252d2838617fdfca761bfd478f9f51958afa47c1aa0ae4f20fd73e2bcd964ee4280d44e5aa543e56b1a4dec37def62e092cee847f374223fd4e0121af64ce1b1ec86c6ac210f5311f7ba6a882e90d06731b03ba801dd7337d8853e51889464d64ec88d403fe04741e68cba40e903ff4a9187def4196c58fe87690eb5be98fa075e21ee26ee815156dd23b29c46ad6357065eeedfb551857c6b12373564d3e339605db14c9131e7a883f6d84ed8b7c7a9f1fd757c4773b7b64f3555db0837e693a3647b74d571e03c078dd72750b56c6a5bde4deea7b857901cf7dd331b8f98f80c6311494660ee413fa18f34ac5d26978d3acb91595aa2fc8e8ac50068178ab3843ed8da505ac1aa1db0141089000050ccb57cdf154fe81d0837078f3a5c23d987cc23305c1f9cd712326b5fbfcbd4de49d4d8190c27d287a818a7f91c3f8547b0fa71588a9f950d3d36a815acb108f97b203dfa6a129e6a40f4768f5acda6b704d2cfa209f5e51d07c927706aa764c438cdcbd68b3c1a6433c1c032795d1085a4fc29eaa497c59f5bdbb7505d44356576f395dea2f6e78dc75c510c4b25d7fe84c6ed9d511aa81608b7f8d58cc03101a0d8026c7449bf499a48580f207c23d025492310b78d1a4bf158c450ec300f3c95de8fbe4855433432558c336d66295c9eee221b43bf4553841728d39b5b1b436b5c94b882cb382803d3d421f17ec1f240a8238a6e4a8929078f7fab14e9e49637c10cefc274b9d34e7997e7e4c0ca85ade98314a7434612348c8a03495fc14431f48cbe5f314e00d48871429a59967f9d0250d050cac4cbfa23ca0ae853e3a1cc98d536dc0ef400d28b8cbce44de74407f7996e550dc0036076f4a1d4520a3d1f96f02daf14a37e39964d71a8447bf8ae9a35a86bb191384ade53d2b9a27337d02f17daeb37cda31bb878351b9826881bbdbc3807fdfe3b93fa9388d44403b1fc4039e20ac4d7fe6000fa4c6c328bf74e3da4424ef2f6ac17cbc770ea527fd203fd572c5819301063f7a6ce98588598da8250e474ce177f347eb92fcbcff3db750a99810e126fd00204f283a1b96d7579d5e95ae7bd02a86325e5614c3daa76b6c68ef17656dff507334b8605d5557bea0f0b46a1d43168d8e6d3dc1a34dff0bc87de1f61b5b230b73b6c0202c74fdc6eaed69d40dcc038c4c127e31c5cb897aff7e8abce4a9906ef514a6226b05bf0af844bd7715fc79db6f3881d3b080a0cae93e5bbddcc1bbd77653850d4db7c802696feacd6f8e0369f70b445fccfb57205fb9337d573072460666ff79d8f74565fe6dcfede2a3cb1deb1d2392f9695756ff18fc936483196018dd8a22717eeaadbea47e9fae8bfade0bd38bdbb81e35ac0aee07aa6e5f5ab8edd20de7121015ad6f2bedff6857b013f68e52098a3c4951390fa0a079d0d87a6299f5b10806e010a73fd882fea3180628480765f4b92c61cff181f2a72b87ad1f5932ab7b2457cbb31c6c60fcde4c27c00a7eeda94ba47a2eb1e5c4ecf2ad280709b5c562a2bbea0dfe78b5d14863ae878ea6984c659539da5f538958114e4cf3c2d63b2946b02125cf31196e5db7e47765a60bab02acb1783922b134dbce08bacd9f5c3f86299b6fd5540b996cea5e783d22272269f04db31739f70b83a2cd53f3bc5747d85c29717f2513e4a47e2755547ee6e840d03707016c15ee3f531713c78d1a71c7adb80c8975c0f3c181007447f0be23806c4b0ef91c632b1f424187fa9449f2bfbf0c089713ecfc3d03ba93d6a2117c2ff5492cd4dfc0757d1139d727c3f309aa6bd3e633198675368d0f05907f2f8184da1df85f14ef7a93c5349fd218220fe147fc820ea0d805a57da70a654026699259fc36879163fe7be9bdac75a2327cac1c0b7749c26f9800cdf63d52f09d72b6b8128bc3bebf826c57b14ca65dd4abdb5599a527c69d83a32796ee07794acc3fbc5182da9ac4a58aeeab458866e2a0a5ed507e8ce43ba1e08bf22f212f1bfee6734692c9ab107cd1db53040300b14a3ac893fc339d952c0ebb31cabbfdc8f9d325c7afa382a114348c8db1766e26d15b7d0328cebfba98b66f58b5b921f58ed026a8779fd027705c6f5c82f756fb947d24a8e4006d8672c117c99eb2b1add30d0fd7bd12aca94dde6e917bd75b8c20f757809d4c9a96f88cba0369ae48993af6576c433e52dab3aeef8fbc64806a60ebb7f3bd1ac72cda8b4b040bab44bff761ec98e16aafa5a8c07ecb5ca2edf619e29563618e36605dd64ff6494824e5843143ba1c7ba3189e47134f0e9d3bc3db53f6227c977aa9df1f5f3c376c8f367c5b8626ef5aeed883b5bb49e335fca2fabff9edd045aed113ea0cf431aa265764f284e14df947f61dd7b6ee13d5527c433a1f2728b1974870a26fcb8d3e3abf690e255ad72883274d1c49b99411b8df70737f78a97e8fd0c4e41a39fe504346a0630de3f211bfe937902eab7ec2796b063a971bfed69f17da6626ca6e4ae0c08cc85a1ecab6830c525aa65d8580cc51214869610b11b20c7232a386cd8b2b8a5ea6b19f0b85f7c6b4b2c1e2209b2ba11c7bdf37898c8753fae9d70819940b0159dd06d7a780efa3185cc307eb0784d52c1c081a80c0ce6b02dcd6d896545066586a256dd5ad133e17d0ba53de264f6ebfcff1a01d0ddbcef3fa78c2e5d5d3ac70b78247d63440950332344ac7615aa10295d8ca2463b978d2d565c36bfebceb3077fee317e2adc39aa4524d0ab2e4e24a5aa470158f366920aec960ca61bce4ed6face80b30c4f54551866c561e5c6f5eaba783e2387675a8d72840b86af5baf2122fdf2e601f111d472483023e4c17989d9078d50c1c69d491bf83f1aa8cf5e0a7daca84eea9b3b7234c835b1b0d91637b07006947f80c930e13647700b97da55d9864900e40e56e3db47c5cbe23ca9524846c5a015d50742b323bab28225e4fef837a70d463f11ee47abeb5db52d9abf7eb14376939f55422cd118472e4b65ac4f1f0bb7ceed4a00d2fb6589f32efede1331a6ccb06e3cd6a8b51407e33a8b86baf6bbf70a942439c0d31e39c35330f4b4010190585664a01b9f1cb89f5d3a99c3cf839ddb44697659714a2ea32696082ea16f0caa5b04aa50aa1aa34238ae614269471bc12ebfa880528322be936b898d25ce3a4a26b3e71dd409ead5a17307ce60ead1ef40a2e7c1d741230b80c520c414c8bfae7bc041bee8a11d99335ae250b26efa293c73b0b8ae0499e90f372e618a0b858df8bc2da7cce078dc066d1925bcc1481eb59e61ec713278b15d604c6fe6e9dd43750e762467e16e0e8c659c2a797931aa647c578c6a8bb7170eb8ace76628973c2a483f2f7c35eac30a67c8bc3326f199deb165b8b3fd69307912055a465706bc634be2adc9bfc8739a1ff0418c140f7231b4f5cc731b2938ea01ac22bbd65365a381e6b19b32f24cc2899409dba310e0ca2a2ff46a5572eefa9294d3f4f07c1ae37bc6a7366008a05e0255a00c5facfe0bb8734d0cfe6c5c71853b518de6fd528f0628ade786d04b8b3a6f3ec35493a425c457c4ccecfd6e2433738d9365fdd7fbe6b308acd4744adf07d4e868fdef68e75933ebdf5a54d8d778ef31c75a864265bae2f587daa4ff71d85e32c07c0466e3c417e5c406d9602cce521fd1d7fcd2ac2b70aad37159f42521858e4c9e2569d248f792ce2ad305e1503b75635d4769b59c12d603924c58ef7243b06eb92a0a955377cae2da0494bad47bb130cfa26564146a724028c01ce2cdb14da6b76896e6d005148b2c314b05dfecc24cc4afc64e3d32dd461d040a67e5b6d8ff17e289899ec8a98cf5c9619c2cd1eb05d1996c600e7bc4eb076fa5574a7eb8ff8daaf131e1e00c5283b9dc45093f334233e4b870e0479157ad1fcb6230e6498f4c2b357c9fda30199b6a9083e3ec4c2c79ec2ec8336571428240442bb464fcf0726ed1c098908532bf179ed34c957045cea95ddb42623e14fadfdf2bcbcab161c52793d286daa795789177fd3b9d4a6692c609d9ec2b3fe306ad3fe2d107414e0332320ceb13a79e34bf0d961d4565019f16ffc3e840fb1114b6a963f22bc44791ce5e5412397c52c54d5ec04dd686d9433db130b8525adb1d7419c5dec29a547a846aef19b9c2761e3eb99f1157dfe6309b4b773381e4c7f60671f4af6c6a4ba2c2fb89d93ffbcc3466c3e16bdca407c5f553e3f8060680a295b2b1afe912bcfa6622f0a68e12fb65395f60d04b6d8d774afc6aac53bfb5562eb8e40281108c9bca15695287b8b4069d66f36ae2dbd57dbac95144beac04312e79ec41db1bcef61d517cc42c82e74922fa061ea920226fc048f58d0b178907814b2f666437ec7cb0a984d291fb6af389e92f05934a8f50b4f4ea799ad40a72e2af6f328bec2decbb736db74017716d2634692f219e4b47e5a7e3d71c8cd3d48311b4d477c74b1d134eaa614ab747a8cb6e5d1fe37830483a0b947e1a4e7a3b1cbbbf69109a630153af5d3fa1ab88efdfa3293a5ccf7d41c5483a2ff8bf306912ca2df20722fcee15809cb6fa0c15941eff4ed254eea9e7e909653e05b70aabb324bf1069e75ab82e65c5d059a35ea4681ed45c95fe99fb21e7822d4c33ccf5a2ef4138957a4fa8c743557b40b40b6dd078a957ba1f4af4ad52567c31f27eb5055e410fe5f8166d3170f1caeb82032f21cd14ae8bed9bbaf38d7b85f01f05da9326a064abca5f218c76d4a11d404a819869bc231337c2854741b105c2e43cb35b6304b8b8ed22a48c8570b2d0db111cea1fdeeda48e38eeb34303de99f8621d3174be2b8286b2a70e53457db6dd940a0e3ffeb8b7c6a959182aaed755d142cbd57245edab98bf2ff635e44ca8b61d37d2d74e590efff3c876eb64fb1356beb23d7ac9924e4c9cfc44573975c7b3f97f506306759547292d2c9ff75baa47d138792eddeaa432de6a10760638ec793fe0fa2dd4cf023e4b1de2d39cfaa4b1f10f99c77a0dd0d63e8bd100056b8591d90e6733a9d407871ad296796cdf890c0f603e5d63b064f7ec86f807b7d7da5e0a23cd7963d139101ed24b79f18f4977ceb318d0e7540a27fa0a7d0df0660528c821362aff844c8a6c15947a3aaeacfd918ca7e9918efb4f46539b105effa15dc172e450d963f0fe671790f4802992905e044d3f6a54c05d49ed7ef9ca98f0db25249247408efc0d9e4ab3021c7adf00bfc9a5085934251c9581f0cb8cd96ddd2e40a5901aefebecf9d5ff33f7deac597c07abdf8a40a1d74316581d5b4568a38a46f06e48b37a91552e3e00c1a819eb41f43dd8f9cc3b357d7c27d0d2e10643b9b3632d95e9c0103cca5aa4a246df3151815b73d6182f80b838355af1a7bfea4f1e195449effe4d57871de3d3c039571c017e341e40b0a7885b04c02ec8a68984d6e8309b7d80ab7e85b49e834d40188938b509bf95d7e233aa0fcc4f0460091bea32d5ed6902adcc79220a7612e2aae2c1ec0c4ae69b0214e92b9f63a279dac25d9164166b31e700a9f32cb7090fb8c4887a150e0c7389a0f687345afcc1fcef27f9a9a9c0ff72552122e427542f2d8d73d4626f48d7e23cd0e47a33b3cbce34999afe547091fcf7a1a1df43980e06d0d923681cf07fc74862402a38b751df15ca7dcbed53493567e8a591cf5d24d7ff5530b6733756c4a52c17b1b8f484671426c9702248b4150201eab46a997c17e479766e9e6c4f84d0541c0151588eb67593556409a641b3ff269310bbb4028ebdfd528401fee071eb962d5603507b9e2b8fac0cb10edf685a65b748393c347525ea30c364680aecaac4e1e57a475825c0dfc88baa93361fe42f92bfff771e5a0e6de5696f03b47759e263233a7c7dced2687dad953ef2850e708bec1933b96a2aef9b55a4c944ecb23bae271f39a60f93af8a1c1e3b8beda9eb0a21caa5efa452e0e05d4ceab3b2ddbd25086f51a8f8f85c230752b5d03e4c9c53383111690a129255e91f1ae83c0877475e8de4462ea0ace8f4d2e1da113783ea513de27fe5875fc03edb0f333deb91c0a97e015d25cc3ce7d7445d567a3526a079597157e62af26e5b8c8836f8c082eceb7e4ce37cd69563737217aff065970e877825e1537c015bd87ecd7e157bb7af5b441b3f065191194cbe38ec5f99d8d45e2ff22a45c86af6c8bc0db6c18f3dca4121cf3db47fc8d82724f9f988b72f5355d4be7b3f6dcace5e56b8c5373dbf51d860c92063dc091ca035126918be7a97cbc3ac5d0154367dbdc32d4d36efd710304d1b86361296dc0b796edb677d263d9508d74585634cd6986fad9526019ac6ad71eb05384151bceeb4e72d6af5931674bfa05939a31c9e6e108cadc5e4c0f4a67d7e5f68acb292134311716b5ffcfe3a868646765acaae6bd528693a4d7888b998196a8e46c39d8b96ad802fafac6376808a449943d5b2e515849e5d764d50c1ae24fa8e42a0f1f6859480fe3906dc8890f27f3d60ce3deb90f7dcef13e75a4e6c72316b486f83d232a3c0c48a75d922b766f344c99698e75d3fe92ef68647ea06b0257a3229ced7f96e9f34fbbf5cc2c181a3b90b9dfce574f3cad300695de2226370b6d109ce32173a05b586d2ef94fea04b39ba9c199f1047e08e03fdef10b4dabdf207321025c107446c8d08ca563ad84f21573952842c4f97e60c92a80039fa4425e494ae5e0227035938198013bbdb06e09bb0f8f039e6aab94f057ad8d5a75416d29d1c191e4b944385a70769c3f015a396b7fa96417fece407124a733da366ac38cf6f3e2d206fd47021cd392085a113b422949ca2e69f600e80043d1b4ba2ffbe80c50fb8f17db102bc3daabd8f3c95629b0cebd18d6fc882977cd537ad7445842231683060cdd8c19d3199651b9196a8df8d3007a9e8c4a3861204182df0eb4b8d4c17ad3120be812eb3c546292847c93c127fb426d2df0d17cb9fd2ce8a555989fb61d7f3eaf02fba81e4b492c20fde1e3f81c73d6cfef9cf9e6ed12cab330181abd73663e861567bf692d5f59917c00a396a6dedfc9b5f2f5001e248f5d52a71573ce65f9801fee3b7daee5cfa8752f6c08aaf112116ce20e2a07b814e3815ad0c5e94c34a51b8c526ee04956778390d51d16cab305844fef19235ada6e20436de05d6e146eacbf89076810e5c027c11a6f0afde17b88f33b8196d428e70d28cc0a93ffe8d8956de6288e18911f526e72975722ffba0676d6d520b34f7a20db86958b59ac0d15d80b40adc478bc17fa85f15278c0d21a7e18b6a06ba3a17b36b04c3c58132cf53b0ff56bfe8a7792a64548ee57ae541750b4eb6b2e4455dfe4d94f48e7c4c2f5bafccc9abe3474625180cf0463aa578cacc2aca0b1d1ab06038041ede5ddb6e0ee3fd925c1bc0bd75c100ba11f633b9739ea3f601d521b6d5162c17db00dbb2b90c4dd8830615a987aadbca1018c9dd9c2a7cadcfea91e2c9867313c35245a913e7dc81b16b44a55e729e4ee5de408d606f69faeed55833812e852ee469246961129d562c2cba62fc534badaf15d647f7d3765837f539e1a052d6d87fa4d794feef2234e17cb6acc56786a14f2dc1a01de85f87ecfefb74581bddce431b3d3ceafcc05550f373346d13d9283278667a107d18fe211c1d37ccfd8770b7a815909a94e1de93390165592d287b9fe956985f575b65fa35b45cb4395dfacde7f168df8d47aea7bce6ef70777145b7967ded142d941ffd8159b538fe2c42bc31b5cae6f8707b24b328b3231512017cb16d83906426f752a9b497775c8ac1167351e249809119b1d6bf1c94c0ee56d5e90214ba56a7d4d659a34b1d11f8bb353a861604e1b6977ad6ac36b8fe0c8288cbf31bc5879faebf42a02506b64587c461694fa6430a99d80c0ef3c8b72dee90de0c82d960c6a5d76e8d6514522ad17579b87f0524ba4f81e227a887798c9d97a6bd1caf790473515867a4f141cca29adebb24687cb056f70194e7e471c3f8f50b03c2ad0fbc132f36acfa802d4cba102413a083450740353f25e05fa3a6a97e3cef7657ca3628f819a43decb9056f21a637d67e1bf61af1ae051eff9b1b9d036867e991130120f5015d1756d260acf5e68d5b051d908cfba2b0ee189d4b46e93a5b123643b48a3eb76fed906f95f433c64c3ddf5a27113cb94d8332a90c69db89c07ebe6da7b971590fa0443a5cb0d52129f41617b3ca532468196dd17af3c7a2ab5267dbda241c6325dcc776f7dcbdc3a0b563dff05282a5b55eb9525e910bce3c56501c29f9a666977456880382a47e4b73c3fd94d823d086064cd2754638cdbd8079b565438b20b94790318cc664d1939fd8e3596f94a75a7ff1e4a126c96b53c959e1470734924dee11232b51d2f07ae4ac479e4bb119c3f4f6e7bd19736435d7478456673180d28b1151ac2b371df873922fed983fb569468eae0200c6061b9aa1dd62c023329e795e4fd2f59d30caaeaa1322cae31fd80995860ef8c74a5120830b3c21c4c9cee77798ce1439cb4e49858f83238fa37a1fb63ff79b13271c71b6b1dcc9095277f0325a256ae0f87f7aa8f9557ce983faf457d758782bab17e4987c2bea127435f7d26142a8ad5acf9eada9f517a35e624d6ae730069b248df4a65a46ce3c9ff096b893c514bba8458f10241ce7678e458fdeef0b04d620b0e320e4bc79ef369c929996bc82379e0daca6c89b2c17ea34f32200b2c687004b5c541c2614ca1819c969d7c4932f858cd0aa42a24797afc1c5e27c7732eed78671893693224cc3099929df572d4419b8ebfde4fbbcb9fb2376cac398f904b6812ca8f7f261d1693d143df761ba09f835713bbad79452d4e993eaeb92f3d64a46cb75a15ef3350e2f7577945e4f55f53d2db47cf0da8410303d4100c7114f7e7738a6447c3522e88c3abe3f55e95c89676e94db677d8cbb1bbe5d4945acc878aed7521c961dabdc649b7f620dae4be5388fab93c85d5e4c615427c94de1f0340688c84984a14d5aef958ff15e6bf887a4ad29e34c6f394ce13385aed75a585b321b2a52bd6000f3c698869de55d3123c6ebfcae704c58315012a9516f7a4f27b53da49a17e532db5a86b7aec3ed094c49ccf33cc677bb6d66efb518b9e6bd07fc7affaca7faac9a1e57bbd279cdd534492ef4720b2e0a2501cefd7efd50d8ef9482671e5242b8ab6eca62e9280753f02b11a88ee7ca0d2efec8a06635ca63bd749ac478c1a0409448ebcc6d62e91e5d4ef26f38bdfedaf8609005183d92c13fbebed464b46a00fb51a9281e30bb0ff5ccca71ae13115aa57853004147862c9b6ce931f00202fe610633754e8eb972240461c148ba66708c748e2edfff39d1183efd4f7196c6b478878e24c931e09de8069716dba3ff4b571cf48ccb307e5b09299e3f256a08da9db2d914258993591b88a10ff6ebb2053774af4f52607f89ba1f744fe74cdf410fbae869f4b9c9f40971b5e84f083652f1457cd62eab6332879c6c8f3c08f48e2953f1a1d764f0477b56d12ed79f327a6123e64d002812a009926c4b528484b3db596715fd5a1fdd9b2e62509b1d583c0dec585a86d9d4ac527c8307c5e7300791d7f490735d9db852803a311eaf20650ad49dc5fdf7e59123e9628bec84f8ecfad4ee2de029efe92df9ad8de7a8696260a6be6608d319fa71912c2bb427b8441aaeb0b0024c2aefed1746dfc22703046594a5aeaecc0e578acfeba7469c946237918790d208f007cdb00d22d50ef5c5fe8f06e62f701dbcf3632c6e183ed94624d0cc68fcdb661e6ee155555b6bb4a9ebbcdcec6eddbb019476e433ec042213c668ab4264278c4bdfcd1a80ff024649d75e7b20a9c1f26f347cc50c2ac4e115843422086fa443369bdb9b35e6cdd1170dfb673ca168f3a4106ba02c6df72c42afe3406953be22111cdd6f990d03aa7342562e56bae58f9c8ce246226f68f74f143c964ad4fddce81a9d12f47d04c5a0c9fdccec7c6deb6656fb428a7711f12830bbc16aa804ea626046cf8fe8df7cb0190df31ec0a7a752d918dca2fcbe000100ccae1b6f2b94056dd195790a8b70dc407a58cf8b90efff1556b85ced497c2cf2f5d94449b75d5a556fd40c44a168197782f9131ce0a82907d0bba1dc32273bbd29bc5010a19269ee18950d5c984742a5cd10ea8051d12d184874dee5ea4d6020ba2afd6360df4f1088eab923866362c04a1241ebf6a152d3c3c16bdf5acb1a109329a981686b551b4192f12a322af7f02c7ef66c710768b65771156d9c0f605484886e22f48242ac40e992f3a34e6c39a97bb0266a1fdab678217853abcea9734bf10dbaae134b571327150c8f0d27a90bbbc04ed148e5b1b4f7998418b38bcf8392fb3b9755ca3a1907e40cd7028a0e87ba420c4f10abaf9f2be70e402092467ad618798b567d429d399c7ce2bbc3f7355cc9df5795498cf6e5fc657ab954ae6a95df544c97d7f299230c9d150ded685f12e98f586e141c308fa9abfe651d1c3872fcd3f8655af4367d85c6ef649708c2470d7c563d66937564904172e7528fcdec9d140f7bd75ad75f41587c3e9539bfcc592f939787bfc72f5001ce0b1adccae3d862cb7cfc99471620c2ef65e2879ad757a20e05de8a1b1cfc22262965f44a3b430408b1a15c20ee8dd4ae8376eb518e77ce93e0a0e4ee1ac9e0c760d255ed759a8dc10550dc20bf302472460d3b902dbfa2feb8897acffcc623a58853a5a2fe3c7d2d4c47e225de54f72badd859121bc0a12083fae34b0a92fcc3768abe754010fed440ef92a6a545a60d7e058c467322aaf762136f1a9fc1c53bd7b31acd49f339fd2abd7e305b284aae2c3a0e14293f16429471d6e32cd3e686106279fd2c494b3f3d3d0b3a96e715bc269e509f5e292e96eb3037e3898f7821ef3804ab8bdde251d41181ec13341620aff40edc664734d39402ac5f318375c7007f166229d7d5dc3f92d7f13c97baad4af9fe0c318cf57a155948e61d1adb9a7d1c25de8bb31b74fa971f0fa9b60a0bab02f5ccc228f0b8695962585ab44a0093ac7e93a2ea36a67519f45ae5c0c9c18825db965c19667eee4649bc48e5acb1afca46a750a4b6a8facf139aa4526a0f4434a0c8a7f0c76d61355934351b9f8fb81d715152ce9599571b3e1bbe7944fbd67f838210e3c21fe0219df59f6e8105d1efe5e4bc0a75518f75c9d82ec49978843eae992cfff2034ad4c01ca9b696e4c8cf593f6ee6ef916cd30b3f5ff819996bdcb35271dbe6f6e2b4c1cba461560c0e8064e481094e5e1343a3c32ca639c674cad34806a6d37193b58e0932831b675f85b872a4fe6dadf8e2e002ea30882c45fff941b5f59975f16a81c6fba8cd55671b738032b08c313bb0366cef557c9781693ae557350bd29c2bcddc6ceb8188be16484211485f1a18a2b4e556d59b20b4f9cbca4ba0fbd38dc7dea58a7c0fa25e3f07a37eadc778c12b48addeacbe5c105921cc66482ab851417c16c12f643c81b63a0fb9a42a9bc23363cb5d7f5c85ff0c1380154a67c16992b945f7d16146240699d5baf1cc7220677327446c59dd5ef0c4b92422fc06afca1b3e4a892d2038d821e9b3730aafff00d058b037a0e95c7ec5155253bb4ef82cb4459a24f405fb8962f471b473796951d4f1a4396f67d2429a9d304dbe0bd2c824381c2f4a3dc05f55841f82ff08505687eb7c6a13cd35e55eb7d4d5b761e03ac9ae3df3a999be6a0f338bfdbb51efd1c7bd96c2eaf6f799399d6ee8501f9ff0ca051047c6aaf904d605e71237d762079aefdf0d99e29fde8c3961e8ac6b6823c8b2ecdc6db6531799b89d209814d7f2cfcd7c4851bc249fc42f754bafe280bad4578b5877ec91ac1162d49966744e5ef1c15b9e150f13134c0b65d09a6b4777251c024cd956cb75b8e29516559a2d74de48ac5f1c8e5c1d7e010ab76d3900cf6d44819b3e97e969cb666bd87ea61b23cd1f0b3295bb1b19856d19e9e84d4bd581ffb576272499ecd922e1ceeff083e1c9ccf72e0ab36522c975767e58dc653cdae8ae1fbe7cf44b562aad1aa39e7773e95b633e74c59de5c32ae3cc5a334387636464b054891947c332ab379c51df963afd451f9c06b75bd19da4fdf01e171a7459326236832afea31981d844fc2fcfee08bade7cddf1268592059cd94c5c9cc343961a66d21715c3f7ce29afc36e84c8ca1bff26e11fae55994764609d8329d717cd01338784db73c8a5b49de73c8d5c75af95a987d4880bd8ba21697040c0033221a5a4bff2bba38a0e49c0fb07a0d257dfc4dad1524f70fb920e946eb395afdbc1131386741585add5d75c30cf043d25705471cc6053515e4a37b40e92e59f9abdce050cd6469ffbbba715978efecc5b54548c1785d9cea421dcf06fb5efd8fc2c0a7ba6aa1e27ade96d20a15f1d32f5081dc292d45416395e8c2a2c1c3d37a3f583ee8d0970f0ee0fca08b221bcdca87cd02dc2a944c0405f0f708ed42c856a9c2a93b86efa182f4f188c4f5b516d57e41ff09b425f43a6fa1701575125a824383b2be0613024b423cfab80076d50f08763e69bfcc273692b6c12e743f70e5d538365b0e1e7f0f2842c7373077eb6fb570564a698b13fbcb7704f18627f38047b034a713fd0c0510a184ed49f8ddf145628e1d8cc3a1345e89236d6f5fff4707ac6397be682f19bd00795301fc0fc973c325cd01f10dbbadab050ffc5d8088163f158882433165ee07f0392a011b605aa7daa4110c7741f997563fea6faf738c840db422346d9d06936a00b4e4b9f43f36a6ff4b5c49e72d65c1676ec81daa9982a614007e7bf3dc7d6edc928071301acaa7c2488a0951f808737de3f8f9c5a251b7003dc4e9cbc9c9c87f6bf8bfc5bde57e9a62e99efb7b82b06779d2d830abed4bac0d996b2094312b0a58a2fe134cdbfaca208389ffca10d5a3ac38aa73e27d46b51349c31887c9104cfdfd8e8cc9ac3c489004a4eafded79674de4af964fcb36fca306a946151055ed20ae60f1bbdbdc65a91bc5cb5dff1e427024d4e4a9acfc0eed27ad9082e43f1319a4b75684fa01712781ef7e37b1d11539f8ee5b3aaf3395d4575958f5f5f1cdf3e37909359af6150a66b5a746540cbfc9393679e62ffdf16aa1c9e3eb5b44203922ab3ef097f8fb403f662b4565b298717b4398e8dc6e48b1f7eb087b50b78d8f1fde61c883806113b7080553f9418450b7fee87b02515114dfc9f5da11eabb9f55b0c633f5524e8d40a497cdc69ba10d884382fcbcac08061a329a29a3749484f26812b5b8824a2c4e89e11c1eb3b380f2a3a32448dfa9817c6e7213cd57d8b36e2e408ea472997e702346e36823ccf53329ab3df2e90b1773a2a1af736b72aee3b0acfcdfe48710ea5a90e71c52f79f0a7e34daefad7bcf7f40874bbbd5cda39e432b9cf5fabb942b12a655ca06af9d6161be2e8a35c967f7f51b8b87b7c61c0d947a05e6860cc99d9454d85823524de9967556d9bbaca73b2374afc1c944f50c090c568e595dccd97f4b7ded72ad26ae12e383f9d2b60d4ee786f47f34a0df7654e1f78a13951299c59419b7460e874ce25b0cdde7f7ff8ee3f11ac2a3c9ce54b87034de33e1d07eeb28f43e433120b9eef419719bb214b3e67cca3eda520cf47c9b0078c183fa4ee0c936333edd83fbe9a03f6f65a3b91e98573b560581d839270cf15ae6aca86c78466ca47c7d826a7381fbe578522c27d77fb17daacfc5d35501d85fba528744175c1493fbef7d7891eebd14a026e2eab207dc78e11bf1d15cf610fe6f072a9213b713465e08afa9c6f58d4623d8dd7fa4bfe7a1aea692616d3e73109c8e408b1fb061e2abef33291fd11417da8b92e30fc1cd6cc75892f8b83808de344ff67611742d713891ea0c8b4723dcac9f11f732556acf15f4b2893dddac24aeddb5af3a6c392d66ed497a5cbe719dfb2c680ef40b973fb4b09679dc31cc64257eab1489c13d1bbfbf148814f52e46412b37300187848aa155c4cb1a9bd2aa3939ab62b6594dc44279674a431e1217cc8a605a9e4f1f2ce0a5cdc2eeb8d0ba007fb84318553a6d64478e36d3320ed2cf728227318460c2a32eb46af090e5b009bfc191e47b4b33322a8123668db38cc3032f81256b306bb2a0c62743920e86a67562abe961a8fde83558ea2292952c43bbb3755e2c8ae1a5f74a3211f32fba4875df61a0e616dc3409b61da7f097bf7c5264f4091452e7de480591a5b16bfb96e9af0d045f3e9427de17efa0914abe6c3df81bff8ea56d2abfe72c9f1b603dbd9763351144648bf3a9a97e790c581800ca052ac45b34be1a89059872036a8fc3d8a185d937564b3ad455a881addfc40c6795cf61510f55ee72acc017be6528e47e24932829eb66d5e392cdb14e0d341afdbe3bbc995482050522942b5d62aeda626a84858f57d86e798ccea51d5d80486ff8defdf6dc0d40cccec6ca29022e07ff29288753b98ebaec97d61903f85d729a4501cdbae6daf1529c7d91886bda6da62277e7f4621ef99204c3237cb3bd8a48b43ef134906f849dbf6e1af00b3db2ebf6651efbe04ed9343d64cc655c6b43d3854e171f89bcd359253f935704a6a2c48362c79933102490a715aebda35f8ca86a4a13416ada42f1fcd7d7333ce7b991a0a030f9c3fd6504262ec747eb9e3e0693a71e547dbc610605772610c89c29bba9ee7c7b364c3fbafded34ed624f1603b7f3c24a03f80d758c478166547de1d823f5aa1ac3ea2b64fef3f88afd39505a595357839105bed47e1f47f29eabb49b5146f0749ec7c650d9acae7e1ad36551a404ff4d2435c511832879f578db32d0513023225e3e47bae2cd9de4f11c9d8c85d4316ce98c13e07d0e712f7e1902bd9f1221e9171e1359e208fbdf1a79a85ea1d37a92a5846cbd25ffde1ba53f486b8b97700c3cebc856ea9c4e08f8178165e2e7bd1b2dac4aacf64e6767641ae8d2f55761e2fb8eae9445ac193fb0147e7cb9964df5512e74947a9e134b0ca5d108ccbc6814f8ab999c234574d5b2009477719aceb158e200aba3949a607c0d9c7328610e4b6367f266cc945528b0d5cbb3e5b5a5545d48f47ef7cfd670456da9955171cde59ddc88521061c03af3318b11855c05a370ae255ec97138938f6dbcc65b2ae829d745e00d902fdc9969814f1f627d13f8219d98d6cf37f3fa16a58ee73557f33caeff9f01974e229fe031240e3444c3c9953285a9de4577be250e35f06143337b1d6bb1efaaa1467a3a17dda69d61a3e5c90cd8f33841b3f12ac2a3dafca3f3e6ab0d642cc31c7d6502e10a2f696abe89a022a3f240d7ee57dddc030bd6b072be6795f849d9338a4ad92aa1464b0c76bdb32e5c9f3234840ec466fadf4a9b0c0fe4db6dbb8c0f2a460c6a2c441293aa3b34ec340870cc4cd2590feb0691714f027c46d1ba4928d9f0b00e9e5f94d3ae55ce0991d078591bdf114ea80d1c1a091a5cbf608b6abf932aec738bc5c605a65835d0cf000c2e6174b13581e276073dda54c33ddad5d9191db84dca84f40e1559b0cb57cb846237095f92ac4725c20a355ef43d6eea45752c9b65542a00ee1898228950cc537f32302de92e628b50218217023a9cdc79f37c3a3d729ebe06d255a17e3cca11d6046b4472f3f1677c73cd1374fd86ee92b35b82ef948ecc82ca7fa05410c4376b39c2ff62426b0feb8b1eafe403cffbb8e2953d2e92bafd769449ff069b42ce90580127a92475004823ab465a6c944290f7b76856632063f3d76e61c2ce74fe520d34d1256c20578b3bb25b44be706759e3e2d8d0f9fcdf27e4d9d5703e33113ad1d5b6afbb953cef166e885a9ded366a0c3580538cc18be4269da60373178ce5040657dd3a43c4c7f12298934dc17f31ecb88ba79d1baffea629777ce2b4611844fab7407192f6c71e90b199041744b7ed2d7d0110543c2ec603664bd624485a86b359eeed7fc5c54c1a04656da23b12b2392c6c9e31ec48f5ce12ad2eb14b9417f5d934878907c78b24ee658b1f9061b12ce7e492327b32d2a8d8a1b0083fcea21b8818d21cb6a10650818dbdc7c96bbc438e2e84864dd5959c2c6fb8882b446c4eef0a553f9fea0ff900268f3925bd88a30622bb8dbaac39b3a778de2a2716fb0056ca3e9b758544ff240375554260de466d0fed736f25f4af9e8b780dec6914a7bc5299a2f9387df057bb56a3d78e4a970dd4acd2ba8b085074747258ed04d63f1a265da1b71dac82357ff5fc4b3243719eaab3f61de51cc276de3856ff7a722cf9e1715b8f495b623ddb65928d661c76bd11035b19fd9b8d8edced6c6aa44681b2b85a185a9ae207b6c1323022b8c40728cb6e7cdb072760cb37a8b0fd488fadb81ddb1af5cf75c208e99174fc161932b6b6133ae7a00de3777327dd993580b9a1f24cb371317aefbc93dceccc90bec17e28896282467cca6660bb19bd64574a67fddb862a2cfa96e4bc657c87585ec97ed801f7630f177a25b72f726a084685fae3fbf99bcd6e6d0f9a5ee26b5b83c9ee53096cf9aba71e6b8f85e4e6c956950f31d5df0772c1a8bb676db0cc24c8e3257e4074efb8e3e347b1a915df56360e7dfabd0731cf10422a9c5e67d40a69817a92f6c4f10b73c93997de7146b42bd0a9d24606a2940f1e4ccab6e6557ff4b8909123ab64aa806eddc1f18253f5ec5d523b3bf8ca11fa59f8162fdc27abb0cbc537839604f32f00d911b4bbaa1e4e7bfacc20210603f9b6f4a9017a13b79331ca916d4f3ecd6590995004c8f8e950d58b15eeb8a3627c6c96bd5bd6a6e2d0a06d0dcaf0ee2f817d4b9de31bb4000afea829d03d4e074f2e80853d5c5d518e06d78918dc21c73a67cf4a4d9786211efadf879ad6dd42a3cfc4a536b80becc9c14ae92dc349856f2e064e3c098300c95d6f4496998e13f5c06b24ff0c46fbf46e3fdca711ad86c6c23899f8d5f0deac3e009cb78c99782f6b884a81377d79fb75ad8e0db288a8d52680d970bb1b146e485a9467bd4fc4e464256927dc5f370c41482a1054f6598fe49f3f9ea73b76494c0dda72ed24eff30ae14cd76f3f26fbf88c960c92513ebb88a539f1f3b474fe1efe043a6e19648dda3e1fc1d6bd1fccc3d18c0fe91fd4d283718d87941d61dfa38f14c038e0f3157f7b4faab560190b0503b766e3b07b5b1b2729c14933d2e594b7d189c1bc44c0c18c8aba9360aaf9dab8aaf29728e8a660af6f78eb500d586a8f38d3a3cf690c5074f4fa735c6cf0c9fd37bc6c238be59400fe96aa99a4b1007dc128c7957c4962a3754cd2da803d545df851f8fb6e9d3108af7d40fa20c91c21f5c004724569564f69cef5002235586d1d949139492fcc47795f84c8c18bfa6def0a698885fbf04880b719029dac830ab626624744eb46ee489d94a0300b7c5edce37dd1585e05a3ee48efc714d6d9f33decd34d3f6fd013fdecc1e1dea9e250acde79c3d827e2479df1f537100eda049cadb10a472714cdd4e5bf827637d1bae99ff69f909fd260d1a9ee36f9df4c248475d77a97478097dc4dffdf7558fc736f601a4bd54e31204a6972de09604800f8825f24d887a9c0b758a65f34042112393e2e3e7017955fb6e2edc592fa75302c6ea6077babe496d48c9060f052585984edd57927afd11bcac70a0e4324a08d89daf4548f6c62b7c8d58e20c2823ec132c987c251d91d0daff5119ce8f0d04245109de5cae7cecb53d22abe529819059b867739e3a2c282763cc4735b81a4fb403d4af15b3a9bd30e9dbbced75e5e6f09ccead5a5fa7271e0d9d8366d8c870bc84e350076afd08be62b778d72cf9460790c93287051f13ec3bec6773de9c177277dd133ffd4b39d57270ce7047a70e850199cc0cb074383144656753e7b13110ca6ae346675aeaaa5aa581ecb2ced1dc295d04468223f4967381965b625ac540e9b4f8ac89d6ffe8c966ba1f91b94ec18df2130203cefbf28789dd1297e62339525e02715cd86ca50b60cea428222b945c5e423f3d7f38b4cb74a4f73f3fcb56b0fef6b9ecf42a049f037bc00135ab65eb9ab5b3ded697b5e419da629fa174512e8b237bbae06527c07b62c194c183a4daa45b75d3a08a9f1fe0a147a530b7e3d8fbe4f4c8847e0fd400574550d992e6ff2aeac06da5f85937fcf4208b68881e3d02d8fc15db43b0baf60f8c045ca7587018ca86aae987906ad11b6a0cea2d2928dd76f405fa69e2b7f07d350589db594aea58bb52b9fe96e4fc46ce23a1691fa464158679366169d3d7bce3feca3d4f0ef7527eb006405c2dcc999cb38af93bd43fcd43677d887e4d33cf2c3a3e8c069fd86876e23ed549b25eb1eafd383c082a763d9628905f722bd4f61eecd598ad595a8ba21ccce620a0672a9cdd6a45e1681c50b3355c4f2aec109a6242b76012409cf0d401b3d89823b71acd69473ea60bf63e8cf781d12022365c0827254ff0d8f872a2caf991cde7c730147c12fc8ad0efeefa6d4a1d82d2b1aa6139668679f73da4ecc5454185e2d8bfeb52b6ed1e092d6107662b760e3b851bec7888ffa35e31ca9684985b478e912eb5c23e5392c20477f3717205305ba7061eca927b3b7c1445bb960eb1bdb54b674b2f230212481cdb77073cc7f7fec0e44460dfca0a91aa8356dc09c984bc56799e7aeaa634dce2edad62b1635735bb6529b622de257c37c9d4a751bbe08c80b0d1fe90a8f68f97e89526f4393b1f2d18df709a9bb0bfca720b0304dd1da5f458e29fe68ea8c5db0d1ad32384a7e6e7fcd5737d7c9143303fac418ca4b415e1790a491d2f22f6750e0d1bb6f665726f6a75189740807d173a22908b40d58ea8cfeff46389566ed3bab766a3b2dbd8d0beb0e3ad949d147f81ed8310cc66f4121d743960396a95fbc6829652064b7f09e0f8eaaa3e1d1c7726315cdc5c6ab4072ae1c724c10e4d0ffd5c63fdfff0832118a16726604c629bff80bb066394adf651b456fc98b6a6096e8511d19a1524386cf3bc03e7c005d6a9396a7a718a789feca0df44aee8420bac87b0cca6bc1b201e67e88055c4bd019de03a52531e5fe2db8e2a02986dbfcfdbc541dcf4387a54f8e161a56b65e64c278b58fa67e8507ba9c5c44f6d7725e867bdbf0df15199ed8664956a3260507b3fb8083419efbae5c34328c0c17c5f9df63182081e312ea67fa485d8b70109592cc0a261759cbee8b147530d46cb0edf084f82e5a33260c9d3ba66231315bf602a9f12cfa52934410b8283e32fe1401e62c265056709f63a46829475e5318c799189ce340c0d98ae3cb15252c6a51be85061f1191d77a8a496bc779353afa55d6dcb837bed0b744fbf33841c08bb29df8ae4d098a44ee1999e28f2f740cdc048c9a3e2c0bf7a8ceca29cc9ce0c0852c66a8a55d69eccb28011a12bed030b1d7a6d62a05973bb9ffa56f8349f5ec13bbef63c878b55d3632125dbae6d2719a6ead7c784e7ca63125b1700623a63cf116e25e365c1affcb2f284e2df41299ed5a1a33a37223e3ff4e84f8367bd7a915296ca0c5ff103b438826268ceafd659a145ab258850a6ac43b87a2f555e5817aa3473867b569b434f705241bab6069bb37c8145089b2b00488b91063fdaf0f1fdd29ccb39e7d06f3e70d641f1b1aa7b020fc959f9915b38efbb8ed947786f514984b750e086c322805bd921395cd393c320c0ae416801989e722528c0b9683c67c02ed4ac0734fa28ccaa1054e36a096abb6c3466a3881a470b1d4aaebcfe738941209c1bf2d887ef4b551b266f8bb64a904e7b14ac8a2e42a1d17c1c210126e02c8b1a51854d3c037c2b8af965bc4b687ccb2cfa1e594f32e6238aafe2394de113417ca19de60020b6cc181145a78b3f1c191fc388920dff88c19c1525d7fb91af246d79f2d366cba86868f98201eacede321fcf352d648810acf29db8d798988566dc28ffbf16f660b70bf1684aaa0e4acba192cf264c50e7c78d746003030ce0075582590b3254ce2cefb7cff2e0be780c55ad9b250202a1f932ccba34b149c23ded38fcb6b31a88f75abe83cc8ff505ab178221c2524376b6adf8a4dc6a008160054204f38c198b7f731568b26069270b53e210b708f36bf76aa2b7bd7e9e6877b0fe8dddf73219fe6d5110d19e3d24e3c29dbc6f1fbac8a4a55509736695898bfee4ca5b36971252439c6eed3d42b3744fa0f03dac856441272d634d74c10c6bed9be24db5187402a2ec05336be09cbbfbdc65cfdb6ef304534105f5904aa0fac9a4103ae5dfde2c1b4de959e583554ca6ba2945ebe209de88a2e9a6b6fded784ab0900bb91ce44c8e9db443434cf976320f22c32e55ceeee20c776e4093bba27c24760acb3bf2ceb4685f9300a155db610ef10c3e7a08bc90a62f043a4a0514906b839cf1db3c6ead04b14b5555ba36b6661f8b3ba495f6a9886992a611759515fc28845d6cf4311c4a13a93eba7b0972448101e01149bdad4ca117069e44ae13b57017cd390888555619946de994e7540258b8f2c8f0f3de5e12e464786c2f6d37013c31055ad9240a8c2caffde52c3ea0af34c61cf37e442ab0e55f4e5c53ee87c499814d829b57a5be26cb878cdd2a1e57e93aa05bae80cf090556fd4cb4140d8ab633522582862b2b3007742a477e0383426fe5112b4024c3fcbe301297658f6f4cb31b13dc8c934a7443463827416233c7624b2f057a36bd6f4a8e4c73b5e25223d704720b40ca1cdd745d96d58c60d0ee5f26583bea813914fb2303e11a59011d27ae1d27b9ba71ac6d0bdc5f6d8fa948c22b3cfe27093fd249e6f3e27475144d0859eb2a5bfcf6eeb9052aa07f01fe7b3b188f096df0cdf6aaf39f54a2e6bfc24d5d7ccdae72346b0e6f45566fa3504b8e81f9654a3998b97ba0396967e68cb118a86831c701dc330b1f6060b7c710ffad0de7484c372f1a07e06d695bac4bfccc7755b0ff23f03e61bbe81bcb450fb32bd6845de3f106142137a4e847f02e9a153e7b9418d5edaf5eae132c004686aa7a12d58c0fc69c16e621e16349a572f6e57088c0dce23b070f71115be9f098e5e6f3e4e868bf1130be4690ab8cb972580d27bc651e025cca906806ab1af4dc29b6c47c22cdcb92a83a8213faa155e41ffddce90792cebb070c8b9e302bfbb9928a868a92cb88d1f80ab398d08e6918e920ec86db7dce6149957baa750451623abc6761f6d0299a37df6506caf0446736394aeb2699fd4e984dfac07a47ad376892017936d2b04a77a8d6ae2578a61578f3a9448f60cd22d3088c8b7aca5182875756dc422dfd613f4e94efabafb00b4a8b7d4f7b927fe1ee9596eeef7106fde037545bfbcbb8dfb3632c7e46090ec70bc63e2d7d9c8eb2f7a683f7213eedfd5646b1c6f235baf7584bc5e85f2ae6b5229bac0f7dfbf6f9e5e4ae2c29d7efad342b7312f0353c5e0a7fd2b306f562f60f551c75bc5e5f45048c0c437215cea20a27eb013ca53b0f09f09a64c84097ded6f52d470d947f739d16e1cd9e675d0460b9e906a6e34bf773bc41c4cbf05f7c1c523f7bfe52f24beba3ac464e0271835a679b7ebda7f646bc1ef3fe2a04df29fa9a3d4906277383e61beabc1d797900eccdd172ddeae53ccac2730303ba59eb56ed12163f824a7f562ac46ad152d24616634e5a9a21bfcb66c0e3b02e09672429b6404fe381c40f0ac2dc0de04b1897aff0121a58f096eaea28e19a8dd3f281ecd20589b5a9a5b71c621c66c51180e128b65c891e22c88a07325cf4be26fe4b35c20c4de820169db4dc280959fa4fe4f2c83ef2e3498cf3db16441bc5b4f4d37a7f646657b3578dd29e9a8a230aa9c3bb852eb73c5d02a1ce3db80c7cab754d81d32a5d5cce701769c658323bd418cbd29ef828e3d68f1d1dd0fee4c93fe29c98e4a55ebb8779da553238a29ca1c011dcef1b1115270740137c342d19a8aae340f6379e8b88a78dc8260d0de2dac01e00dd6699bf9513fe0e6ec21d197b81263f2938dd66375006d054828d29c39b391cc4e1bc0640c40c213614408c2f5e01f9a70e9134d8e38e383be9b8a69b79491d966ddee9bfe22082a2d496d906e1b3a6f8e4e62e739456e98e5ff87c077883fa0362534a326c71a41433041d11b6b1d0fa05ee15da92322025b4554cec0b27b0b5c0251901075c1592db0fce9e2b003c64898158c41638303a97e1a433cd400df4d6d32df529bc5217c8f98a28c443d5ceca5d8c8021128788b7fd770103abac3f1a1c1f0fddd2db604a3ad06548b3c26bee1e275cdc08c085c6a9edf73060c416de39c1e6f1b4fc2b96224a20fcb016758d3d8b7ae2705fdeafa037b764457b75b100ec3be42d5fcc3f383085b4b190b31d2f1e83e70c9cd9446afb0921ad146a39f121d09c19916c98965c64f6fa7ca1177b012bf0986115f97c3ecb39ae52544534d0ca8a65c3c998d6885479aa3c54c702f8ee48b3fa2e159cbcd8e2ac3d5796e1d8cca3ea564d112d412a6d5793b00e7160144e2f4132a6124414cfd1d29c89a0529749430e9c0adca42f89292c303f709a701dec2bbe8adf3f4c3ed87ea756f37d57ec290124655d0ca3f43adff9c5c3cb9be478498491ac6286c7ce289d220eace9c1d9fee08d2d4d6d4c46381187f3cde6c96ff610008e983c845ec73ab90a1d033c8818d578ba52a78be90425ae22b2f6803526d05b3a06c9580001a64fc74ba06d10e9a4430345b27f5ce250281a192c758333b1afd20f53e13a235968770e134392fbb0d79963aa2c799359e974e564a4108a532a5e6f7f603fd2172ea2a22172ff458efbabb80b0c2a66a7f8d2f291e243760de062259b63d9f66cfca0a5269845b51de658b0b45dc54842f88cf01ce06877069afdd85d358c3fd9540bd6345c2826eba5e9ea4388eb9971401ed16d797a9cc7e1e513cc61295becc7c66e45e952563d9e1aea5df2a04e7a87b58091d49daa332b098d5f8070711ca97c98c9b24b5d4387df3b1c42e80652f1dd6fac0b783e2afd6ca198faaa23e5efd0c847fd58ebcd6166754d3d06b84bf999e3a0fff84061ba6d3e5473b589bc68d3b7b921a2d84afc09aeab4d8ea0cef24d9589576d07e6a3f0d2cb9402bad812ee913f56efe2154725afd54e59788a0b76f78ad3fd79602cf95a34ae10ec45d25b12345e21a8add7eef570a53ff604840bec61c0010cc8ad3c690e7bd1890a7887a08c64452c34cb6088aaaa6875a899b43d2eb02d8929b709f0e472ad0d53f8a57512c5e3126c90db2e6935fcd89ec5c87028063609103edfe4fbf8724d9dcaff2d0ed4436ed8f4c2b160edf5ff392701747d45a366943ca0df8f45b2d9673c0391956a95120b01cade8d218003a1ef76c32d0996fc1995754261825d949a50702b0bd9212160ccf055ffd814f8e748bc07ac8dbf1aecc65f52a4c42074d2fd62588497a548fa4fff594569e92777d69d159f241648588dadde6132001c60e175acb13fc31ff2aff54f0ba58ccd511e469ddc32588c713748ec4d9ed7b516dc11c33b079968af32c3fc70bb4673683a7da3b2e129659ca01a532a5c67e99c6e47fc6f36e3080d15735e5ff2ae47d4717823519702ff297c76bace652f589c1e81a00903136f39abf4c0fda97c29566834a7e4adb96be7a0ba8c7d88bb500ce8845723bde6b9c41b5162cbe0dd9612463e562fce14dd31b04d11f6e6f0cbd8753177f360060f15661f76cb2be8d5a7411d60797fcdebf447cfa08df2b3980cf2e7403a5d7ec999cb1d610bed147526b51cb9e847bf5521e88592ccd32547bf25406bee2166756ba09636496aa676aeb53732cf0d68cad731dec554263bea252d16d923eacafcd96bd766cfe9ad8d65ce06863f619e4dcd3f086dc902aae0c5005c43883c8e5db6f43a856a924061feee165fa7d18fd199983423bd10cd995f68d5cbac9d268c91f1211ad4a80b03550bf40247f5cf9ebafd935f11842f5dd79930ab7b1f7712cdbc729f67e6b777db86ec08240136d890aead1954ca30dbedbef3e6c9d396a55c88974f862efbc6acb303c12f8b34241bc7e7718e29aab19e67f8497900a81ad513744265ccbea245951d9f62ebec26ed51c24e5de275d22c44b54da490a723c91f278e57c9e1453354499658cc2163e8abc9e3e1de371624f58c5cbf43c8c9a8191817792d56dc772135aca410ab00a5c8e14234fcfc5d33b22a0c69eb1b35199fde86471c16cc4b41d03c61580e8afcd088f21f1b7af1c4d56120a7845467918b088a94dd2c1c9d2bbd6f46505d3b0f624deb481f3ac5e664a6348254aebd027306a6b64224bb17f5f75d8589723fee5cd8e1f7ba30ab99b6ee595f0c739c9a92e357ac46d73741614cf80dd53f98c0ae7210554fb1d3243e0f64eec1b20b28a60592ba51dbef496c416dab01460b7ddfa1ea3a68e74302f63d2589b2ceba4fcbe33fe1c6aa3b6000220c8bbdb273bff28ca95e9dd1ad99a2a4a9f3c657de85ce42c321b4bf883eb4c72eb33eee9a0224484c99787768b0cb0f83fff56572e66528d5dc751d7dbe0be0fc1cce5d810548ba053464247a9e6c93ce41ebe58b1963b92c4d2ccbe7647604dc804167d1e73bf6df88f8d658194660ae6efad8967af692bf96c3d4168d087d41cc68cb9c02f853f7097579dafa81b734a6260e43ced308e5732d4e466cad43d8331515df0cb7f7c00ba495ad63d72763ef26d70be2114fddbaebf026c1e747806878aa97739d4f12ff18553f983ce8d1d3e046274c5932350bfba90e6cc72a21a4d498b50e955cb4cbdd17f707d19ff0190e9eb86c56bada2bb9236953db017f006cd61a684640246c24943b258c4376b7d61b54f5e2dd9f70b023ebd6449739e1e76bb7c664a692b1672f0bfe5630090f0905434904d258edb15c9426ce7b6e147e6926124f96f3e57c2bd0b65505844744e35f4ae82e883c3a5df0369e0410edefe56a7f2eafa8123c4afc42b5db7d28ce5b9a6f044e80cd0ea13c14dbccb170bc9858e8aa5be5274ff3dccf2a3ed8f103d42540590da5425009efbf98ea8bef0e5a60c03674a24919fdc5c9f17646ebce2978c72531c9bd4c0d398896f8822a4356ab4419ff857ed90238147e06a27835c40448f003db688a3875cadb12c81de0ecce5c39df50735cb3dce89342dd7ce03a64b40a6de33c4cfb4ee2e1766bc27d5115f5335ae0053aafa8ba776f18e6242b96da513517b4192b2cf46c73ec818718e80b262cfec30b90af99c2035f285da4f11b7ba7cd4a068c714dce26afc25b2571b24b02db177f0eeb4975f9e82b45a0ddc386c25946936b36063dc7f8c68a6f9abaafb0d187b9fa43b0709fd9df0ca24e08ffc7984365361cdbf6296f59ee4456f60002896b65d2aaf116424a15664a98f45ca9a1dab28ab4ead216f8f5c5d16863042dbfbd395f929be2f251d2b31d023e8aef88f33728e3b1d1086a9a504b0cadbd01d802d6a36522479a10f930662b490f95f84e8bf59a27c70a4f901a5f07273237fefe6d260cfc8b82ecf133741a8cd0478b351f4a4314c1b2ce8a71eac80ba01e32f887d051ff758489ed554b392b5e8dfd842f570e6222b65cd1690d436447990c351990fca1315daac4af5712576c2eaad9c3285ada034e97ba268e348f803f07d12a50335c0f66a3137b839c629a0681b5c5d0973d5a268756ca998882618e3234f2ad0eb0b7464489db56f7102e56f6ee6888d63f4f5b3b37983fc8310bcf1e13ecbfe32dedb478c1a04ed019e851d75bd7f008998e87bb081a11d9a105f06121495015789e5317ad813993bfa3392160fa53f52159b3438dc8d8819dfc21fed5e55fef70d702453282f155a24920fc319386658d6d4637804a0af4c20b5c27c518853867debfc5a4c597a8aeb4651d2e9b5a340d2ade2341e30d6d9a13bf423a1f33acc863011ca0c375b57d087a4c3d858b624362e90b89a10f9851b182b8db3a18eb786edfa5ecc425efaae343e74dd2dc407f52a9d6e314abc884f466edb2f3d1242825adb0d6a5e704d40b3455e84c386fdae25ffaf22fd291e7aade2f5c5206df723e1841edb41f24997718578cf0ff3d885aa1e4f7367012679f32b6ec6a890ce9bb349880db866c8d6df46935469caa95a19aafc748d6170ea73b6252c941dcb51076c560b537a2fa2ba1cebcc15e80a2c082f19f5eb342970bc4296c7ef78ae0e4c0d2cda18cba759b2e9055014e3a9dcd40bd3a4399c2288df2f2b7b0e1e7dd205c63fbfb618ac01a0c1992ab413d22107d440e1e6036e9c8659551db89ff4084e4def6e29fc3b1eedf00afdb4f005a44fd743edbc857e66ebf9fde6d4cc138ab9d77123fa3117a127fdd285f63da4d81e4d51cc15e4fdab0ce08bb614c8da2965f5270f9627ad647e51dd7e573caf199548675c50670878c1fcef8e0e071198631e964ca2beb2f72485372aba7d720d1b47a3b0492f25aada53072a6ffbbe2758653175841a85c6691c282745949162f9f80f2718d6dd3031e4c5e710fe49740d24c3180ea53a944e067e20f6b882d2a8b9063f8f54565b3e990f7583aed636ce8a17406fb418f0b0add2e97c2552f7db3967e4196dd66d0848025311384cb46bc898eb3f5642c2f42ee03cc907000b79aa004f5d469c83f7b46999e62e1b8bff9ca4a79a7ed8a8718bc99fe0c1526bffa8abd301f2446cb2e91f2d35de1975d5c1f7a85fc33a6e4474c6e1179645bd331fe7042d2db57b9e56ae1f02b2e4d204e5a37a6b9e4d94ca573185f2db0d396989329afd2d80e78c6ae53dc177a9ab1ea2927dd0b3e7bef81e05489fe2206b7328acf61727a754a51654282afcaa3df73099a0d2ecb958c69a9a2d4a5566286cc2f74e380b4e1f19fdb1701e8af8b2ce2e1d21e4b6c274478e363c65810173db1fb3151e50d19c1cb9bc846101c67e420f3b99d48c31fd0801a54282fa9730faf5c7ae683407c630b11c959c50bdca69f973af082355256c7cb84224df516882845c23cc51106ae83982ebbd575e35e1439d0765073bb540c9ff70e66bfcf0f9e1991939e2ee683f0b92d75bc15cb1da002180bb3973addca167fcd31620ab4078192f0a527cbed42b54cdbb53cf0e612d516048d3db85d0525a59e24ff39a65bdb650c30a32a8cfdbd62f96196aa91f37ac32aba5e6f83998094c9847395eb3a0eb1387a5094b25e7e49e8adb703c40aec5fc5d853a4593697163a8a211a9903dffea5c1301001a603f3e20a80f28841025e74d1e3d2d0fad0c925eee98c658995fd7cedf08a9d80d713d59aff0aa6a91b4d656aadf4b19d57f1ff5201d165e1280df4f490d1e49fc63281f1673ae34e087c930b0a17179fea1879f305cc2204ac7ec92bfaafb72b6cc84d556c186c98ccadd4ee73e3bd9a90c821db457d894a7fcaca8065eade0c0afd6efe7977fa740935a6049be26569abc8983b233c70d393d702615a568c1ad69b64d8b21e8143f8b434baf20fff77360f38f1f27a66dbb8021bc64b495a532e7f7d183c7cf0b5ca6c67a2e13501ef01a561b803b20c50f2a27b04588ce3057c798282d726b8082a3e00d8290c7abd3a15f02e4bbae9b5aa0563386e75e7703b97a1664f143a24f0537b75c7b27b53864ca40479d96d3f25a399b38a906d653fe617b2db97134307b2e772968d794edcc0aaeb6fea3d8ca9f441b313cce652571cc737746bdbe2e158f1a4bf31f8ce0a1e5a687b804ad38d73de2a15d156bfbca749ab1c8fdf97d3b3e0b6ed4939dc6db0e29013f28c05c81590ec982a32f0d24d16502a85e7675b5cf052c63c12fbe715ac40558b4783f1687ec9321bac675c88aa2a5adadc1d279512f204d464b887ed649e3201f47688666e3ab8057d8e6d61abf71a5f54650fbc036e2b659596cbd3cf526ad99dbc1541ccca3e78671f4ec0371026148e9de185ea4b1afb67387c8c11dd6726b2381a8462c23f32ba4c26729d1091114ec88ceab45d9f1d5ba6123af55172ff38193f24804a41c42fa645f4cfbc234b9445677a284a082cdfade7cbc8a3874f4548eef0478ffbe194a727a6bf49fd11b1851e1208597f3519f9c4b1423de754cb97398564b3f884c313cac917e7f05943a282937ba40d9ee736d1766e38f23ae0b784488015212307e83a1f2715501f563385377a725e09e8c772e3f9537ceb426552f841a6ded39431e70741d222f3f30b7cd124cf843819159082c86be819a5a4e9391e9b5a21510d4fe46cc726376d5878d0799851f11f9f4f4ada6f65bda02e0f72a7f7117d7d16a853980265158b2525e21c8da7d41e346d7db45f12facfb0d4a8e6091490006521430b60688506522cfac6517699813c64a57a8978be58049aa52e290346eddcc243fe2113ed8c3674bf211c6cadcef20d4de946f5a8164f4b569dc4164b9a4d1351a46d2f64383613ba4d4d53299b88696069fe9ec27f3e3207d3df2f8110128ba57ac253ffc6e309a664c61b4a0f3d8f55dd4af0dbdfd682d162dcbe0535eb5e70f20ca14f0d484db6fd5a500a707eb0f134a3318ff64627ba6c6811ed83fbc24bbc52d0e0956c6d21695d5012c5c6ec70aa6fe194ca176bd6b9235464ead43e220aa389671992b1a8040949e50155a626a6fee25b8be53dfd2636dccd2d1c52c83575613a578ce34ec7c1b2c4853245f61af0a7673169c21d258c80b104da8f229c04e742e30bf1752cf09608efe33d5a832018c0646a8dfe1e0b85563ed2336d31c3dc8291fd85cc61ee4dd621a37b6bb9cd6f17f2623accfb738a077418e5378144e937155558546389c9f6d4178c58f89f0131de3ce225d8d25bde664627aebe6a6b08c4a3f8ddeb21eac79761d12adce5c5770dbec71ee78ab1859582e23404611924c4e026ecd556ece42cfd6f68ea4b72445eca532295160b13c5c66c7179a5d3b3cb105221c722ffc2a9aeb8cf8e58bc0f9353cf9bcbc483789be3ff5cff57055ac372e43d6141291988cc0c32bfc29c00fcde42e0a57a2f050b4a022da9075fbba2a65ce3bc905a0c29bb19870441603c56b514e5a00518e5adc9f79610d973fd08b28b649004c41d90458981df717c12895ef3d05f9ca7541fada3c895e5ab37ddb700142b320c3de010248d6d0c4b5e21bdc48bed6b43d98069dc80e31ae18f351a8c122f559b9d714e785c480fcefddb86448186a7cb92548e3a857611dfdd3b30c38556885096d41da5a351111450b4dfe163a6be94fc74884ad86c4314f94c2cc86f5318a3806ba9a3e2012042f7e0c985d0765646fab720e188476d7396f5a0727d95f12bd35203f39d2c617a2bd4573425ddb7e13aa8d90d02366d9cd6d4b38ab86ef4c21d51f5a861bc8c2f458684cc7f6cbb35a11908aa24e4c00a408b5492c10cb0ba1cb5d5b1210a43465a2cc47647c270ff78bcb38f526bef5d61137b93c93e9d9e2f2a97c7104aed2812d93a840f46b10a0540211d221b41c85743a1568789c836300d8fe2085d4914bcf1423ae10ba19fa7f86eab30735cada7b96479fae1ad1d88a6e5909dc5e398e55069adb9356a82e2f26985b99af51341d4013377c0f4b93d4a09f76c43710fbda8527882b5ae60e3324a9d2d445711344bff247fd40848d72495f1dc254559d2a6d7185164d5552a1e7d3df0c2f914fd65413ae38437a60423d625353ef2d6b72c15831019a14e6c46532fff31c70b29ffbd1874fb3bdcb72858a84ccd7764f23d3814f57c17efe6804c8e7cc3d8fc1bed272283cc05b37e5e7d1319fdc645f8c098f1817325aa058f59148a643bb9dea7fc6661a37be3f599e74e0af3bb346b2629f6ab6b1aaa3732fee87bcc1b7a8f1c03ecf2907a6f1aa496a5790fb7c96b947f55fc5080d02da972c1d7387b68e7601d861f53cdb2441589f70eb788dbfb648a7f988eddbe2a5049b457abae68e1653f31f97bd8f292c75e3ec2e5819504585f4ca37ce2c2781921d798d07ea833d4fab92d404951d56cf177f721ac0345a0a7a72eca0cf4ed55ec1f413b4048da5c8bc416501a85639fefe3aff5b615b1a949e259d70426e733958aa384619c5064d592b19e9c03153918312ec630cafa56507a5af8b7501c5a1ab9bf17a0773d5718fb5b17d7a69054ba941296657dc640ea5273e37753cd46afc6be6d698099ab177818a5b4f0e4fa9dd1dd125dc6d8680a73ad8ebb7b434be6867fc75b16ff7c0171b7c70d42775588857e2b817a6356f452a78ecd2cb898bccc0b4773d88cb04869d5397431c07aa4cd6604787cacf1031926431393fdf58cfa21460b97ba5d128e8750d4c509300e107724d15f9acfb21a44a7c4d631572c959b6e24b376f7bc96fe8af5cba45cbd256b9813ccf7f8340e2146c534998a2ea273a513474c759166e4c575d8133db058233a1f4fd286155b1e416c83facf25799a0dbf5bac95cbd3df42c75b8fee34a2ecc1a0156edd427e3224e8231dd73717749c445310414a9d2f7ef7ac757d19ec2f3c98ce77264bf78abb1d6bca1736a0b8dd8388db26de1c7b5158f9d245452b11c20b86fac53cda544c6f312be5dad312fafd94476cd9e79de2ae5577d5cb4a2aa258015ce86fe38437a045d396244df24cd92012b1e68a755b2327534603131cecd59f8f342e6021777e825f9cff3019470ad7c6d254684167d5053c9b7e1bb4a3c8e004898f8323a07b373c8f1ca33b4a18f6b7220d84144d6203c552022ace6ee151009f9345dde50bbe8fe1545aad7a7b4f7f2b4ea205d592e260346fd9cf28a609f6ca8e790d35015b4f2efc1bcb2054773d5a19c8993758c60d6263f6cf2a0e0423e09d5622b2bb1be4995a98090cf833a8e8ba4c5e3cc0c7c799783308e68e85faa8afe81be6cf5dadb0aa69ab86fda79f7ead6499193590ea0a073236d4be927ba5d981926d89851d6df0e50431faeede9b2f6f3078fdf8306a202dd05fe2badf118617abf2c60b27cc6b0727eebcbb14fcaa5f1e9e6b19c2eefdfb677999ed19076a16c4583a9ea074a96a77e3debfc2d155ad05d844591089fe1cacb04c660cb9e037dc72ecec39e026d9198f1a0917a6fbc36bea0323923f59764a7a9be7e38f1cdcad4b33704acfafae2bf7ec3cc55044824d23e943589ef54831cd09fe6ed2934eea00e1ba3683d90ee41c14e70d979d8682597809bb41041f9a07059eb16ea2627cda7cad750f8314d4cfcff6bb09c1030b4609d52ec69b516e7b5570ad889c222ec101dd4052d9296e4ca4fd47460ddc2aa867c4b9c8b39ed61bd0ef745ad03a6b3af260986aac8ab857dc1106a153c317a6a0d5b2e05f8963de21a95a7f58a4b82a2d4dc84900d981a9767ba21e9b7ad97abe92e1f8553684735af2b47c09299fa937cee9b92c80fb774883efe558700b2ba140dfcab58335a8c7e6ce589e8e36c172374bf27f972e2a66eef4f23fbae65fa8bb9f52f47f40ce49b978a91f14012516cbdb15490d8bb421dab861e51b32d9cebc59bfb13c60dbcb87c3cff645d94639abcf3786db5b125cd2d8d2f38d8383306db8aed7b4653eea4050167f13e6aa93a089c4d3fff4bb08cb1af50d451ac6f7698e75d6c5f4ed9863dc63e373f01a7b2d2b674596b1edf240bdfa3dd366ad8a595285d7793aad3f087d1b0fcc6a9a018b461230e9acc7c76b7ba707cb71a229a4f07a9d10ebb984994b641a0769bc157d1d3a9c6021599d0ebe7e8371eabb7347c00d6647e238b90825236bbd4fee8a543c70d376e2dbee1eb243fc361a5263970259eed83e4be29325e692e7792c18ace883f1dfd536e5017775f9e3fa12c03407ae25cbe01b592768b9515e5010754b43af7ce28d2c17d183c9468bfae59cc310cacb10b997b2c9eba618e4adb09c3bc5086bd6e4bc7d112405032964f9d2995c05ce805ab3d4b823e9937f3f3b971e3d111714018cd867cc948b1710233a54062e192221e48af3e85ab587b2d95c5d38d8bf0af0e69a9c001c0a5b28ae8f6c2371662cb358403aad3efa301ff8f6ab1172ef445017bd1e0a315407bbf7a9ea798c27da90bd2438c07391c229ae9a4add9a49cea50cdc5daf9ffdc021e1f86ebba114e0c19a8dc5f949be0f856042f258256570a7660db23d70c91e089625b73f6658b31d35066feda8d57695827e05d20d8b5ae3c8039e03c1f0cec0c139b02b09ec79af88cb62ad491c899caccbc6d16da05777c35601973c20667cdba02c753c41175efb662245fcef917039b75f7b086864e78eb4877956ab5f1a33352e4afd2526128349fb352df95967983b3c238d5141c1da8c12b2bdcd9f0bb9f65320d4c7f814b55dbcfe5287abfe6e0cbaf7de8ae1f596576fe493730d60e0b106f851695fe9722589765133dba869fb7998dd13351c1251801763f8bd5ac4b204326fedd91a4f62dd8d1e279c92118742a3d5c4aeabf7cf87ca7abb2775c782c27ba0fb1c0b37c200971282c6b73c95fdec5ea8c2c5e0dfcc50ce3bf09bcede4fa5c0c008949c3a9139f7a8346d5c2c0f9761e4da053ead7062b0f008cd3af03e693dfd1ec8e512d46fc7fa96a32ef13f4c866ffa8768d8799c72b6f31d55d369c6e0d80b1082d1dcd212d854b9db99865c480acdb550be29dd0bd0e7fe85d6532b39ff36af2317a4af7651a6382dfe25b2b04dfa6b7bd11a97e9491a0f4a29458c80c86b6ffc6bafc02cca136ddc4665625e5406dfe2cf87d208563d9dbe0bce0a9838df882130f95a13ad38e98c8fa8a249cd71466146fda9b17a1b360ebfc01f9f2efcce2d9a9200b369f6547d0ca42f03787aafb5d4d25fac7453e988f30177a4862321275a4f5f4c88ab6569b5db57f0a437af7458dcebc306b359964f6dba78d24c611e7cee4446259224bd304b44c2df76a3f71d9b99af4468d81c2f5a9a8d2437871406c6f111b8dc579cb1e5d63a1c2429c4d3f8514c973967937e6c55eae135d44f21e139bc5fad1d8515352d598b58696121d15a5b3096bff5ea37828da3d5d6a6bd40d88a0518eabcba8ca3d7fb36aad4874dcbd27be467a37581cff3d6ea5dd0c82dfb67a0cb196dc90e1c7f5a8514aff50749fb7f02b5b435fcb3bb9341f61199f9d57d7b32ea207a5d27e2925b270e641cf9bcb0f4acff0ff86a255d22430f14d0f0760989c34891da8febd80b64cbccdf42397d9ada0d3f3750075c4a9b44ce7a15428712d1a8eee0fdc9eab45bb71bfad8119b108926695b1a26d17ca01610375723da684c0ddf9f122d274d6a9121a086e7d712e5f6de64bc548b05729e6315a6f143cb4b64f9cf238be48961bd1db9564b46ec37ceabf539459024fa8cd2cdb0543b56cdf6996c1286583157ddf3bab06f4935cee09f85e2fa6b57d5516602e2d91f80fed12e1ca266ab0afdca96d4ac3df32f1c54a2708f993bd6994c795550348df2603ad05cf21d4d32f6934d4b34ab691acb9d0593a69748e49562f63aad93516087764b8248d33aa973e846fc1e4145e438b15be715030f397a4e9ef0379fb15ac6e13a9e026cfc16c9dfaa0a14a46283ebbf4852f08cf4706339f5d4aa0d1930d0e16ba2e9d6a0aabd80f62f5de569f01b5b6a7bff3b95dbe06b5e3a740878790d031093eb31bdcf7c505ce2cc31be44a4803accd23e8141b5e281c268c404699d17dc4f4a19a5f76dd23f9aa91a44fa7c86f40f089dc6c32f720d0c25e188016b68eac62ef3b6cf2d98d47bf4c1b99aefe6a68b9e59957595e42807dffba002aa45937afeb46b1761dc9de6ac47805526bd0c700a955e6de06f7b1259daff5bcf1d0469408511ff595d195e650eb02c9aecfe89600195e28fa5ae46ab642c456ef0891b95b16b6c90ae85fde47056480274a7d496b2ea35ae663222b02d3fc37b4200453b7d2ff12cf8883a5580396ecddc09f0df4e52d26ad5e18fd92fbd7e08299e99a3233ab517bc20eb88db97f9997118ee0f54699502f7ac08cddeccdbd7d11334713de234a40496340c6c037f495a96d3662e3429f99f3fced4a63cc8e143eff019aa251aa781e0881dfe60f80f0dcd4ad2e3c07980fc5484acc2e4c024b96cfa669e2e794ebb33846beb84c2a85fe2b126218bd41ce292d6dff92b82c5b624666222b40698ce4d07240aeded855642d2cc49cf77e05831786af066d4b07d3499fa61cfcc737b22df0bc60bb057908e36123374b6ec97686f8525d9f99591f926003f69c4bd4788aebe6c49f5386ea35907e7fa6ce716b135ae03c05ef3301bf3e96da17e6612c3438678df4979649064d6dd63090fa2fbe89211fa5b1daa54a1740403b3bdac6cbf79ae5a722a3e2861ac0615ea85c2c8f0ef292d2ea3409703845f3f33ba903523ad158e428232c25e11c0d1aca44d212821271e73cf5106a71b090b95008ad9bb3f0e5d0aeea4e51cd67a3d513f1e5ef0caa4aecff818ee0928b81c8fc9861b141c3fd0b8a5a7df98c54627433b24fe4b065dce8a30153c6f2bdf0866fba623e01d1e67a2e5575f34b7a7e80734a19709e0f854e36b32b63fb6421733ecdd3d4ac1d925bd62661959844fa58728ac42f7d265d42f713c67d1bd0e229641cb3cab1c5e853edfbc56040d1bb85460def09f1b253ef8a66a2a960670acf737179293282444d3120c9666210b62e6e56792ba3fa6f7257cb4eeb462ee2f73a212fc0050c195f75a7d21377ef0ff7e1fe530538946645a1b39e268d6e7b8ca6f6ad35b35b3259b5f8a640c5387d00cd050d2f1993ff5209826ab4807f6412138fdff027f348e8fd26c16d6c75fa7ec1ba66e9351ac3f6ed3f0f67c6fde33bd8000193a82c3c47bf31b0bbbb268da611cdf69af1134151388edb6c2189173a3b4835eb0d3dff1b7d95cb6b5e4bacc51aa2958943b46d4a3254a23eba1a382da69940799751fdddde133b0986adb584e2052f73460fa70df88d6923f343f170e6c02911d0ea6b7b4bc198de01231c81b49cd286894aa942a81ac6d111a03795ed26efeda39ee4fe02e8efbbd5e1cf922052c5d12506d6133bd6d3880facb9e98e31d30ca71c113517e861d8fa06e5604a30aad69c8f5564ed180848d7c88b8f3ed043530488116fd5b8fb38e631d56e292be5a4e9cc7025b4c9cd851d43ca6071ce3164105c52fbaebd34bcac64b61ce8e9e36e99763beaea058cabd60f1c996295f793e053f6418358d355a7fc72e88b5d9acdff65c3032bc6bccc5b8ddddfb250f18237e91210196ffaa316cb9e4e6152d16ea0d386c2765eb327a94005c3e6063aeb984d65cb9133d1771014f8ae731b8c05b634ca175a00c44aa98f66576c9f0f6fd372a7d7d6f1d708e6e979fc944ab8142adc6803fe56dd7d1174839c4032eafc337fa3df8ebf8d12d00752011a40fdc3f4e302c1ea60ed24406418555cb9b1bc4cd1019ff59494e3124def08d179391aed50665f61e1536d9bd41fcdadb9c22ff64cdaafdf8de964469b9141be388d1861579a8c3d7518b71d397e2330609dc6bac59b89848b803ed5947a82199721ab0018b6f5c5019f99819e5e39c1e587f47601ae74c6fdda0f9530ef196cf3e39d903531b1e2f30e851902ea182210563a1b8bfec225fbe9b70a12a10b1358a0e6cd455d6d98dc2d586685dc1430f1748151c3cc1bd6a633894883b7c68cdc775d05a4a0d342362609294aaaac171efddfeba01c0834481a0e3809bc871a398a68b53083da541f3f00c3d87687f6f79a838c70d2a4539629203d46088a6e85e054845457e0ce2991eab314f250f556088e27bbdacd9a433cd3cfdd6a11e6eb264fa21a637174a0139cbb47dfd4dd264f55a53d5d7c239e99e816c1ba77a023a162935a3ef4e0ec0d75205a9d149f43ef21edbacc67d2bc2c570637062dd64d7baa88f86cf319b8f689d49428b82ead09e7b0973781fa6bc0d8a8d742092caf9420c2552daf28ebb43c1fad2c1e7d6441da5aea0bcb4adb127ca9293597267596a7182bfedb9defb9c11f1178e5239954af5bad3ba61244c2e6aecbf8ef0f657c9d4de31071876212fc65db5b30691d0af96ae6d6a62ee66287176e0d6d27c6b1f60fd6ab4e57217b5c80adef17da42a84a04c5551e8220ae6e32bdc359c018b9f82ccf425f38cede521ddd375401310610e6f7dea08954de15b5023ab13328129e3bc73e0529a79f7abdb6f4feae75824e1d89b62678af40fb8a18f9d78177966d01da8be8e89d9b6b4a05b5c8ed9aaa4fb97e19b0d0ba2bcc5348cc9d524253cad5536a81e3498373c34ae8be8f7019e3f410b758f5f1614b9b77b65eb9f1957305b82de3149bf2f1a56d97934742c3bf8b5f5fb96cf647146c82c146837099825b84ccbf0ca5be40053d47f3f9c3232f3f1b02577782c37a024f8edcf9caeeacfbfc7b861ea523fae29ea100cc263fa8ccc23fd35950887e9c33e24229514e81cd0ae69a6d3b499e29d2e365838cc474151713a5e10576e053199b3363b5289573808b2d06a5281bf0aea7c2dddf9335d96a134b2732b3a6a89fc161d3334f715057af3af73931cc0bcd5c7e23c1316008b12fe4db517b423dd45fa6d9540f2910f3488f87e0cf5a269dc5f40226a36ca32341fd7fee1cd16298c71ad76c92416b28555ab6a51ab82008d4d416324d88dd6ef5f355c64c4316ef2eb324d637d0e83497f95a7e841f1b0428ae9b5a94ccc6f1b6d0c451a3b9f00286fa0f671ffe246955c81df05fe29f85e51e3fede2861dc8dc575f3cf066636506dff6420352ad453d6c75fac82053682e249ef5ba89318d3e686a5b42963884f2246fe9a4f7acc974702670aed9f554b55d4bbe48e5e4a3a5e24d9d3a89ded99e509d9d4ead58d489810d9494ef5d8164e06eb7b43a940707fb5ed1c1f266a718ac7865264252e66f584a06b5830aaf043b66113a71cddcabebea391bef1180b237ae735378fe51bbbe2fd3be2f4dd56fac5eee4603c7715f057eb2d2e10b1003f5e56fadd6110e41b439560c0bf752da66595cf90a39c980d37826b1f48ab0f6f2fb4a555a431382a71adfe519d7c407746cb7870f27c88042bf62848e85c56ca7ecf785967fe27f3240d5655c375847d30a9a5d82431f538e0e051fa341ef47beaa0885138ea4b5219941a8ea354ea701fc9d5f1af085eda4861dcd6817b4e6600cbc23d56835f6088778f35c13c6762d3fe8dec4b7a5540fb8911b525987fae3330927a27134eca4d059c622fcf7feec8b7d8b73314121daf2622c83fa3d5ebf0fefebe294739f9398ee22179e59a8739a70c58b13daf2806103215bff8f4900673cd9a536e233323931fc43d94cef398ba2b217709272d7f3ecc8c2fdf565e9f3c2e1c587012e07fe21a97f6d8ac02110f2d9563da19a55c89bfe7629b20e0ccef1d63a47cdc025137158c5d9c2f53f19fa8b0a19d1240ba32d62bc4f05e129b441517c7e8a0818f01e06c783d12190ef8644062c782713d6f6979491123f2a140929d9d44192557fb14eb2e0a705dd569029311ea8e8b6e1ba8647f7aed8fb9226743c7e228c52247ba9af1419cf206fcdc1af5300e089fff7bec57019de772feda5a7e0d898ffb6b829773e4fb2e7941741679eea6c954fab48a1f3e7e7d74080f35a691f2f2ac7f0dd1a9e1dbfb38ff91265bf2623da9786425ba2d1252dc8f32d65e4f88e52afc25ef8872759d0acdb19022aadc48609aabe8b1967089d4fb48d7d78374058acbd2bc136127d62b3fdc0ec88c528f96ff110476b5ad1164064cf288468e6c838c1b995047e0811bd7ea2e5d3fdc2c7e6034435d92ed419f8ed082188eab2b51bc8b77b1288cee14cf5b8705ad3bd0c50a2bc7ded230448a316fe4c9ad881f4ee5c9a6c5abb357753403b00408b35c5f354306671a0d466e0f53859b15aac123afbc1cd42fbb237b50c5e2e39e81599275fa33a3b959a605dd7bbcf950c0c5eb4a66b66c61f00d87c752e0b2120f7622d2393132572882a992d646d86462f74278b4624a344a6b7ab2170bab5cba12962c59f6cb5b233f5237b4d4cc534b3571a8fea29a22042d146c20026271c901132a4a8bad232bd6c2f6aee26aaf46ebba2de91c9debf1513d2d9d5ff81a9286c8a934f159d67c32e285453139207648c92008bbc13df152726c2d4b144a485f162a53c4a361548facb789ab494b4871b928b940166bffda0722641356bdab908991e8cc38b12e90efdf32ee60bc37e3a61d924e7569bb9b7094897b91a68cc562d6af4f690f43b42b105e7a90c5d66e80cd99901c603d9c1f1324dac404aa9ba1bd86278f3b4c2c60ac9c310871b3647a1162e428c9751e812137daec6a583f1a6c4df0b80a602a1bb42c594dd6751f39bd22078d7a7a4a470c007d07ede4a1d8cb2ee98d877ba6a642d310e0a41ea9b141fc8b623ad482f4b27eb20970752ff7e03f271f3a8f5e08d4d5bf2738da4e5cc8513699140bbf82be2d8263336798313c2f2042c0fe745aa6cc3cfdd93cd5d7fbf942f68904f4bd7e67494583f620a7c9242a4e8af749e06ffcc708fc1b575fb2483f6b77a87368935e8223428b708ba2053bbfa8600375c6041473337a05851c263ed55398785e0aca794c576aa334b4466c83d7a456f0e824c9af6872b939e211a42223b1e31c99a5102e5b01aed8e2574968376d4683b08978d03a4928bbc5e1a47d465b30d125e71012d23065bee047df630ede4e9bdcb2cd11ecb62b4206305e50464fc492f8c02cb6863ac8caa5f6a794e162949ea66a4bef588a97819cfe3da220df4abd6e96bd4aea33fdc9f3abcac50c1dd6bbe01cc42f3b8ea04fa9a2dc569c6f6cba8f9bc9fddbd9d1221732e90b077c147528a4c8bd6ab10018a34e4695d7976d2120a90b1ff415142ad1d9a928110f5da1300f67db8c99702dcc6848d834e3bec096ba2ee3f03eed7ea5969373edce3aa421f6d01e3060865c7bc1dba6d06c6ca3b8ffe73575ee4dece49427ed878185721a8f1b59af86b8d2568ee8159862cb2ae662182b231d4686d4629befed52b4c4db1c0a20eda660fea7a8055e7f161d4bad846692aa3279ca7086bb689b61d210c4af483f2ca38168cecf0529f847447821bc74f3631e79c0f7689d3e9c8f8ce36f35e01c6ffdc474ef6d20bc0e048ee217b9fa97a7332270b297eca052ac82768d183a01886272d5589fe239907ab9b58ccad9551e7b061b2b405ae296111bff4097fc55c8c63c650f569b10b66439fd9a54c1deeef88cac96ed5f8f1f274b579191a6579252ebe008b4e3073231017f1b7bc3a826f73c9648f1f92979e1fc01799c79afae6900b139480c280e9fea9b6c9ae74ea2f70ddbc32fc191e89d4691d85c8b11213a12400ec61bab06f16d626adeca192bff6ec4fb686a240ce593f4033643e8193c17b3f8be3fd3a5c51840225b7a5957c8dcc2aabba80e24f3b55a58c78ae9c6e1e75a95526b2d48fd786c73e2d762cd76d0be3d90134a6d00c71367527adfe28410e9fe903e182171f8af9d0ab2a06ed052d5685356c814c7055916c39053acdfdb114c9aa0ccbc280b99be225e897dea045325e2473a598f1f357b856ae253c57a68982ac4518c4ddc1cb7876b2a2dd0e085cbdf61ab0df8c5e2578d78aaab5ca3d52b2f2c2cbc3f25a5e173665b1c7bd0a1363a37015b84a6dd45630b36ba9dc54d1c19990e571c29025a34e94bdf8f4290a9fb4d3d72a3c81a329344aa86c296488ab77b1c8e5e51d1aca226302ad83de8823ca80a98814d54feb2b76bedcb658b2df5f1df3accce06e964e534596df4afcecafa8af301dbfe33b694799cc2c03be2ce2fdc09170690b906a86c3feda1338e986b820d93cfc7d23fb25e407bdd97ccaf13daeded182b0752a91c3acbd7dfa83644d0863a168439949b281fc9900df85d38f7b3612eca8b453d6988e04a92eed4585bf1d365c8383b87271ca4ba9135a21260e9f6ddb4672aa9e7a37f2df507954d1e682cd431e34357ddb83194df21ce75cd2afa8c6716dd805668a701717dfc6f4f0090f4b24b58aea0902b756be1fcaef353b039ca7a5074765b3906b24fece82472adc6835c32ada1f9b5cbab57398d270686214641970ad4c4d2ecafe2b5dc8b5a24aa32636596b32b58d92d2ff73cc861ea00c60b2fc7691a575e522c598de5a48c904d25cedd4400f3d458f150ddf98174b304dcbd3d1c11c150a5b5aa51ff2f1aaf5001805f9d1a724f344fe325ede3b04bfeb0f029ce5c1a8e86d84939c0ef46b250f6cb19078d7f3f75595d3c4067384580a50f57ec3fff8133eb20d49ce45777db5a66a4eecb8587ddf4e409bd4ff996ef7f90aa2e02d318852771f5de5c964850e98c37c6651b653a471f9abb49a336fa5cd9fe4a8334e4e6c36062b1040a17148cbcc6513b40c717215d3dd45c9fbe0fcf45440cd214cdb6d30a3b3b72e647db062de7d10cce79ed1361c59ee0e620358523758bcefe2f76f9f580f56e2e7bc8026b4bd56bd2c4756927384b07c897b0f4ad45182adbb70d388768babd02b0acafdb7736351e6f4ee7557b2fcea326ef9e4218bbb309538642e6cca12db3dde4d155c8d9ca923c8b27320519d123a44f66e2a0f697a08ae0b8ea8ddfd19d876bf3a1608e441d20ab6169ac5c7432116ab5bab495567c321d4f6d40c209c1f72ca0150b9713e6e7f689438153e0b2e512a4ce99c3c07fc1e0764e610e6db78ffd4612d96b5543a5690c5cc8c8118e92a80957959b3adda7956070e0fcfc810dfefcb6bb96e27c311848da684f7627da506fa04dcf195984e9162517348f6c83b26f677b2e57c56db86770af98b4c3bf632c358cdeafea36f6cc439a7c417b0dc7b6240195ce812feea1b24f26378618abefc7b27be485d1f719e211ad44038c4c0773ff30b99947642bbc55a3772badfa0fc21a3d8c21a84374788cad987e317593c5af957f1f279c3feb05d6bf69041ba9be259b805e681044e7d853771dbb04224b937ba5fda1b3417cf802a4f88d6a0a63d6638ae565778ff042863c8c4d3309a4d00ae5d9ad9d5079266bcbffd0153b15c88cf358c460fb583e33881d5afdc909dbea9e08d3433e188d4a41b1057ef7f934124ac7cfe741a78937c57a9cb5db52add3445af226beba1ee3d9248ea359378dd13528740840f7809ffa94c359b83007f31a3426defd08d444469255951ae97e55d69a408cf8aa8e5d78c1a5cdeb5453a1673926748638517bf26ba4a4759ccfd5403f4d6c1c3637315aeca0c03528a9cabd7c34931291fbad764c6eb8a502ef7a0c01ae33973d2466720380253a7559756c11ad9b62c29847f1bccfd03efbbf422e7ae0b8cc05e56d19be77a841f38b1d92adecb54d064a6da537c1f4784c1fc9a079f47b56abb22ab93b04970e924141b52fbd63172d2b3034a3e7ff3ec2a7226f8d7749925ba57b6629018ce249a070b5b4b21724ef371f5951603ed3308dd3717a63fe7ff04a28499b03046edd15f2e5ac02a98bdb011e3a6077939f5e5d33cf38888bc9eb37b94151b491f69bab4ec531269f3e81bfb3f64716e443f3f0dfd2a9dd35e46184082158001ebd0d4dabfc7ac71c9321f53921da339037a57a7eff095f3929d8f079d416f0afe542233cdbfffabc559584fc449e8b3e9ced83d43d86005ee71af29c5adfbe01032a66dc1ad55bbb169518ebf4a6a3856bc7bfaa1f4699f723a717cde9d9dac3224a28d9c5007b1f01b518a296c7a97dd63d275138c8f92b8475f7a93a0923ad08e6edfce6e0df6880e24e7153b3cdf83bd7ccf6145e5ff8fdb6065b7bbc9ae62333d9f351e2087d97d9ba1f22fb04e894735fbd3b555d8213f59c406a82d6d831d3461ac37ddfaed052cec4e16f76939d9d399caa906f8c02a7ab9866316e0d63b638a6fcbb08991ef28243b85df5b06524a47d8a0055a852c503d9986ea63061591d43265495d357e74b199db184996e8f26cb15fe604e9b91b91bccf44f8ebad0de37a2f1adfce0d538dff593b524daa0be2bc103094aee76dfe3a6796712127782c6fb7318a5b3193d7042de0dc9f0b7d793eda91d4d9d2450535bca32747cbf94b290aed35c8f95f7cbc4abde6f41e046ea991a99570ae2aef458a3094f1c02cbdc4c1d0e0525b4bbd0f871e0b5a077a44bdfd44444d2a08d6e6478585bde06b561804d4f710191563f0d863b33d713e9fad63f923746c64e4e71dc90a4ed41d9bdff946c7f00e2e1ffc287f985cd893a33a7fe800610e1c1989a19496718b29b9ec0c62b35054ec7e36fcd4c7d323fb5f9f31a07de3efddec5ccc76a089eeb7bbc8c778d77d9e5066fd670444aa9703bfec8d7f050dedab632de553752f01f7993201940c375e55d3618a1e660e23b39fb620a7cc2ff9e60137526eb45d73127000dc6e702b4c7e30334c729c206d2318c57e9923539527eae8329a6443631b1d290f5cb1fbd04a8614a8224510e621a5c657930c18f8023c5ba917bcaa3dbf64068badcab8d80441b8c4b04353ba8016a59ee71e7d549ee70541030006d367d169fc5a3ad37b1993ae690079568c86302a699b03d29ab894a22a300c3d9ab9ce2b05d5c25abf3a6433f1ac88e76782304e58f38f7e2340390ac0f70ceaa427aef081f36865ea7185a38dd363ca9f4041a27b3d1ce70223ca4f66ef79e417519a1873622994233b18ad240d2cbada10cceff71fd4adf6fdfc703ae624beb6508fdab91d5867d59e670038e40c11a09eb13c8ed0448e6e6c00f9eb0aef7a2846400969f7bd98f5f9574d35507bbc4c165d529776a95d167f03648f01243ea387d08a120890d12522acd5428b5b906b50c0c11a32d24d59a4f0c2764849bf8d647d4844b8ee40f876ec7f7adbb1282c9d1cf5e7e5612226797ad7d725b325f80af10911cbaf5a70e4e4cd8106e74506720284e0a3a54d8c8ff22f0c2e4abe4265570f674a98670ca5b6a2e287fda9b566604b47d439e1000601749311ecbcdcb33cd0576decc6cea69be28dddfe7e6f5052219498a31896af3cbabbee59103a3ca94262b17637752e3007211715b80441b0dc6b35432657d581b1d2d121ed1acf876e16779b2a66ff36ebb358974682f2818439bf17b530dfc81c150253f44194710fb555fce7d73c5cf3146063e6b41badf53f83a1c27e4fd896789d12885d1ce5c7f5038d6aa0df2abcc47133f0c85fb2729e08db21e589e980fe149c28e126a3dfd411aff9e1bc383d4b5f6cb40c344771bea7aea449068b60cff4cac140dbc86d7a276d2297007708c20724f999545207ee10e24cddfe802536e538460e1ba2dcaea2278fd1f2bf6bbc77409e47f499ca5c3424206a1bc149d7b99bc3f39a8f6d8eeefb93715117c78e8fe3ad5fbd1ff4350f8ae508043c172c35f6e9be2a92024700fb589700e72a05e263f9e311e730277512aa1e00e736066cad9244e05a01b057d3a1ceecfadbec2ec110c8bcf45d776bc43b71f24341fe9a15a6602912dd11c62f2345336bbe42c5fdbf075d750ba72a6753485be765dbc5fb2073c17169e77a88a3477c0ee8ffab90e26e519956e30ffb9b4490f7df079cfe75b267945c32ef22afa9a495476e08bfbd3caf1a99c680fdf704e8931916a62108697e57c110cb5d0f4f0197aa980b60d83420374750dcc0e9cfea08608ff65485b2a2086c3067445e2f6f734d08588a00a5ec4da3b109b0dedb57b4c64a60222c9fe783515ea6a88ae5a0a1c970abe0dd8d728dc845ec92de7840990c8e7d97c2ad319c3cedd9c50637c3886580f7953920555824fdb290091998d1c52f40cb92199decff529c044cd6ba3f6d7bdb42e504b70431b357c0a5df32fcf8f6ce0097289e50494e5abcb19a922a5e0e7225e3d3fcfc08efb36c3cc43f8ece9482f0497c1d19bafbd57628a078af5d81885766fa5fb83a5961c07c354e9d4149b8bd5fc0a1bd6ccb068de05e356641f1871afa58ee98c6218548917bb81e32e86b1598180fb851ac4311b717bec08b600a407c9bc42592c1d09abd019a11d691200ca3b5e9865b22697eecc067b83ae928a02273f279e4ace91343cc5c97a3728d2083a92dd6b97bd30b337c8929f717bdbd601eda0518d606043d3fff9b90de868267ecdb1c1cb6eccfd50e8dcff16537a15f250d73d102e51fd88564c1696a9ac70ebfdd7b51be27f159daf17c4218bc6f061b3e5e7b731275b9b85e6f65a3576138ef83863ed5f9139ddb45bb30fd81e6bc409eb1fae696671461b1b8f3d9b2c5abdcab4691edbe73820607b9a3c205715a58bb375bda167f4728439c03355d097646a03edbabb01bac8c71fb9c66d755185ab693bcc45a7285e8dc72ef445d5798b08f2821baffe56e747f0efc12b9379347283070e79f4146bdd6230a6e9fbb05f314a02f4fc44c917e8988bfba50fefd39766c01ade1469f6de1cf8af9c1dec105d13c46ed5ece2b8a07c86aaa42bc9a168e4ef18f9885f2edb2f536b9a9525bde844b5b2a64b9206517f43cbfe163db89408b9927911f46c0aa22a1034b5af8345392dc9e2d6cbb3c04f610fde70217cc16cf9aecec2deca92fa3b24af83421413ba80995ae42c514f887cd7126fd8b82f87d25f2ef735b2935a71df54c90e2d205b7fa64cf95043b62cd2e552f0d7309630d0b7fd00caccdd09d9b2c61db2f0e746e37a7388b7d21c9d3b4f57d50d68d595136b83c90fae3af5e7e0a1e0a006131328a9d008d5346859c7839f2356c4f1afce392b941d6eac3f1ddc7196504f3ef868bcf95b146f46454eead56db23052ad2fd9a190ec33a0a2abad6680f7c48fae5c4f6ab1bfdf8b8c5a9e9a28ed22f5e9e7401f85fa433c5756e28f619b2379e60337890aee16aa7b1310f5c8257abc02128ef9ec5bfc96edae91d5df21cdcdbd692b4b4a1bb1a314157f349d870d109ef8f7e632f29bb6164e67f41b5bf5dbaf8c567a30ef0f5d645ffb82f764f7313e99e30dbaeb8c77511e815ac0942f94c7830ba13de8a1c58e752e94086daca0aaae94337fa25406b400e14d3628bde8f1a1fe8c4283b6ec805b856abba452d0f387edbea89384565ac66bac986e9ab01fc832bc4007dbefd5b45258c0a738f62d29b3d6f42468e6825585d16809d87ee71e7675d77c67572a3ee3215858dcddd820e245d7e8baf0210e0d2aa38b2e08483e1e5bd9456ce346f2477e94d4b1b2af1ac7354e1c03a1b68af64c833549d43c35f2053b062aee55f1c13a19ac617f45ba0dca6fc554c57a628d019391340984457504cb5e64110b01277de97383d997dd8070306ccd88e57480818d692bff0e0966fdadc900542aa603fbda7143186cba5964951e500252f9072b19d7119522c623c1f9b334f7d029282648aae81caf85b610b2a0235bda3e0c6a7b7f04d44d9db0fb4cb7a47b8d4a964907f494c210ae997cc146f29ba1e23a25387aa47b5b744a7f09229d07c4c8e48b12bc8920317eab88403f8b7d9a5440ea18bfc87fd8ae8dc210eceeffe6b9ff34ef9855b3ccb307a5caad8f19a10e95b20417ea9949bc21b6b44a2c3a4b3a2d6bd15147f5a87dd66ae1a020cfdbf3d1b87ad2d512ca778d8dc37ec9d4cedd6ad7504a235892f5d39976005c3e145fa2089d53c6e58cc5c5430bd171e760d5424628ad9f9af136272a955158ef68eca7d8a55eafb2568587f6d01d2db1bb2e56a16602ddc5cbb0327b0377c961a2e0e62abf6f6b1cc080e77ef271dd1d4edb6d9df09a6267de7ce90d35c76d141d6bc52b75e0fa7486ed09412ddf889b5b5bb659806e7c097a4dc5ca8d15fb94d77ab04a8cb02cfe6f38644f0c08ad5967280e395f4a4cb334904524fffcd0eb2abf965b2d939cbf706817b8b67dd2b6993745e5bb2a729f10505f34b18132f4a08ae61e7c0bac3c068131cc5a281bbf0252bda7d7b53db20d0349a622c146b7ffbc814ce23de6ad4b537992a293e7bca552059a116493b160f4317b6c0eb0a810b9d93e60b069e19e57deba145982b9aec99a7e474be354b738e9a214d0ad095b0b55abea9f5f43ce8a460eb905fa41d7a82b2da528ac58f9f663fbeda7b8a752a5698035f3a982c3074737a8ecd6ba7ca2e777494705f34f3202948543235cdb6deec6ef043433b0bab312e94b0ae62f3461795dde8ad6c22aa95d82631cfbddcf36e2abc162d653529e87dce6c4ef85b6609a751fbe4e979c4100e89fcbb1fab561c35682643f62a1da6cf695babd3322b21051ceb9f12e81126aa9cf54394953f0c2d3cad14f47cf64a93e2d9980152508f17df3b671ae87a5b5363b9f072d58f0371acc6e00bf5fc5dedaf6184ca323b1e7b09dfb872c2aa8c6385afe8f8a066253c351cfcaf107daa04c7559db2695c2d6379332aab6649916487fd677b0942feb2344b9a396d23c84a5002b9ec68179ccee0568547d82aa946816977b1317e606775c3b83c08d0890c13f9dce2944893d8831f4d34fc36888d316dca1eb22c2d37e8ed101ee98c480b6ceb6e4d3af60796a8aeaf33bdc8b5a5ca4c5cb3aaadbe9302e1fac5201db097d72a1abf4f9dfe184a5f3cb606d8f979d3444caa4937736b8f6291eec212e4c953012cbcbb5b04a2a0ea3a016bdd0d4760a9d1a98898e99aa593604057fc2f49304fc12fcbca5e718218a635c183e66abcefd27f6470d81bc24922be382716aa9e9cd55c7c143fd73d125de7a1bb76caf880052a51753d409ac6dc57e63d2d21c7dcd790d2b9890535dd21907db4dec875a9b529b6bccafecea26a862004a1c5e8a796597dfc4c9de66a128d9fc8223417914eb52eef778e59dbaa9c1f8d5465ee2143189e83a54a14e40ee04b5dabee9af3446fefca5cecb7ac9fd0c6e90994ce0077fb64e4659fe9f807ce6dca8949eaa084e5c53491a20f690c6fd452c19d04c5f310af4c68912ea979d5ae38bc5c16584cc366a6f0f048f98cd5f06e279164d2adc380d0f91aa3b308aa1014742fe9330f6a060504fdc356e603fb25eab99729b038e1a03cb0bfd29433a291812c59a9a627cb6bbff31104ea7addcb63bb7e53051610c3a328d6ea1fc456dbc38faabc68e9a5d8386b664ddd57ca48937e287ab7584436eb7d6328a64ba610dc3c1578fdb2499d17a48b27c5193e0dda9817bae29cb0a75e06d7e8fc7a1f3d2a1f43401ea27853c7b03999f128dc1dd2549e466910ce55757adb2a7328631421ed1723767a92d71f70ce415d974a5168ce7d3a7cf05ce93238353dccfcff0e3945faa601e5659676ceb740e9fde217b9535ac9a4934b35a39210b63a2e5c534d6c96e943bdc7c840860dec20115b03cbd071e9f6d42d0b17e744069f86cb1503c88ee897415137e7b43a2bd4bd9fae404136b407414b5df4e52d41db4ba9b7a0f9bfc151bc8fc0941bebe31c61820b8023b776f93d39d1930a6d0dbee94459ff722a4a21df15943835d0963feb2255e1cbf41f7c8219ce98ce8f2b248751c6686a950a66091591452f0e8d73331f8ba51f7198fc26c56ca5e4f565541929a6ab31d09364565dce3ca505e036a1faa973c3012506153e0cac746453e61d3f42f7749699dcd11af857048501c261cc314b741263e65818bbced090d2494f3b97328f6e640c2a9d4253df77c56112dcbf4c60449a648da686785ee1a112c1dc54f36607bf3bbf27b03c3e34565c06bbbfa81e88d295ac054504607013a679ed5070751e2273a27f360aa5b8ac9d0425eac62271f51a680e692f17c730a5e5fdce1ba89596cc99bbfe18c3be4bdf13bf77273347cd6e949b3df40707dac91e2c5476db605e66bb00bf1122791ed6dbceac5a1863776c3c566fe391e48207679bbc702ccb8fe7d09b991245444c249ab0de25acb072a694ac4e5303b7cf8dc53050f8171de569c92cbbd576c9eaad8cfff5850de58b798cbc527694de9ef7dc570fde55ab8a4762e8d88cd49b2f8ab1ff20f2510cd7d1843d8e6e49e8fa36b4c12b6080981fd5f2acfd3e7689ef24a8b76b3b8fb3018e9527917b09d2636651fc13d39540f19f066826f9f9c03b98df84c71b7873700bde558076d1c622b27cdce6c8748aeed6a48946f63d2def4e62d43c6ba48f495179142043c9ca0f00dbe843eca89b39250861bd12bab0cc4c4ba740894907879ba8838ca6c3186454bef2d211049993775959d44bb5d0ab23790248eac6278d0eaa5dd63b3f7f3b20e914fa818cda6ed4cd8deae6f0e70b6fcac3319767115083850107d60854bb2986fc020ffe1943716328dff7fd8647dd55e7e0dea2a004b0f7f427784fef2ccdf0a45f63d883c9abdcee44fb351b5ac1a55af4214ba33214323f5a528ba5d4601e8ad4ca6ce76510627150ee1b1bdedfb3db1b9cbf972a99d7e41d8476104df88dc2e8369b1f6397e8099dba0ad6b78cbfded4058ba5429464a3f556a868078cb3a5534eb5f865aff6465f5bfa5063c0c14903c4da232f39b8cf2b8896e66e40678d25e3f7a01d4b9b598492b70d9087c38f7e35c67e04358c171f903b952cd1da7f7b3ab7875eade255509b439e9cb315e79ab1309653e044b7012c33c71e4e8aca9e505c314978e6447b1c9412f09f6c42a9aea437267c2896e9867f11247fe9cce3d4450f7294d06186e3cad1fbde0a59ee776dfeb5e1d17308815c38e8b133c42fb24ff84c0b4c40abba0a9df5f96c91185d287c73cd62006241d48347a16f26e85d1d0edc0f5a3b317a43815aa81fea5f8760c435d0c5b92c9518aeab07db9855124ba1d19c1d48c2a673947ab994c95b6aab86db658c6b53b442b59332c2e0fd28c3092a0e8c63410171b7605034da7e6fa1e0f05b8592a0542749d0948301938dcbd8d2123aab3bd89fca08bf23a91d48017ae33f59503230a75c774aae9124f8fffcad1892c85e9c2dbb20729fa4ed8f8b7d3aae67b5b643afaaf25e31df039e0a070565a73153f080ba11a0194fea6536b0e81795ca20bc1e35e62fbf5b3e761c63f5554d0777ba40bbc84ab1f868a669e06f17aa5935d47fc6fd111225638d559704ebaafce905bcf64bc2d25c907a95f870ea8b8c6963f48bb7d7708c9fcabc1b5874ac249b1f4cadd2de520a5833488dc77cb77d571c08aefeafc8e9b75d9467d4b43c605f2ce192bd096715e080b603a5550b3b8a99bff221d122234343b0270fd6126909bb0956f69cab845db1e9c60b3b01452efbb473b31699b252b75ee1ab636c34007f905a43d7ed9f077be9780ee03335687b13d52f9bad5e11113e2d675fa3fcf2bcdcd872541f31a756eaa51f7e9cd522a2b45d0cd4d259f4eca3298e11bebf60c8753939ef246f426fc33b435c9da04289b8aad15bda19a6ecdae8c4a6cd4afd6d9021787c956236ba90483638d2953efc398399fcaa6870ea7a9a9d309f3ac0444c284adfb5ca29d327ed75de45d63a186e68aa5868e8943537e90a7bfa305f5ceb596edd0ae7e5f68a906dc792d58b5296ce3567abc9ad68e3013ee6d51c0b4aed48030ee7b73b58608ac5a21d5c1f96f03edecbb7b6e4fef4f78d17ffadc53034ee2427898dbfafd264527d61255ed508ab73a748ed9d0ab2a71c79384f7a8152a05121cc07eceee94ee0f006bcfff727e70f5d37c3e64845a3e214f131d5f43d511da932a416323e612a481fa43ef25a743033daaf555e7f30349dbfd36ce910ba9e3648bdeb2c3275199224b31cbb026ac0c84c81865d295bc77367bdf47dd70ae7b75e65396098149dc35a364128e4c0ac7a117fbdabfb62c98861dfb732dc666e04e45970f46b99e68718543438bc19f39c68dfa8148974bc446e03541a8c0753d5ed6c7ef89a14531b9631e8fb5d9591392eb25401a178f3dab3b1eee3dbde28fc179a1f628686ecd3bf9515d38327493155ea92350cb8282c6f71d978e4797136912fa0cc008a3544e646f2e02d040d7bbd56598e190a2f581622b606c385ce298b3e4c191990cb4bd1ec9bf1c40890ba69dee118534003da3be89d5f1fd01ee99563628baeaa6737150571768e14e132bb32e0c109c22ea33cd0de4333b0aedec069afcc7b59d10a9d374d0398d273b45cbfab8b845ec1cc7328fb6162560bb23060c73db4b15d6754a5fb961a4df6c75eb69b3a7da363611c9754d8880695579166e00da2311d9c4e3cdc5a17e9179429adeb95a7bc4b69e96de6694f70bb19da9bba62af6c9107ae6a29a95ca5bda6aa6d9a7c8ecec96daed414de9286e43bfd8fd4b04b23b7babe2302ebf1133ef56f285c8d01f4ba276958a6dd8cad8853e3bcddf34d9e7ab6a90d8b738b5f9effd22063867c442dabc2e5aa2dc7fc8d26ecf12ec6b3ecd23c13a70114c733c70b84add75239c344be77fb8c429c982e6b790c342eeb80f59bd385c18e8fdbd387bf611f588fa8cb5c6c3a6ca762ed495b30f5a5b862825da6a9001ec12a02303c0266f7bd3b00f67258cd89aa609a60f4fa89dd73926a3d10e69863995cf6e49ace73a1f701badee24ad84a2797fcd621d2ecacc730505a31a87b233f310453ace1c61a90c7feebf12f30125f273a2981832fa35218a6236870c61c4eb06be9ee1acbf2de70a5087858228bdbb0f3a7e0ba6d7e10e0661466997ec7a91a5d1cc37e6272ccac943ac41efe7610d16485c98a3f21559878579ea792e1459cab5d519336317b60f64b1ec1df1175ce92da703b3e08d544c01c76eaee977f0cf18f63bfd2ea56ebaf00d5cd2ae1b6582cb86d0f44c8c4b4e1ca8e59bb76c1f79945ba4c36a114eb3f9402820374e2612089745c238d07c569640a97ff1797ca5d62255c833db4d2398e926dbd7dc7d29bc742d43803ceae244d2490e2a9745802538b19b507d9e7fd21261ddfd769eed251d79e1005f045f12d74fd05d401771ab24dc1585c8637900b61b4a40fe3a7e9a3e06137f098726c78d932ac9fa547a012329c5a8cf06abd0ff57f2f220db35ecb40e9cc3b5764c1f1a5a7cc8ed24676d60719ed8c993137233d7bf5ae3515f9d5ea7378e3d1ff259c35ea7826f71b2a361542318f7f47894b980d16abbe2a20bba5d1bbe82777d5345e290b6d11a68b0e3f44ee0d2e8dd213734bb216c984214dbdb7ca75af7ec10dac467fda1a0aed0eb1f81a94fff767a55c59acd287bd661b595a067b070ce5e4cfd455d978d768731f9f6a29e833e07a50d338c5479c1877c35a500cf1af753a4f71ba044b4a9f90334a72288ed513782a0ab05f7545ed7e9d75b6b93ea9a87158f253a0292b468f6d497dc3b2f43848891ee2a70b7e587c0b61cee6f7b7a9ba944d31df586aa5d16d1595c3b47b64f85cae680f27d0561f7fe9e18f23008d74a43b9c4bb9211b7100e00c83baf088be4edfb2c5f00f38bf97c89275341cc2624b1f70d4e95b7960ea4486f6ca5b37b5b04ca064bd057cd148dba65e9651de0a9fee270277599d86dcadd3e51d5ab7394926574d26ece2c7b1fee5e809c6e93a2bc92614e2bbd369c166cdb5eddd1eee52f4d5ae326bec8a7cc3ce267b385e71a0967321bb0bf122505279789d0bd07462f17acc0bb8c0050cb8f4330a137015b0a6f6b03fbcb20a16c07a3d9b593f3925930a295111b5015209df85528a0c8d58872bfedc81e10000bb23f7b59d17a34bac45d1973e9fb49ab9a8a3233db3622dc6720ca16bf19cd9457340a73eba5976abd14eaef05b1f8b62f4f0acec81d274a1fb623d5dab0d1b45140359259c631013c9ba4915fa3b6bb11452d34dea509c9087de8e297fd4e9e055be60ef24156d2ad921a91007d0e09c094aae76b0ee2fa71717891fba13fa5cb1f86ed532253bfe73c393479f26c70a3925cca37d0e8a66581b5ca6b3af31782840ea98c0d82f075f63aabe3d63f3a3cd1e7080e3963eb55f2818bd536cb23370b2cb39f2c624c8ec38179699f95f6712a16624250a4d3eb884c3ced75da72949fab59947aa90b0127e3b708b5241853d4f7af8d274371f97d457bd4a3bc6260715dd8489515ac0e9e7f3214b0b91c079f28943041c7a9723a8c2b1fd5916ababb71b26c3e17c4f389e0456768f7c163d7fc0c0d76f6cab98aeec1c2131c8ec407ead441d75d5bcc946a174e3dc24e76945cb314419f5e606250aad907050a3da4e974e69a87bb1a89cdd26e6ce44ad0f44304d933b522140067debce12969d766441bfadf376886e5a0fc29f327621e9a798d6113e6802ddc9942d31ada614b28a9480f7a7a0ccb8a0473e8a9ce92ffc3f04e41d9b588aeb33972edc79b7a4f3272c16300e582bcb19cb6acedd3a946eb84ddcb02d13ee9811f14319b4362b4898f6a20c76705ab093513481b33e3b3e00475fa0d086eb732498fc234ed82c0f4fb0a8a447ecfc510c8e84fc4455d5fbca61709947d991ace58dbf1020b3d2ee6b60ca5da9864ca6202f487fcadc3d12b00eeaedf5d3955962c8bb3b661f7bfc1233772c1eda8d05a6d2240a77e644fe11e9423e5233bd8db7ae8fc751fd712e57062d56726e6bcadfaab41d70291acf2c41c48635d9dbc0d78dcd187f0cee3628fc086f5fc93f290545f4932665ed17aeb83eb51c0afe7a29c94b73dde614ba538ebbc07d6422a2b4e4fc413d0bfcc9046e06403d13d8b887868d597c7548645a36eaa1bd8b7488d36878175d4796615252699d2a6e4cb2208c754d94eafcf9a3b072a3223f2f307fbc82006df3e9dd53985f57cfeec142a6cee0d3f52f05ecf4406feab0d227951222db0bd832fd8292109eb5e5165f1ebd3c6e8ae98bfbd8fd2f63bed367e5a2b1d9eae8b2c59f4d9de738e50cd72baff81cac501d2a7bb1215d0739d61f3d151fc1db6a84e4f5a36b96b7ce6a6a37d861583c60b23e8ca4d2520f2f1a7f4875cf95dbafef8c462dcdbdfded86c41a6b03d74e096c0c828b3f22b28d2c6f009ea4c69722b0fd0b776a48daa51a96c7a88313e581ec79d2159a090b4970a891abf2c681deae87e71905c53bbf3c8bb1a7e8ab492ba7c5de14deb9cf2a888f8b945861996ccf4302d7da67864bff5292071defa5081ecd70e5042e710378013565ea38859a92c687c5f27d47d75d6a557040469e7fdcfc12f87a67f61fadf46c7c8c4207ed85f5f15c8f963a1bb35ef5eea746e477387607de52ae27b59b008b137c95f6bf531d5b0b3b863d9b55680cdf3fc7efeb2a9a599e3ac25f3a67a21a19e2953c6efe987113b0dd3b2d63e8a0a6f9af03374991baffa2522a85b6787e666f35bd7752a9ac9cb7d3c88108ec789825b079cd51920a655b861e2878c47126482b21fb7daa8fc821d7ac8e3c4c6908ee7f005c8861422784036ffba4d754aca37556154271e9063024ec0e989b1b685e7f6d616dd2438a4eff03f6143a4e3f92df4e291f44ff12822407148def5c1ca954fcca01427a56d392ac86c925fb2272753e82444a77879f8949de7cd4b8737be389206d352f44e3b87b188e53093f7de4d8ab6089b5a6eecce1224a16228a631929bd41c8e7559dc71e683dc4b16e69d2bd214dd60b0231c0948b60df074317d95896f87e16b25818ed8bd7b9450a0e3ddb2d212e99949663436af4cd8f8ccdfe4a6219b320a61ae4df82c01f358f2e9aaf32c89b86b664f64cb052a7c716922a96c7572621d3cb28ca2d5bb3f2d5efaa632e26f6a5fe8c3dae64037d8e72fe9f2a34b4aa0b397c67ac4437366ba907e4ee6fc19986db9209514c963d8ed09fba667af7cb66e6c0fe34dbc32eeb7340622dc4d5fdc62f4d32bbaefe7955c64cd1bfece7e75cf8cd2f4fdab51edb4520173780b1655759163e937b4d9350d0f8c1f11011f26228442f409ca9eb7b6629b3147b238d090bf9f3e5ffb772e8c7b71cfa9b18c7ae25a7b3a49863dace3aebf488f73828f4106320290c3a6928be18c75ec8bfd82aa87cbf943c842c227adbd92c8ef0cb7f70198a4d16f652b03a588f3ef67d3c39f5901187a9c2529742aeee06372518981dc14a6fcfe6917e7c5b0b3e0e1b966dd78b667af6bf2049bd76671d4be16bfad2b177d6c6477f2ed77e0dace50a3ecdb6d8e7f338ac08191be34f972999bf27491e023680284bbcba31088bebe6b23eaeaf95551936e466ebed21a9cbdf6b1bce5ce6162ded90a0da95842fed4bfac349af2b25f1df9c765881f74a3fdc21dc427f83cc1c01f602f3f798354b0cc28cba7186f0d14b112db4f9c2e567f03953578de21369e1188fd9722909d1db221b483927e1815da15f31df65cc155963aa6b35c8ed57029d1a7b07ffc429b80220f6a5e885cd5d7b92865f7da21c72b1db4845a1de01672d5bc5c10b3a1058dcb8f7b33cd1feada07a73c6cef18114892594665e344a834265520fbe2a189e7617d4b81920781813b44ff8537521012f07802e8a2fa494f92a8f69f47c18d365e9ea6af732175e0b4f8b17e8426c72a341f47e00e553c7cfffe1e721af677e0edbc0affd60eeb64b1148611f34f1ba3eef5e8d601b23d2b63637780800cd1064c37f5441454869350c4ded60b0c2465f9ebd101589fab751754a2ced7f251d3adb083f9d43fa38e0c540632436474673a91707f2324e032f7d8afd50330b93229893d3bce0d33b62682b2011a370501115845556edcb878b9c12a162c3bc78f0ac556987b433be8b39e3e03086fb55916e4bc65463a18b98e3832a37f56bf758651a830d6c3b116fbb260fd8d0c18074eed11a8e05ae87087626f2a9f1491b6729955a6d363636a4fbf7ae9a0dd65bdb8e70148f77c62451bb38227aaafcfdca2112831bae967741d2a5084ab123d7bffc084f23bfb45aad8d6510af30b016571f17f00effec2c4ebaccc1b61ab15b208fed6790ae2005a4b4d27c35678d50090769fbc0a8e188b7e1f595b1068a46f9031ed96fdaf56ff871c4c890615d63f314cc9cc581575a6436b0cc1763ee235f874550eee72e9cd6fdde9e9a9c53f76359f17b9e1a861745fc8589b2edbd032c67ba6ad699c071e4991af36a6838a8f6534e5e5ba1eaa54d57f7c13fc9d3bbeba94e7fc01cbfc46a6702718ff4555c972431f9ae104ee6ed18e883019ebf26450e1d5e706992a6bf6714133c64ceed76780950bd4f5d8116e680276f3a3346cf31522d0c77397f251c0ed7ab2b45fc8604b24ed57bfd3b7af3fc90271b1eefaf22a82de10a0e6c2975b521513e05865e9961bc80460a783a2605a1fb043df0b9c2c9fcdf9399675a1af59c5b38fb79da233aef703bd4cf9258cfeb2dd54531e6ce799e3ca68bf65ae81b99b9d8b5addf7b3501c46ce7e9a6b95f2a4586ed1fd3d521eb8c5525740e76b912fc3164a072f1cc03ee07bb5fcdfe43f378143f09e205737b491f18f66410d4908106c59903d253b813ad086bbc8dca22d6ab854168930d67bcac62bc1845a115e3d8d0353ca39fdd30d08b785108215419ba9c9d4456ae1f2b43c1b935659937d48db6f2fa3593d004d6e5b282b0867eede78cb838e28f30d1dc9ddfed268d29a685710f183c42dc7652619954c1fe613ff23fa8c51a3cf82025a45f2c5dba9942792bf4d1f00a23b66c96acd7aad761d8732e5569555a89163729dff7bad3b5bb8b1861b8dfe64cc88217660b0895a03c2460f1652649ecc16a323c22733a5f5851435aa665510f7e4dbfb61501c29ca50348e9c345bb91ee8399c81910b2506a00e13fde696a55e9e0e649d21fbe16a376099e820134ef4ce7052e8aeceab2625e6947eac244e7fd5817dd22c7f91caafa09a72b5e3fd0acb97fea7eb41a24a0b53d4f63c40b39257084f1d70f1fd48414e2cb7b614062dc0802c41608dbe63a24cc63f7d8966f2d48454186f9a4cb8d6f405b3214a0060a3f7968b90444bf8fb0690fa887f1a48d2d09757a973083940e068af9d48da9c8c68e27f8cc861a9261a84dd59a006428740abd0fd26b83b3ccbf66ddc04d256c309aaa31e68af36041785c72d39c3955c0b847b3ff43b1c757634805df955119a6779c916140618212611f37649ea5bf79babe103239844d200f3a5ca93ba4bcfe38328593db60fd15f7c2f8f80c810ff0a21c164b0ace3b3ea64a685753c4f2357d02da3976699be6f94be6afefe382d13ea80b3c9df754e203fc1aa62125c804bb8b9d5e1358ce44e5b87964c550787adce01cbb66a168a1b780b3268f9f0c9d46d7e06bb72c82e010f9c35d0693fe7186123344534cfc35acf7b066441714843fc5cd0c98e94362be2b8b56478474b74a3f327f21a84fd94f4618560a125128ebb72faf70a4efedc945caec957b2ddf6c607adff9f001f3c0f0d4a9c91159b2b0990538cdd0a435532eaa263f0e7d76e6486a6191e40eaa2f1dce4b88a41cd46f39302001592b74fc70ce19245e9bfee1c98e0243cad59d6dc08dac0ef4925f59ec21b9aabe4960d9367b8edcc23cc90da6ba6d327e731e79d1ad9ed81cc1a46e9ba4daac35d1f083f9a43bc6daf883e64014f3285fc835119c48cd8cdfe0d44fdf1602500af82bc4c4bac28d421dfa43071fd040550d0219b7c3ba314ba5da7a1ee06ea527f62fbb905de2c48db8567888fa22a06372febaa7a427c730964b8b6f57e87b54372a454c14ed256806c018238c95d4041b77340ec1dcd475a1108342eedf66eba27128e9f67cde49b978851394357184f98a7e86095982f67aa78e167fa2b1d44a1a8b7a7a315d0974ac419aecaa5df3d3fce0cedad11fa71ec01e883f7e7458577c6ab638951d7f93cbf5abd02efa8738324e75c5bde4b500455c2fef8da9bd850d7c764bd7b141c67dd870b3c9112bcc1b3da1bd722e2feb3497835b12e869f75a7173055b235ace2d3aa1f1743e31f13aee3118674c4b85d8d24f1bcb892a66b2afe67d566d3dc31fe9d2be473226f061f4450da5164b76fba81f33ad1235eaa08644e32f7ebb47a252de394abf1fc269018ef43cde92482082ba5c8cee8320ab9d80475b8b3dc2f7027e91feddc5132e027c6f3712bd4a552d936350a97e9ab76c8d684653883483cfd946c6db82c0fad4d350cefd2e4349d75ceae37a77f89e8fdcf8961f4aaf264640aa6d1cb249947e45c4fed5b82678be17678e0e3c23e00e2a654770cc2a48142a6f2d07961167e560fb02e4b444a7345bea3b242e35edd36055cf40c8584ce15ad6357aaac9aa63a72bc1208e49539df7bfe228c9b19daa1ba1ec89764a19e8e3806169d16e834536ee28a579437a82ea27f0b1294450f6a34fab8950da680f336345ade22f7dffdc03a7faa148fa8dd7b1a764ed5179d00c6c46ef1a2a353132255b11470727d9ec9050111245d126b077c1c3ff9271b019cd6e51470abbb9a0a7a9c425141e9510a304bb46dfd11fb309a8274241fe0edc9d1ce3bb495fa119d06b6c585edecfcc503fecd44077bfca734c510384980ba41bc61e167fb84d5a38b901ebf7fdc90e5f37e196dfb7281d9aa813e50881f2c09a90d65e257088bf8b4436dfbd93a6f98fdb047cb82efdb5b41ca1b77f5f5ba19e1c04c73101b25d0587895a08b9b0b45cee27c8b603dfffd0882a98f3d7aeb2c920a02f3891a2c7ea1ae16a91defd22aba05fe82162166b843e7bd8ece004ffc849b34fe1e885a332049c90fc0069de832069b225c16efef218c6f60379051a3fa4d1f214a95c8bfcfbf802a9b02156c120f7bf7fd9f11494a24569e5541677a4f02802f29daf75b539e3e63c3b8491dfdb833805c7de3de33075be4b9047e1cf91342e360ecd4ed239484daf6beee6747a94e236cc8bd234a78ff29e68d8fed633dd10b21e51c125b3fb8596c1bc2fd337d86bbcceb7c13053916fbfb706be2e1af195b832cd60875913a722910c69ab730b6a7ed64404a05d4fc73817a60acd2d6e3d4cb4ac084a74efb337dc9d9a65126a40e46c525782c1f2244d26518f076e0be92a891b32e396d287c1543d6cb064c273023749da2520194101397bded32c6f77574b760ee976784a07b0cc77e45eeb26e6231053bd6d16a3cdeb5b4883f6db15bc55be6a3bf436c72ee98fa92b12e68e78f798f8f7b5b7c5b817d0e3884679e7925fbc7941db17a5b84f86340de3fb3709c6eb134856bc69c69315ab1ad0006a78d4a32f2e7f3ef4435daf9beefcafa15a0017ac1b70160e95e6b3ab54920a1743d51afc0d4c929890b8d0c6c282e9d9c1101043f6888dc6ba30ee026ae5136c8fbc872e0a57766d645a0dbc8778d1004fbf3402288f0c7d3acb5b51baa45588ac288148434fcacd1fe160ac5cd9c7f51198f5d0dd0391479ce5458fa4cdedbc8ffd9c36f255f34c141b9e052e8ba8ca5031f1f389a30f39894ffa7513fb54a14162bb12eb971f97d62f784b138d2e0d272252cdb6bfe2e963d0e827ac6611b62d214856e915ee19e6a2e4e6a46c3933f3db22a43e800add1dcd8457bbc40181999e904562398fddb7da8fd6bc011b9cc948924cf9f3707516883bea94e775289ce906552a33df0be40d5014f5e3b1f7b8bdb4c4acdad1aa56f339a6e15ddcf2e4f3b0941d6d56082b0f0f37986db66bba6bc935bd0c3deee836f069cb385f9a4307ee8f61f202dbe72fd1af2b2d54ebe0569a3d5626ea36bfd3ab0c1b191b21efeecfdbb2585840b7fc6d7bf5b9c73df25f037eb34f604c79e384a1e3d9050ada1ceb80332d011cb3e9e5166793b48739e3a7bd4fa2824f229b32b459dd362e2254b097a0f587e1158fa4d518c742f49d45343446798f49435780db184ddefa14fe3c7f47e09fad293e94cd65cd8380dcef60c8226b232fcb5e06512494d7fff0ebd57f5634dacfb1a985f794969e950953daaf0c041419ad288af74e7c50baa6f66234c6626a2cb5b298b07fdeff7e1044453fcd27fc90be74c53bb1b7c16c559a3c2e92be85ae470dc8c6e333d85f143b3a2628f758462c8e19e871337a4b7ee8a354652264a2330e781b61226ad91d3cdb6d64ad21e5b58aefac94da3f93f70725ccbb3704ede08abf9e5dbacf8ae0c09b07962d09351ebd5baf2612373171e45857834f6eb5f15864ca9bcd54a720907a4330fdb5c6f2df801aab4c0ee16e5f5f1ec24776b0530cb70f85c2937816a056374f1d340202f622f7fd5d82de9df8833134dcf84382eca3366fba0dbe7332d0f58c2417f0d6f679dffa03ef4b05f57dde29753c366013326184e74fb04c1db0e886648b4c91505b0564330a04b8ba5a52fbfae23ec704b855739622206450c7d34ce3e93bcfecee9b3dd5f61dd693529616c14ace2995606e803b892e7c542895f497fb4d0451885f4ea6c9fe9617e17bceb0f32066750d667a028108438142ddf252d2f9c123fdf8e9591f4a1e1e128e478b80555f44f2e40d81eec5f26952b320ab97956c3857a8afa855876420f10f6a6abfd074f5780d61c0f489062fae5a94ef2cbce0f54736f52f10857529243126ca1373fdf437d9a2eb7f9d782343d136fc4f4d9bcea4530b0b0a14738fb7f95a121faa2aad53ffad4a2d4f338ab35785fc2a122a9521b4c15092af5a145c34661ac61b972c4a23ac4a696c61fda08bbaf34be2cdf111def2ab9ce37f1d0d60ff33ef87397d4cdbd1376624b3bf58e1bd4914ae85bff4b2f597c78554636aaa45332a11396956ab1aa97253b3f0ad6982516842281db69d845516cc08480d162f6a1d3937c814b9295298a1839d86d841a9898ec65b16880eed9022c7fa230b2f8d7175bad9859613cd1801f996afec173601fafa7c7ee8fec89d812a674f2f005fe93b2031e33a770f6b022971d8f2ef01a786b0f31ce75274a1626c069339030bf762ad746a994d38dda31f803f9e4be9b43da864fdfb19171f4762ff7145947a36c1274df513d854f279fea672d180b6913a49cd98f910c6e29d5c20c3f391d65f41ebb2bbcebd2d0d313c3ee3618f8cfc721ddaeea1af65003d7ca1510f247ade99ae2c659b6d0884d5eebd9e0f9d3fc43bb614ef7809d523bf27f728e163a42e4d0db2345b35d77b5b38b22cc83acca1b5a98cbc2c53b505763c64677206e994c55eaf5f4591f5fd4dec7fdd9e5763f9a2cd05bc440cf1ba29f52a57e760543e8e1ee267d9085c67e4d911beee0724a0abd395031576b213c1e7578f754cde6a100159418635186740f9ce0fdca3e54528cb53bcbdb3b9db6c61867ccb3630946328fdd478e4376d520d6fa26027512b390a5f08bb96e331fb75268fad26fbd7e7c3b88cc3080989c19552767bf75c9e4926e09c3a55a2c44439fd925853244e217b51f0e5174b131f7c4177f17ac0a86a2b1f264cb7f7d67c943ec4bc9a405343ed3f719452a243411a51a36f09c137b1dd992328befccdb2e65ef40c49f28858949778a533ca95b635f04710c7de97f4b86ffc6cb915c018e77be28668bc056cfd2b8988c4d065786ad90756e7ec69c6b3abab0a5bd1e41fbd0f38f038ef49ddaf214baec40cdaf2a4ae893a722483b965c66cb339ca25be80d4c79a3de9f7a383639bbd599fc510e601abf2397a6724e74d523dc052f1f03eb694a4d4805556e48052934aae0d21e749a07083bd2ed556e5db3d15936984679ccf6c8ed433bc2b85ea36d7ce9a23b62c851e0ef33e3aa9752d4cd1ed5f1baf9ce22d44a25191edd2c6f2e1842470c58ebc8c36c6fe3e5aed87efc95bd1243650b8be3fca7ded40bf2e910a29f8c8be3e6b919a1559872d654703df565c32226915ab416ed77bba19a5d61cf74e420fb20d7a6324c1798bc2ee3a63859315527e851b254ae32a41eae6050cb3d0766a7eb4c20aa812451a3030ee11de86cf33e0fb70d205a264bf6b28ada8eeeab93609079399eaafa79edc2e63a9d0dd83504fa062a2fb2a7b7aa75aef0c0a914982f8a6a7572f5e748371105b8490de070be29e7f75da469435f42a401a0513a41c877b534b153cd589a89db27d863a50d3ca4aa4e49f3594abe5a8de82fe8a7a9b635038c0c7c31a78438f2f9ff2f4add417eacacc118705084035320918388227360733aaee5dd622ac69805f3d2d07de9cff4479afe156b1b903290e69b5339439ddc790319282c764be5375c35609c20b0f085262269d332d32ae91795bbc547460cda3a991fad2845b394c05ac2993657f1ff1550ca60609b28cfb39da9fcc189808d20931ce9e0fe7b2d38142943332b0f8175c984d7fb331f6c2eeaa66de77b2319aa1b3c481f86ddae4244f5a64285c7629c8b54d68915507ab0b518ce131ec621c741e9ddcdb56ff4e76948a47e15dde45f6d2df96e2bfa4a895ffa671f870f5a361d75a5a6decf86facde09f0b3356fde5634656a442f02d31ca490f58d691e45ff7556656cc5bbfc4ff0235355423a313edf657fb0d8c54e3ff4147ce98b0eb2f030eac9dded3a6a5563425964338c160e1055e78d916f348f8b8eebfe8cb2c7f514649089e261fa6b9dc7fc787764209a07bcdc456875ed956cf7b691fa75db095e37bb3b8f76c8d7f8591105358fec5fe9d753edceecfbe820c465c696533466975a66aacf41baa66eb91ea7cd7578b66f056845f045ae289c582609914d4bb1e2fb07296a7da0bff927d4b0238e90159ea3624a067d36702fb09dbbe4eb9b46f0f964e76852fa03f5fcefd0a274c69e6229a558a3a2b0d4b6a94705848ea0f249800a272b67080a6100de65964aaaed1771273ba90bb4430b69b5fd9ad6c2f664a389759d8f733d1040c4432edb65f6945ceb9c2f630b17fd0772b672f937afc8d3fdfb8a83e3e58e19ebb1604606a7fab78466e95ec2bf6ad7b6d14a147aefc95e2dd42c9b9253e7a9b2085dc56f462c6a77088e2ef9ce0b6efb25531c8e56f3df9a4fec7791c2c797853d1894707c94702d0c7d319d605baef361a39d5dd0c8ddc73e2beb37942328ed65491716bd9085cc160dc9ad7c9a2fc894dc0393cde72157996f3620af581cca1b196dc2817bcdc2e60963a3197a3af00502575683546c53cbcd1f7dcc7a37bec40ca6fee44dc2d0f97213f2a895123c25f2327023e199c0ee272e0f684f826360adf37e436932a6a3ed0be62a4075613b1c8d9e0bdccf2d599236c7f7fc187a3c980fa159e8f25718eb00499509c79e5a9bb0e2b8c60b7f7b224399d7941d5c811ff67e537286300cd955974d99b6cb1b7a6ff98dc43cc58c4eedf6a60d430c1322446777ed59f0f599a93870c4c945bb94c531069a862b2df9210fe2ce7fb8f2cd6b727f9d04d6e0e415ca3ff5a894f484ecd8f859f55e39f94c17e222f8edfcfb88180c23ab879b7003b4cebf02f440c8c09fbb2f02d3a3239c91f6eb4dbe3b672680cedadd23ea3193964b3c5c8afd0a729bb81b253ec155ce19e9ff6abd224ee5ffe59330f1d39496321378754584d0b1770b773a53edf25a54228bf964ae7410a5e7e528d7323d3c3a044dfb95520d98f1fa79b46f07ded43578c86808b2baecea9ddd56354b60af5715d315f3653f0f74f1edb09280b18da67f6dd5140011aa28b1031b5577336f1c02e693cabd3e10126f77b198f0e62f9bfe87a840838dcf44eaee517489b7afadb3b6d9595d5d30070df3c5edbe1ccb1f74bab28cdb78a2dc76654afc513cdd00c0709b7667a052228501727e7616a5a1db496f510dca92341e8c42fd1d5b47f18ed6d55d646bedbb8fa59f8379046f67b9d09ed9c8cd2c0094506e19e93ca691c8dcbcf6651242fa53d7b766d2f1819727bb0cd80190eafc10ad02a4c3a1413fe68bf9fb6af9ffa0724252e6309419032a40538a2b5a18564aa8a92b6cc95302dbcb683318dc2f1bd45dea1b8b7339ed4a959cb20f98109df3807a28278da6ecd5a6782a699dc54c43fc8ca07820fb48b4f3050aa2d95e81e3b97d70ec49aab12fd18120b8071ab947e96c82b3eb9290fe68cf269375003f008558c10b47d486f71a8002a4e0c9c8efa7753e5f56b17008fbc2fbb7c45a039b49f8ea345608ef4f7c3c4e1857779043716e2d37847ffab836164033b80a5f399f9bfd0636fb285689d2f6c16a8f1987ea4f9e3794f8fbd49abd8c752a8bf1ea2dbb5b398f7bcf480cd5232aa884acc3af84e4cfb7f126bd271ac7fc83e713c166089354f3bb6f5c97ca156b8918ac7b13148fa73a3a58d5d6dda99ae30472ce5eaf0d9e3840ec861d70b5f4318ee751bb2d797bb2c78efdccebb05f2ae200686ff7fcf76a220b7728088318c1f174f80cbcbb3c5159a9a3c8b3c23ab96f2c1d55283e7c414829fd061be742aed729118bbbbc8f10b3e4944218a24092ec9add84ee8b36090426ea0126b1607e8f1fd1784b327971f963a5c22f65895ed79a07ee57af0baf1e7da4df922421eb3ee87bd2ff222d14b38bfb4ab79b826ec138d18b076d0bc7c0c0018f0771b3700ebed47d18c4926e1719af651dec350cc5a33110eec35fd566cd3b2af2728f133919d1277751f020a374511116a33f5585b281cac97dda1cd1159435a2881978c0725833d76ff6b3d3c6baccfd1f69deb4566bcb294e654f7afd9aa7d43afe22cd55cc7af9b3f0c05c5cf7f005fd46b2f141f853ec138fd78b6a27745f6d1ff60835e813b1eb2de81aed2a88af00ff3780ac7a76a0ae5516ec54ea647867a5438778ceded6ca058914bdd29d3b8e1068c4791c379fbb91b573e70e5e711178567e645382cd56bad9f2337cda13b619d85b3d1fcfff8ab5e8b22d0627d51a38776891e62cd17f0b6b75ca13d1932fe12350b670e56abe32a74b467f5a43128b16ddcaf66bb44f824cfee42dc8638f955cfbcb4f74c74c2aa1a4279c3496ba76f30e56a6156753f1d4e2e0c1565d351ab641ec5bd9f0daa0de054bbebce12343c0a4bfe58dd2b8a7b1be11ff939f1efa94c479907fcaa67482eafa6afcc89be1d18247b40cb7c0937b253557ca007d5281ba40332390f65effd4d8b6a2c08be37db6a71252972c50a5577a70868f009cbe211121495511fb8b04168093eacd50b0fc508ae0fa35f201c95415343637a2d915f85e9668efdf5794626c4a186c57fb688e2e6f4911fe6197afb14860566a62ca1874e2680a74dce44481474a94836cc7265e684b37fe32d6523b88b647ca2f44cc0d06249de5f1b19de9a309f0c608401a40671259e5ebd02e2b4405769e322f410b331a94251e6815eab317331ecf20fb87b6dbd6c9936a88b8a32581894e58bc8b3917a08afc283d78ae787e2c7d763f62027e60eb1fea09f499aadb6780f2b2c89ce76afa857de63a864ffd0f9d63cc4e3db6b262edf5d83174d174af292ea1064b335b69096e1ea47c9b26920c1807db04797381900f0a67f29e1b55e41a6f609a23550adf6a99b0b785bdec91ea3bfd1a7a917571bec9703bf6676df0d731015dddbe8a42fe1a9c2e0d27e8ca6f3db1f5776535a3d0db49e75e50065c855f7b29f75df9b4e9a0e2ca8c595d62f6685f2d037ae06830b061580f49a2b4d1e8f7e406c76fdbdee5036a59a3b97546687bcfeeb6ea974f06b2d392811ac94e3051f35ff1de8e4f0cd55d7781261b7d32404f8fd48c43240a4b21679704c74c8f0392002844140de641fa83114b219e224609ed17dea73ab4b94f050c062b10d88d70c1f8602db520fa3d3fa44ab3db2a820b3eed7b6499c8671ece555eb827f0284e7845013bed2cfe5f1265c986c6935ad29e4868b622bfa45f312081095989df5e15485d9afae5b55bc5a7340a9a038ca4e2458e8b1917b08ebc89f168f3ae32468352ef96b562b1f8c04cf4964967c1a595d86d88a97f7e6725bd2b532c44f6b2126482c624cd15784be90ace108d302699327f2898f892be9894ac0b829cb4d7d79b90a7faa603d4d81637fb24997fc5581c809eb9cc5051f065784b9cd62ade7f0e9d06fe66a133180794bdd810bee4c95388c783dba39d95792b0300405967ee1a512690cae2fab867891b296bcf273d373cd1550829bba1965924c559478739f66f18966ab5064fa355600bd6f5c8a72dd41815dcdbeab6b824a0d877db81468ae346188eb6dbc6c2139c6f5ed92e4b16333bf3280eb405266cd105f45bd2c5ad2860ca34427bfe76e77e4f7e2ad9a1e34a7318e2f201017d2317664643ccb1d209a9a5c9f08f803381eb886e626745ba9046c31f04c1e082d6383f3ec816c88867ba6a6f4eb29022de209073554808d9ffe3613d9f5821e052b361cf701559f6ccc812c14eb5cba9c226d4211f8f4c903c6306b28ad6c1d7fd8599c9bcd24361e68ba80e5dcc81fbf683e6f47663cf617e7b52868b47ae03b29e4cfbf35a97fcfb5473f53454167a9aa634336c516415a518edef088ee3ad841472531f5ab72ff044acbe72a3f0271ec84c034eba19a12f8918a31bdf32bfaa21194a5b9556ac03fa9d087c1ebaeb59db99b50cb2118aa68b2f62affdeb1ec96c030440cfa30950c765ca4ed8242608a68c177ab420edefbaab54f1ec6aa14804cba359f7ab8088a3b3ad7cef1faa23fcd92b6bfab9ca1b476f231bb66e900366d115062a04cd15e950c5b7b74808448023283e359f84f897301336adb5d6192f57d30568682970e0636aff4214b46e6da48ef4705f87542d67ed33d427e496bdb9b5e33cf0056872c96c96ece5a568208969dc49eade94d62fd4d5475f7d8f5f0a146316798d458f0b6d33ccfd13944571ca7010b90a3ffbcd50e78df88683c2a26b6d6ba7697ac05d6e6fd539f531daea19fd73793ac66423561cfb3a2398049a7842eb72206fb589ab12d74b7428e28c8b335a05b9666a99629e1d9162d03e5d4ec715abd4ddf8f83fe9423e814c7d995ff2adfa14cf20b5f4ff3a5d898baa83427eade973e97e30df8bc5d7bf6c5ac55e9b69d0c7ae22359662cd2a7462bfc1f2c3d3ee78b78c0c9f889b28fc0cad730931ae480a59500511c55ac594766f90b5cd007ace30c8aa1d1b9b54b0e92d4c695a70bc5ad7a538fbe8f548241f4534ee8bd0acf82fd50b88970611660399f6a8b27d72e2aeaaec65174f81346789dd7c7cd0d849fe78509bd7b1ce8693e16af901a32428bdf1fabd04798ce79a79e965fb5ca28816fe175f863ea136a4fd9105468bba52bb8c7a49fa8f0df5bd1d802e2d5d69fc5e625d4b49d457a2acad534fd9c86094eb76412c4dbd6219754592c491b12d636a7e3ebf0c40cd17203306b7c1410e32435bb10d33a4f4bad7bfaf6c3bb5ee61bba19996c330c44d167e5fc9661e7be7edb259f9b3d40c3dc52c99214bcb1f71651ec01fb2c91a2445ce8b4a5a5ce24d067f8cd0aa78e774ccee68fdb01f5ebc8ed6cfdd81f8324491f23fabf74b0874e71768e5383cbc8f92f0fe6328eb20dd8b9c27699750d91a12433a8b63124b9a695615e8ed6d3e7a3f33fa908d5a0d1411cb3c296f912db225ed51d5e416ddcb8011f01f774f4a1d8cefc5bf075d3614323d07d16db7d9fa6644e98bbbcbb8d54fdc7b26897e1c950799ff52504732af9a647c25fea2c8ea3d1eb51a8ec8ecfaf35f9a52028779a055378036836a138e946ad94bd1bfff9bb6190c7a544590ae79a28b130f0e3a979bc6d579a06708884979e0e3afe9098519b0cefedd351d0352cd4349b37fc299cdf89e854f83438b0c92d9b0206b285aba26b99bc9120e7953dd2a5ee1943ad9ac573fd515f0df212b9c24016b40b42752c66eafef5e2e5ad5de7926aad1159369cd3b1f6046a3767c74333301740515eaeff3431b9c17b790a2edc8d6623111a9ea706f115e167376879d5aa3da381d8ef46808027bce3cfd318ad9fe61ce0da40e31e5bdacad36a31c1473b082b3b316ec74ad3834fda495cb15d6c3fec1d2a268753ab4c96db2d0be8ca13dc96cbd281077b09ddadba75d601db929fcacaa666efe85eefbfccdaf8a8798478d47d3049033bd4aa3cae13694846906784c98a2f79fec2577a3e9f1fd219bd77650f5e89c2c9cf04e4e6f63c2781ba11b6a2fb259644e43ea9c57b482e632399644241f66c6c319bf70aa8c644858ade0b3f183db57b1e4556d2f19a44b98afea8d16d97be94f50642ff31f62d66a65bb453a1096385cdd717ae9bb7db6c7d5062fe58e2904c175d4c807a67f1a91a0304cba6758b02510af2b77eb39e48e2e2ab02bbfabf2271aa2d5f7251404e21a87e2403db9e15b07175b4d191db5ad8102a2637f6fd2d7dc2bbed04e9ae7dcd0e30e0e675a8a91e988e8427c664f0dde8a73fca696677e2ca018d88356e5bdffa5bdc1c13d5993d0776fca4c9ba3b5f6a0b1999b0e96596ad195ee1eddd612f4a423dc9f1e96fb501d4ad1803bceed8533cd4d010a814abc39aab38b91313f3a9172fb4e9cb907ccbf18c5aef3027e213b6c44a9899ec8eda8b4eb128ab66b4140680c126fcc5d1c5367d1ffeab6740f64eee7dc037f205d103b95d8d268b78f58259d3479abb5b6ba47dd8856e81b81def22134b14785c3d771a385129a1fbbfc14a71b3db8906b4c2f3433c12c8a73b97099a658c647554c1b71f712eaa93c26cc51cc545329ca102832a0071719d783e8e647aeda74d4311202e24662c7a32949fb211746bb9e50b4f21db4967d462d80315a4cf2bacda88609eda52e8d3231e69c4040ded57b8fe35b2dc738d4879fddf6b80c59e77c5845846d5caf0f571591f4e12e46c69aa546568df87fa74a9a6eaaf75eacb0820ea1f479ab1561181c6a24a3b01841e0922c1e95177033e448565a384bf31b24125530b77159ec60b9ca01666c98b1e4c04b02e13cdce12ded8059f369504705cad17732604b4d850180e613805bfc5c618f6b3ca3b7d9f624b64a30b02c569c83124845066ffe74937ea0857c075c30fdc86f6321b0c4868cdbe58b34085df2c914a6f46fa08b4680f18551047265ed583f0cac9d76e0b1b045f96205ca40367ff457a453ae11564d73766f2cfa618a702bb4bae97271a75de2f50b081c2070e89578431c91fcb977f564582d5a74ba12ff2da735e2b2809b863b61dcbcd58c1266f2642ae20e8e25f975a6e88176c1b3d1c53f656c7136fbee54463c540a63767e5ce4adf74f12d45146c590abf4cd79703a83ee86b6d778a6a5163850829040e2e8cec32c644a2cffa20156547007116cf1eddc66d0b6cae0ddbb29457cd9e6e2f8311585284ecc18f915f244de076b38255668ac42395ae84a3f6b6daf9502c6e6f5dcab4be8f64c222ca2e903501344faedf92ceb9d16c2133fc949efe8f86a0dab221f5a2d3fea38fbc05e29352a5e9f97a690238dcaca58865f41e3be569c686ed3fb2ac76b0ae60cac263f9224a18181b756041de0af3b43a8ced49597e57a7d4aa2453dc252e190a2de9010e2db81f8605802b96acc910aa77212b222f0e1fe6edc3929e7ff9b9b5998b0bc44f1a467ffc3d925cce72299641fa7bbb9def657ebefe27ef4e271fe3d100c462877e5072f29e900e799fb46354025a97a24207c8a4f643890f5ffef9fb3ec11b5cb5084ddb5cb80f96e1382ae72bd3b61aaa52085f909da9dda672ee061e166cb011e38815f575e79763919aa3e9ddb1d6348b376fd6b93570ce708bebfbff5629b99c2e66f43ced46847726c651064346df4afd2ffc344745e078f9edc7aaa34422c8443f58f94e50608ab0e8fad8c5b86ee1ab2c43efca3c04dca2f1581dd80f8405f7126af2a959954529cbfffdd678bc3402b436cf9995082d63f53d4505fe65e4470c6bc862bd903a96080656d136c1ec8eddd994afdc0bf761a905da67b2aaa479489ebdedaa9c42f839f5e3c1b2564e6bed7f53f9f94613ecd633f9cb2e0beb3ba7162337aa839d7f7fc317553064f705396cd4571595abd98ddcf21ba40c340b7c8698b3bca911eea2e9d18124a0e01d3f8e87ea105b812c486d57b2bd0cb258d8bffdab6791b3f7df0f2cfe7bff9e1324d239e9886ab48b22b225e8895f0e188c0c8153830fa61d69e7f9e1c5fc39da875056759af40d40581471daa3987a0e81ea590aa34f1a1d4557978fa91e364376826cefed5d62762bcd7df0cd9ee9cec80174fa6ff143d170077556f4cadb47c834555e668a8d734c188181bc8951577676fb7e5511589c82e2ca156b5a2e943928615e9b7776e9c9809af6c825406a92c9bd9e83b580b3fb1faa7282b9b301963933d2582368e181605c3af88fd080087e26852e62bff456627eaff6a2df64f143bce26b529426aeece4de093bdcf2e1285d691feeb2f538e614772e58b9a5e2c5937414838af212912a07211597bc8d0e72fac3c9ab854156c394d9482e70a747e934e3bbeb3146ff02ee3b1bc82b99d95e389aacae0af74401815b4bc9095457f714e5619388fd656cccf856bad0f84f22ba734e50071935b4d1b445268aedd4bae8ba4ba9410573ab9495e8618ccd848439f953df5db84121caa49ba2c47981d757c0624d325e208c5bb206b174d605c518f5e59552455c23dbe28e41adf3d1b38e6302cd02c0dfb1045c83eea70e54f09cd368286a8104b2f38c7630bbbccfc0bb319d49dcf3b78b4ba43af07bf8cd8d16fbdec0ef58bb487d3767f8b8f14ccb8e46fde6588feec66f324bb9f0cca475f80323cb3ba7bccac5d7ebb2a7f52a7344ddd209bcf1895c7fee2711b3f7372fbfa426da4690fd9896d2ad56c8dd52c11aa88208131afa568bba306df139dbc60b69a9ca0c82fa44aa5823369d409949b1ed7d40fa5bc2196b4b0f18f302cb699496b5343d64f1d2d752faf155dcd915f6c8492fc6472a0ac864c453882a8aa4b08a311262a687fe5ebefd53188b190e76885759933cbae17169fd97611fb8bd8ab48629589671950b200e224266c70458cb9a01c9560ecc0653b529fa94e7e258fde315835b405d682d5013093c7aafde92cf6d91c186d772262f7a12ee6194f17c437020c76fded8bc75dbaa2c745d3c539bb1d85aa2589ea0a6a2f436312e955d19f588d05cec388d693b2de82396095fda6fa872c18bac35a15911b02d6774a20199c53b3571c4df2db9caaf1ea09a8930e54c77c78435d9fc05fb69ae4ebdd393611369fc746f39d27ada4c5d4c88245e8a4963102ccce3798a20449132f22438e9066cc0ec7d8648af676be20a7dfcaf246a493ee3c8450bacf35834ee077c9c48433e01cedf9fad1228566e573a1018b202f9820bedf2575345ce94bb26fbeb72f569f7d94cba80a34e7b1c16969ffa58dd001eb5e4b15fbde73626a23cb1d42c09eac2762a15977401582073c79d931013ab0f224268f4bbccb7b67469f8f79b6bd755cf3832fcd8590dd93b9cef4920858bea8ad553c573a4ee5c4f0203683e7dcb05d7c30ee41b4452e92e4a2d0c7d895cd5362c43c31853fbb66ec421f1cd2b8a2375ba82a99648f4efe1d0ed31b81cfef38d118ce08d337f92e205f441a607a2a0596aac94499934ec624312f7a1416c8a135ae54a0a61e0da0e36964b5d68ee5a506365abc6eb4b23ef7e40dca8939d5554c0a9cffe00b58090b184aa34494c1ae9b32771596d8462de853c841306c0c48bfa61a064ead525ce003a9a325eae17d8f9e497babc4649a2c49d2cb5e7a8e775576c80ee62899cdf5b55f26ad92db2deb6748fb8b5a9c601531f386e746b8a304eab38630bbe46c54601a1ccf451677550908e584e14f08d136f16abf6c84128a837c78e78412c8d4b48a4214d476bfbdc319db8f505f787bd33d37b75d970d10205f09f0308b7431a6b925c2b15b9fcc95066ad8b0f2594044847cbfe0cfeb0fdba2b087982fd16b7311bf095e1a10364c14bee00b6b3b094e5878a3c372a21f5015cdc94cd641729d30affc9cc17f4e4cbaba368747f0a916099699f462fa59ba70cf9ec070c4210441685c7af341d59f11aaf1bb8d164a5eade076b32574964835c7d9fca560f0785ae2d443f8d75359fa90ba35413a735030e40c9eb3a1242b55ea6da1de443263c7442e18a4321c13440044b77b929af98c9be72ee3867cf61d839d71128cd79b7531bcbc1548a6d57d89c5c38d2a977527691912c55bcc33bc4cc4d3ccbe2ad096d60473acd3e4c307e4ddff5d106046326bf259e31ce986ae350252d869391a03a5703fb6f49be39d13d5a3088e25a79c1ee6fc86d7e5336f2a8abd45746e7dffca1a4a3634ca4e997fddce7d22a48bcff72f8454b42e4381f5f2be40370f955267cb0b296fbaddbd592cf7634db11e0c2cf27c995036f8c3c1e8d47e4e90029e8c8d08b21258e2bff7cdefdebf3d1e886f33a895253cb2d60fdb5cc89e9a8ccc86f0de6bef08e8c9bc4de52b0cb10311d21985d4067dabe114f6a3026ec8e2b44193c4e753f6b1fae319b43e8e6226edac25127af61ce60e4aa375b7db4eb40b758178164c24cbfc9d294a793abcdab3fd165c843a8f2aff6b9d8bf3bddfdff468d563308baa9028736e55ea4081c8acbbea79d5ce3f49ce5c2d7677571aef545ebacd30252dc736228fef06df753b6c4fe99e7dd068e619f8baa49a915b62944b3f27150a36e57bec1a45c30aafa0242e63a80676406a8445fb9f5ea131eadecad1caab291ed2da6c9a5362071c7b480cf5f4b0eae28b9f63af6ce5009224465ec762fbb5f8940c166e03f5bd1abc99a8592cea6e72f4b41561f7a33773157983957864750270ac2f082af4f6216199ad6277036b28c4209c9f28c1c19c84f3b72eb6b558a7fcd5f918f4265871473557ac395afebb1c3c5af5b54992ae6882de0e4ee32569ef450f70388055bac0c21570d60fb9665565ec6003f86d17a74d5ac309ee2a5172f63ea34e9060f9ead8e6d677bfe9d4cf4c1cfae15403620c477aa10c4dbe60ab5d3b49ded5aed4ac765ce6de686d9eea154c5b485ab930dfb1cccaef6c476ccb60bc0b49c6473447a76c2e24c0ad42240b6acea0815cf6a0626820e1953bb54f6f3cc2de0b777ed1ebbaa62201bf1e3c5385236af0e7b0bdd0051a6bc84c2422e8aaa2b500a0782541fd4b7f7401a75eaceba23635e852a5ecfa56718fea1468265c435291ff3f002615b2fdb64c9aab80d695adb53d07f20e99128c737790a0cd4cbbccf3f821e8150e0c5c627a9b44f8776cb5f869d89fdc3f375c441a9d5033f9d41e2a8fd442e9408a74fdee909407b14d4e140f6a11166e10b5667a7f1c6ed06970f11388c6eead5c11857e84691348ef2b513a49e7b2a5692ceffbd4a5979aedaeaa535a4a505e0abb5e5d5c00245bfb58c533b09752b76deb87af4e0ef92452a9825156670eeba700b0762199e06e4abb6e660ae831f26102a552dc1ef2b5235a9d983263d21d0fbdecd71e23768e61dc16c20e06f6c9977c177d9c39af0f3286c09024cde77e66cc82de96266f5e029e293ee16b979e2568b88f5a46d3221eab05ed8139db915941700c24ae5c7c1a2fd6a62fd1fa1c20aa18afa00a495c125ca507329ef74c6989d667847e1384ea6608e015f453582014059bb71ddeda6dac20e5b88e21a5bbeae7910a63c112aab74d3b9cfbfd7257a48b12042ca921b786c7c153cdade0720c8e09b3ca3b57d87533e00c93422409bd23acab909cbdbb457de29cf7a934cefca9a452231240bee3e40a9519f238b72ba7826da873280f0fe55a6ed4678400639839a15de1f42c7e9bc5f26ef52b706edcf857db798cf071de5b021f05889147f909eb143b1be1ec51ad8e9121e70816e5f630861ce324532394ea60966ec6af1097c45aa8e9f49959e98bd0b0dce7838766b94bc6b3565c0811f80d01e2b21702f474c1944dd22ed5e74cfd45a932a16d1d41c2af83fa44d42d16ffc4824355e4d711e89f3a74867a1743ddeb8ad2daad4d4ed57a598a332e2c8f1b6f1c3a7a1adea887cb680ae0503ac6e052f96ee2a9248a19290a52970b1368c067c332819482568599213720d3b79a0b9385b5c922b81ae3cd1b26cadcbdc5f5f2df4b49f56fb05b20764ad234808e23ce0542d2446bec8a08fcf670e2e664d9998d060e2df69367b4b30da3fd5a7b777ee55e35c11406ef4c7d84a3d984b3cbee671b5c8588b3197ed5ac9d54d96fec837f8ce1b41f71fbed99d13a9ff3c5ebe0c99cedfa3633495da798ae6cf18ce84a903d7736634ff9d7f9f0d5e8d22ee6ed0a24e39afcbe6248fa472a905cac8fe9c31c45da2f0288affe4cc463cc927d79e5e9b87ca8a2b9b279d31ab4c8fd9b86e4aa891269f0e4ad595513c4d9ace4d674de7cced2e70e375f444f8d9e3d37369ec0b97a585699e9c09be7a886d055a988bb9d47ad663dd55801844d59051f4e4a9c6e9fdc8cff5479c2158317e00b5ec1571b92e0e52c98f3857f7bdb4b81410a616a65c3bb4f35df6f5ce8216770f89529d7920c74292e4e48a27403943de2e064443bddfafd0a14ba58f6e6d084b7553813629e8519f736d2a45680c987046b2e9d6430f4ee414deba931ab85f68517716931a35b4b245ce13f8e1a5dd57cdf49b1c3298a07d795f2c5b489d1fb9cd8995d559d90efa605c4d0665c0eb354872100a40560f23f9d79ff1e54fdeedc135e37ae1d593311d1aa235c57b44b455cab29c455cc93191d76367a5d09bcdeea0fd93bfacc5c3f07d30c6a9df737298689fa18e623652adf40d76443637aff5820cc7e52a84965963f11625dc566e50b7cd9e27434ddb22067925266ee250e85a5e5d55d92e2035460411044059dd7ec86077fc8c397a92b1820b87d8a1771fa42c6efeeb98ab976cdceee46580b0103b11e548be3b24320e347ed2a9c96cd33828ab735eca47c8f2bb09e34d66cdf5a82de4b446affa859846534a8bbb5ebd9b69344fe0952f9dbddb6b361a6b31676db57a42f7d9393f9cdce87f7644a07d867b248a51d8790336a904590965edcb64ed89463fc77fb819b1121bcc788370e0ba75f1a28e118e9445da7ff2224dec9a1e747dabab97ab97e357c78cd4a871fa3ce43388efc911782d4f974620dec94a0d37970d333081c1a9d4fcb8e03fd2f490a030b02762ce8e527bf5ac9777dd1e0cd262aae393bcdca056d1a6cd2e90c6dc3daa6bf547d3c4c996c042062583570dcae0218ca46a1eb73ce3e9afa3745fcc14b3650cbba6f882c7bcd1bb57d6d10aa23808004ea720ccb394df5900fe65176ae54f6c7763d107614688eabc386f0cde40990b703b3e5569cd1042d3912d88302f4efd7cb61dd2ef409f1f178b91eb82f09b48f465428d3dc04a7771693e83027b44f5ac1b5c845f1225b3c95c78bcaa1b23dd0061a47e63c7f73b4bc9edca356f981bf8af41ee56024dcff333e5795bc47503c3b96da6a4c398bade2d4dec0f228542526f0c641c3d31c41e64b02d2eade2136e21e263cae09067decee38adf2c203623bbfe529c8fc4f483919a18f43e722881a5c9a4b01adaba0813ccb70c7bb92eed48edb7c5de29e2bc3282dd10a9efd7325eccc3419c128b700652de0c6086bd566afcc5d3012514165c2a5cd5ab65babd78fb73792a1cdba139ba3ec97508b0279371d6cb4865483993df407fc6f17810fc9c1a65837926b76d24e531df243e96865b94e7b5da3b48defbee18e0945e8b6a696bd34f7415a0f9730df8828880dd9deb530e2c0232a848f006066ea66a6f5d46228e46257ca11c4730fecddc13d305d5b2a84bcb5e61a4690965c610753c4d09af8d980c6602326ec7fef1b32af2526df255d7bb9e1e0dad1854bc57d6d30bb7931202306374871dad62fd9894ba007ff90db9b78e566a8c0bb0e84dfb3c971692f31e653f9a715036591cba66aa344a39dc3e5370a5a6a24307a7c52fcb3cabc1fc2c3d9abd17441c2fa187ba91e61870f53ca92751159e327b40e731c945fcce69e29c907d9c18d68dd65da9a55bf0958efda8d8e0cbccc8f19d1be3fddf313e08e82e078120557e6dfd1193325a6d98610417114ca385218fa51c750f0ae033d457144e40983301ec99dbcccc9a923b3015e36f76b84c9e4e2034852f390e2008f5271541c2f58b55cb30f6acf44ebe1db5039e537733e8c7bf59b6a3b2a6288f7e18ba500484506373be61b3149985723f33c8b85cdf7e31c5c23f91e40e3698a5a656ca38be40d8637f734e77bcc2a8db1e3e6ae7c36bcefc0a0a255845fe8bdb5a360a8c4e9e109758f10f0c2b27d07d3f47f507ac2fdbbf8f736494703653d32f5981385f55af5acfbda3112f4e4731a3d7e1afb4b37e2c2f2aaeef815419b0800e3e31d156b343cf321080daab948d5ff93e56cfba2f666e5df15ddd71bf2531e002ab19b1e74fe72a979b7b7c2af9dc6868aea603c2b7daaccf7a1290a636df5fb9cd1c2daa5c3f09c9f3e01cf86763776c544dd126aa2a49b7e17c80094b17d016173a9ba7c568995af65dc13706a576ca2bbbb3adafb49539a13e4f04ba8ecc8a6a77df79f435e625d67c76a48497ee9b5b1e2aafaa98ca4247fc25e5ea01b549c763496ee35eeecba3a71da10e9f03e47a3542ccf8ebd7ed6a313d82cba6cb9cbc4aae3e3f9434bf9ae39c646c656d690e754d5af2faee2282a8e73ab2016215c8c9b74d26943c61b0582412bcbe33490899ae8ec0600ada69892c8bc4c8dd44fdb6636220a0d9fea6ba430ce6ad2e610537da47fb8be53b24b913cfca0832b8609d445f0698ebbd3e01209e70cde3845c14fb7ad04dda27fd54290d073c374ca1656aebf8cd39808ba0d376861b043e2b445de958dacda669c6ddb4f63c15c1ba3e0108562f1792d4a655b817d7b08668956a97321ef2ee2b2a7fc22b69e3779eaed20bb0fef7d93160c5b64a09972e1a4b1d06dbb7ea336bc20155697dfda7227a05903b273be02da4d9b0b6d7d4e5c8691aa86d9c70684fbc89d2eb8a8a8f886e549b1c28c785c681071d092ce6be9bb1ab50a1aeb73150a570e5defeda2df14b5572c35b7719c093697175227637a7192d9f062e8658d63f1bc16823a6a2681e3c3162bcec302b72c5332e4333fafee67d7101b72d51520c1dc19b2295cc0378ff2b61e6b8b22f46eceda28a91c7cba73656222c9fc5fcf37d4dd3893346f7740c3fafdf845e778a36d5cbe88f2452fec8530c9e3cda9c50948c4d90e6592e565392ff58de560b83df14ab8ab47ac8b5bd7b62c27603776c271684b8dd9bd1be60bedb606603e94b93c3167103cabb2223ba0a154ce4004ec1155b48add61ac112aecc9c3e1ae40ef0806e59bde53828e2396871560c43df42458ad2176155fda2c9165e705728497521a880dfdf14c0b728bf470fbaf1047cae4010e0eaee053a7bd5a2be14765a03faab7979ef535946a13bebf893ec7269327c94ade42be9bbd6a2c9f549654b5c239a94a235621129693819004f73be380556c1521348a6b9d6199d3d4e972beebbec6f6d64c33b0ec4c5db530e4bf4637675e81f516ea60305793f22a7d73480a86b05283a71a83b2f6b6405fc82c40b28d05a3c6616b397eaa6e6ab1f8af32d1a7efec9d1438ae1ac53461999ec02d4b8fbdf016da4c14438777d0d2777bd84795dc72eca07c874a62372c474fc5b6138bb9d3f06847c5aaea7494d506725ad00a361dd35e7d2e4b4ac7f352ed210483603fffb75ef3e43a6ab2daffff2350b980660fc985abb6ca3757c19cea60d27a673c00ae80f8e07c17e4e75693f369960c0a6aa0213439d80e7f990ffc744188e09199e6452ad2676131d2c2403e5f3033f239e77b18512c980d2f8cfe365c1bd82c076253463407224a6a1abb2866441753e60487d09aa671472cb302e87d11f73bc47c223f1541f33e2426dc681608d7d8290f09f11bc375fd5260d2193603f2eca062f22b92c8309463738a2b0b7496fb4d5dd753b10ef0547c26ca0405226d837d9ae468d0852e0759c5919713ecb1e3af2286cabdd3718381c1a64b38fe99caf7605e22a41e38d3c346ffc258cd671c551ee3221a3a3d29a8e4d4e6cf88f457d69b4ab8b8bbedc3a065a77418f1051b55bac5a13080a23099fdcde635e710d4549e882d70b3a289b885e5c52822c1db502893d2cf8dc5e07134052d1b2fe4ae83242f0fd93fef16592f5128fccd8cf7e23999315bb37aeb679ace63533898cf076353b15d6ef420568a0653459b29f55587cc94b4a01ffc335c031735d68030437bddc0114c6d5667103b1c1fbfe64298aff7baa9edbebef794325b09a76090bc379536afc03b5b3778b89e6d66a1c09627e21905205491d28af29e7200610e305f47de82b9b5ea850e60d6b766bb85283a33f581405589847a4063b2d312ed3d9f07be4fce3b2695015ec9fc3550b46f709125efacce5d0736efcaa1e13ea08247cebf886a1233844714f351a0e1240ec5ac09ec404323ad39b7a886dd16faa91ef6a5be28bf3808f8fe89cb96d951743c44778c2885bcf0281d800fa20538872a7e496e052f325e43134e1084cba9232d093b6e92831f03832d3c775001b9a08d612c474d7ce465dda8b7f3d086ea4f4532428a2acc568fc2167b43f6d7be8a4a637ce5ebe8797567a2e66ee060fbd3960d1de89fb11d1264c0662178de73dea4210047be1d748238ba8f888bbd1280ed7d0f16001ca0f56751da5a82fb1952af3bb4758d77713a307a28bf8077e9b9e868ae45d3f74632e346bbc4e0defa4a1ca00520f4be32b56bacb702922b982b3f8445f568d5c501b28c0dc3a1ba9ca633bc0b814ec182d3e42a60d11318f855925abb6067a1e5c6f96ff25c2c0f82816b75ecdca460c224f92c1630b85d3dd3f66d7dccea6afbadabc2b02a61078e53c8ab1931b4e3c5d74caa465abb96c8d5462d1843a12d33630207c6dcd5af0582d9220c5f73800dfa49436b58e43fd0cccecd75ef8f7be1019157682b301cd2e59400ca7a8c8c3ee9ac448cca0f71b841692851d8d197cd7e03b1ec8a5ce4338d4546bb04e17732c85694beab2e87fa1200d3753b43339d9b996d192cdf48b52f9a106d2811e5dce6bec14480f616e0f43c83b9bfaa225ece2040e1c7d21a0851b31aed807b5ae20f4d09b3c8a3908873f36f05d12f9b1a5863d969788ab39823e7a71b343e536a276984f099e4590cc219b5406a861a13140d1b8e62788c808a319c35c0d10ee6164908d82428b99beaf80246e4e404b7a57011baca9b577fba2eb5b7be96304996dd51a25159a5e3fac4fbf02b46d1d17adc18f2d6af81e34f8e49c40af0b127cce8cb4bf7aee026c45d243540b462a7a5f62be88b8ee5399675635c810db4826a6f1c1564109024383578bd205a2ca713b8618467888184e196681b9962f33985c4a0c38a9d4aa55604a3151dba4f5d3bedadde7fcb1a70ffd55cd00958faa5520fda6b879aaa2f0d8252a42233a8d66e1995dc7c15f9649f65e0400f89768bc685824f6b2cb72c11f37b294bd500412817ad96e088b304d8b0f2db94ac4ffa097b0a182ca405cf4c5bb0f92fc59f5b3185d38355ff229b35e0933174f0d1fe0695bbea4d80993e71a891a0563c48c3cc2803db1e588a9ef14637e26bf4c2ac3a06bbfcc60232ff9854fa44186a29142676f525ae2516ba69d01e05ac989157e1cf8cf7011b75bb04a3ddb018ddcef628518fecae8f7b7127ae203983af5c88c580e7d4ece69386510f9f07e03c5fed99fa1d36d349ddb7354bb37403ffb8ee786ff9415f6e47133999b958d0a19de3fa98bbcda991c6c8988e097e362833b0b5304d70e1c3bd5d5cdee4ed7a828d6c215add2ecfe7a1a58f6fd8db30e2c2d7a94883ce3ecc91cef476b4935593a0e93e6b4c92d2a30abb44f47adeeea0f7bb974b2008e7787fd52de89435fe53e7992900a3485313604637231429913abb0b9aeb49240f02601c46351ebaa208b31774da36e8f1c884609a8b911e9ca3f6d48516265da58531a937751c13445e6f76a9040bf00e7c15431161b95b2c3bfa70c2b864338e015dbd040d9ef4f86fc645ce2e5d030c48e266107c122ef4e932431b8da8c7d2833d9ad755934a5546c8f5bffaa777cf3018d6b52b2866c3f88331d0db03906e92e6e3348a33c181c56574e29cfa2038d9d270982a70c0e36dbef886c42122dccb37736b4f46c84b163fcdee4ef57743fe48d833b5471a8c8a04801cf4f714ae8e9b18b4ca8e10899fa34e6761d41a2e53fe7cd642e03432aabe8d8184dbfa56456f3fdb93cf422341aca9d3017ca2d011c04a38f4beb03a6f9fe3e85c170a3c81cfae51c2b6e02400fe949b2f51df5473eec47c7557760fbfa7e70777e50033e105e0b9b4735b4577444191ebdd0eeb874d9bebbb6cc1e468b52da0978100d722f973234fe5d170c63cfe22e97f90594d4b9c22b6b8a8f6b10dfd378096411aeb232647ac1b9d45455ef1b91b618f4c874a926ca2daf608699fe87b771e26d74af43e79f408453c964e9c9e0259e1ddca0e98e8da55826b25ea9ed31fa62adec0a1e969b7d6d6dd8314c65a5480cc99ab069427dcdc0a0efc3fad017eab2055efb3e2dae720ec57d9f6dbd41845495493c4de3465530fe38097f27deaf690bc32418a944a7f86b58747dabf3b903d05c98f99608cecc6f8c943d79703d375af9784ce6f1a33f03e6cd9c0c75cc5d942fb831df6dbd9f491ba225ae8b096f95711e8601e09f1527855fa77657d5534d3c282c9fdae7d7f70686756858156965b04affd141b5dd938a0e11f271ae9dc219790e03129b29246fc84ac78ac5c0ed2a7527e41011aa4700db921f63af3d659d8a59ff4bfe94bb9823bc77c1157425c4cee46ca4393c50f1f2492837a4bdc9ba007cae41ac97675cef8de310013d2b9b4e735be685547a7325754cdf01a69da77962f3d0a316d73fddf5b9a24ea3cb63e64e579f4b19bac4950959dcae8bf9ebdef6cacafcd023af31ce225670895bb17675a38fee4d0475733467f71c4c4bceed15262b858213ea3dd7ad3e2b42823f9aecb7adf3a4a62e71b323fb56446cd520451f1251bb8ea806bef5ef14df1e4ff42ea50c7577c2b6d949d0627a585b5187f817b8d4bb83edf0efec4393b89693c07313c64a29a68f7a63564d5a523a169324bf7e637ca9738b49f185c1f75ea879404e235baf3b234f6858c7b7a27c5a85b1473af966eb4ee7d3ddce2f82fa1e3cb0cf37cf547f7135c5cffa06933c4d83da93542f6896400a6e6be0aa745a6aee98c7ac1a18aab659f8ad8cd47b16c78946c85aca5b99008f63917424256ceb2d14307a5ab7e54416e94d4d44bd311a56ae8c2fc0ce5d166caf8fe58e95baf939a8511486c24163e398d516e4cb995de6c56776b0d04ad2b6f33c0a93bd8da9b696e06c2e4a85a2e5b8e279c8ae7e43942cbeb0d701d57f35a972c64b2f9cace602919f8a1caf3bf990b52449c1757da2155f4f4350692655ff34de5a645c1b5ece33350056b3eed887a69177ef80f609b59f92e12dff99bc1c3997872de980f33b048f0e7eba5902dcff7c45986c52ffb9e551a3dc41230a9b55c946c947f3788c224770bb28871381e2e9deb90fa580b4de4b7fb5ee3b03b5c80e783859d185545ef834bf8dcdc4a6aee331caaa266dbc27142ccedeea04f20d05da6aaab168f3fae6901617a3cc3d81536217b50687ed9d32beecf43e3e276fce883df81dd2ca7c1643cfe886bdc6def5bb87a65524c0806101906aeb10525f406613002685ca863639161687978b1ba70ed8f74ab3e108f98e45bd1aec26deee9d2f10fd023b1d2a1663cd9ab959d38c04bfdd55bb7bbec4e69ce753b817e0c7eb08ed7969d3d7cd4f2f1731b753f41f357e6c4ab73f16cd888b562ae4686ec0439ff827554a74418de7fd072c1363833c8fb59332510eaf8559b0bbab99f9da6f6fbdc3d69dfacc3b69cac2e14a590d0f7ed32b38e261328fe79dbe32e1e14d0d06d7e231570e0f4010164896efd26f112470316ba05fc039edc555e85cde1c723b1de176ff6772b8dc461b396ba2c0fa69cc1863f58f09de525410614e97b732669b5f3f8e20a5313fa1dc38bc7026b4e45ad6039079df1ed0eace95d9a94f16a98556784619ed006d3105c089d73797e5fc84bfd9f621c4eac0a46d590288c6cb6561cc416a0a0920eef5b395fc3a702654f9e1c643be2847758fd431dec65ec30a5f1abc633dd8181344c0563f619a8cc7d12d1668b2302f26deb3ed5b35487d572a53b701d94888f688dd37e9cae1b8637b1c7adf5577253a41932bc93154886239c027e52c36117201b2172c818810425b677fd770bd254dad0cb4aa1779330b603e6ed4f239059a01bb385ee850cb6a87f5b6876f8e00cb9ce517da941fd2aa5ca504e5a9d087632b9ba0106714cacafade4214a80703b57758c798a404120412e631b234d3a1e19e2fb7591c05959c3c59b1bd6cead2816a2e8f6c4932c99de824da5e8a17e156f14a9cb07f1da0a330b73249ae6b89b1ec2eab6aecd04dba42cc93df33f8c0c897a4c1346357319c60b53a22c1ecf1e9ca13995ec35ea49179c123b37e28131f48941f65d6d84e3da57f7f39487430c49aac3553722968f75276133bbe12559bf18536d555063f9a44bacf0ea6b36c20ac83469ed8dca04f78f3c3efbe521b4378181d9fe73ad3149b4abadca784778aafcab8e7f885ba96c8d1e35ff8beee73359ed76c811be213c89eb2162f338959eac7da941d3c3dfcfc24f1c197fddc5d78589d29eb41826c20080dd0f90a98397a137d9fda5721918deba2a731df670543d9446bcb5c2b8f045dfec395ac310d61a837b60b79d529ee2624538474957e89f20562794dd4e625dadbac788833b4af3b807b68456b14b7d7f22608cc5c2dbc9e1ac104040adb5fa05ee835330d8ddf1eae1127f9eedf630d66a8d57bbb22e2c2dc64be846c3b348af0c111d7014860daae90d26db3f29c7c5c3c28161eb377a687cc9861b4cff2eed41a195257734226f1b7bd4d8d1364b3b6e48a68481963973502c39acbc0091a8d1be5b218eeede218c723696e46cafec08dddcd83f67aafd4b172ad87ce1e35c13c4dd181e5aeee52e61664cdc60bfb60d4190fd33209b4032db967dc662b2d586d17ca3a08e0b30b0256db2fb773a6470c3c72ee6b1b6fc331faf6c393d89e44901ccdabbe38a9c90dd5dd8d5e49521d8f7e0667809a75f57a1b71fd4b5407b0bdbb086194484da9f03c424e185899f6c9094fa97cca8fa5ac8049e520b9d27a680bc28f9e764d04a0b72b5f3961c38b96f4504a5e53b44559c305f2b1d27101e2e2ec075360dc8708a7075f210cc89385b90fe54bebca300c8ab23eecd035e84a9c572d6ab5490d04defbcc3015b94f4d572885a78c88e5b939b198af76f3a708aac08f6047189300bebbb0e7cea0755cb3f611765994d416ab54a316a1ff7fe62e210675953adc081d10c84cf66706c50f9c6693fc3a54ccca1a8326c85fe57c9f85fd944c7ededdeaa87f9ec6f998775b658eba079ac1deb26180c673dd9d6f632af1bcd2ff7a1f9a6e1ac4db07a76b0a2257a78f207380fc696c431526a6a33b9fd7281b3963173ea1355b70e60c5d3d343ee5cf304bbc48515a5e0f2a91ca1d3e6f7f130f2fc2021a9d3c5bd525d7800df8528432e68f8dd8711cb8fd12c00c9723d38c0263284c250c884dbd59cdb02a2bcc9c5ca4e4f4a1489c75ac621c4f91207d3f09e39e365e10eaa89ee3b3ef5c9549ad9228ad7540cbbf1e13437bb062436d34b599f95eba14ecac52d273a3ad135a2d8958f137fe1719d8d3f93a1168f2b0a04f8a19f7ab7c1c2a6d36058557ab9451b8fe0737e6bf740d0580e34d983ab72f51a5867b5fda922de9c52f135063c85ddb1e94044f9a2ce2c1829f16e2d5499564c2f71294b899774b242b470f133bed320fc5617b80e8c43bf0275ae0bf51a21ad3ff71e4935a6876df9334e5b56f9f9402413386bee5c4ca114241cbfb6852c52ee0d04e827a426d344dbc97cd96f1177efbd7b3810a961fd54143e2b7e20461c8e58b4255d8c7128ddae076ffcffb01fb067d701f0cb0cb32c4a483a71f55c986f89ee0096c15d1a27344f1605499f3f60c9029ac28a30bc218be8feef7eeb0ef334e46f1dca4e12b1445ef8525871c8409f4293569f800e25b10042613908f37c05ebd4ebb4fe1f6538800bf8f125db287b116f5c6d63770a84ab7974b37889bb4d2e50e6008157d1ddf74ec04648e30b67b65be88ba730e6100c57f348aaeea90df0d51f53a1764d226692312ae810c996a9dfa0fcfc0030487e54f4055e54ca97658c4cb1d779eb3513811e95ac786fd91155074c7a256e15217c688daff5ddeca6a769a9dfb1ca798117db16ff060623ab65b9de2b50778684328d93e573735fca7810b866815f17acc48fa16efa040f4d70c4bf565c01426209c935ccaeee7451caba7771fa3420db54f3e64a14a7dcffacc823070bf257db34074f4cc8243a93788156cfbc09f983182fb84871f0668d0c5f2e42e30c6ce9be611027bd9324955fb3cb66f8b02d887360678fb90612f9300a929ed2584161c4d26dab22fd01cfe87ceb72e746d24f4367aff8b2040e4377e6be475e0229831041211d97e2cb4d759371e1ac44e7ec52b7778c08d2899578aa3b7fabe06693df70c62f5997a4ee589504eec30025e8fd2b3db52e719ec847268d1c2f8154eddff5c43ffb0d8a562f15a2f2b40359c7404159fe943fa63891b68ac28e15fd616553128c06e6243371ddd6a3e6aa58f58194d072594855295fcf7ef676502fb6ab8456fbec70792eb41a874caa140b0622dda16ec9c3d27952fabd7206388c047fab743564fd47cecde888885ff72cc15a53123e9b773b9671e68c1dfde4889bf3e2b5e55a6cec59c23b58ca0a273395bc7628b44dfb5ffb21de442e01b94713aaf2570f61719469da9103e1242b74c21585782fc5433e4eef8db7b558d0aef8a0a7082add51ac1ceea85979a464887ef030a94d725caedc04aa0fad23d5d79924548f75ddb60a0450f3145fcfc90d59f9226eb732bf246c92d0f974fa79c698aa68ca59e92e2d55735a50ce8216aaf9e9a2ede44f942b9a991239df96d75c10cc30eaba7613fe7ff1fea5e3f1a27e11aa9f1dd1ff122dd4f2fb64da0b3e14553c08b8be0b8b215db96d5c88dfeab020fe1df7a260071ac1461814ce928c177aa2ec4ea70ec4485f9b636bc76018db08805403925d607d2e6b4b260acdd82be76bbf78af0a4d59e33af682272359008ecbb9b25d12b1f0ac7c2432d5a2a961e1b94197924459643bf543a6bb7156a8f771a904c2950fcc637a15b25ec95c51003df44225cca1660eb9a0debd91e39cd8110944cd9eca69ce7f5f5cc434cf559a17381e9af9167f7d64ee4945dfa4fc71fc4b5f8d1bfb3a0e97d4ae836740d1e74fedf1ec1f0f2f7ebb0c72ea9892011cc3063388c466620160e6a16cd06d6a6eea429da194fce922e4b9402d1d41382c0ae32ed061a5890dc4ecef2e94f7d986add17a63d9d2d71c901528fe69918afa5008236d920b2fb135a1b3b31ccb6bddfc8da712e5924a1d4cd0aebde83ccb6b6663ec381229575ef5567fb5d5db22464f9988e772d8e9e69c40ce1828d194d4f8c547b7358e22c878d32d1283cc1df90b1258c630b96f7573fbc74caca70feebb07bd06fb1d4cede8c4e015175dd9bd2c35cc5d45afbc9b97dcbb420b0efde732bccb4852d61eb2420f3c7f3f1237a1ee957e81b332cf51da071cae3543b401e838b5095a1a7b0ede55d5c33e250db0c51fd6d4ba28af7d6c97706e0b6c02b05e8622718612203533819aff0899769489a77aed091610b9f95aec9f355ddc037a75f6b1811daf1937106ac058fc969c85569f9debb33f4628042839edf4920d354748d5eb758a07f54bf2ba0deec342249382a8f0fb8df4fcc9c702b95ca68e2dde256054e637d58950e1fd98589f6715a9fc4b56cf04694446df73a6fedde57df3f9aa0070dccadeaa4bd762434461b550ae4e430b35fc5a01800b7abbaf9778e6ecef8d0b0d3edf3810516e59ed45ba4b1636a2f5549fb44cdbc77b05a43e56a8b87a6e033de29d3310955e37f5bf8ce3188e718bed962258fd7f772b51306a83c03e9314ecf938933475b5cfbae9c3e7f9aae815d9f985b773cc1e8c40f2ee64eeffb8c50d81d100775cc87e7349015f52d09967839bbd431696fae1aff308a4adf1a3983b84fb4dd7116ef1b729ba02a0259c565fda2441fb8985c8431311fa5f4a9c769c31f4899ffcc2eba39a60dfa06ee71caa3088cf2eb642f69c13a9a23341b1c60283fcaf2f713250ccc0d6fdd3c4ed6104adeccc0ff6cb0f7ae9da08d87e1ceb71e96968398a430144ccc71b5cf76aa7b1d6b7fdd3d6830439362d36a119aad92b3ca5a910b70b91678a280819b8db40a57b7866d97fd7236a44931b8f5498a1b3d66983c8c96da4daef70aca540669d65aea3583f5405ac2ac1fdbceb3894e915dd64303c6a2362b4acf7b9892765cfdb4381dc32a39ec02738f4707bbd48ad5c241c160daf26a9b0d18adaffbf72c57603617382d11d5489c61ccecbb86c354d738fae7c4fd13385151ddfd33c276baf585e4580902cabff042b9c71c7dd2468efbbdfcc92bdfcfa8a45aca745c7d45b9ed435ef55c16a4fd5a34f2416d57d8a1c58ae2649eb728c42e1f1812410264e0b3643f730ed38a0022c7ac8e97aecda3ffcff85e0669c9130890d8106143e4a9cfbd1452349958bbcde896ba4f25965a35feac312305745f27cdee9014eaafc30c955e0e3398efbd1e2eba5c770321de8f0f0c7892312d330192dff3eb814db3b76de8441f375755645b335aefa9e5d45a970895951bfbade8fe1f007baa3f539ca053cce5f4e2b52951a9ee1682a269d574c0284e1839cec798be7b63f59231ada4fb3a3828aeafb92fe4c10156e8dfc9083fa7936bf13558bbe2b63d0aae3a0b1b4c4c2248450cba322436290aa628963cbd9f94e10e3d5db95e1bfcde57e8a6dcd20a097ba6c8b84b186fecf89ddc665f0d04328c98aaebbbe6f65f8ac60b3a1abe22c9dcdb11cd060866092fe3c52c72f92fa6afa1a60c845ec27c72b62ac72369f71e2e34123c85e62af4f8f9a3e7ab484b9650a2334e6bec50fe56fc08fcede003a61a097a4ef1b3e60ec4b82049c64574f1e93ff48507de5598959cb40a292f021ddb190e0d775fd75bd462f6d5da6882195bd5f8b9ebd6dd07b92c6680b59aa19435427d9f5dbb2fc436bf740a8d01e2aabe78e9d18374e7aaa73df4bcc4d6d513ce890d323f7614d99374ea5f909562fe5b309284c4e0f6acc2b161964bb0a9557b1229b7d4f83da55b6e1dfb67c1c1774d69051e270ef73c93edf5c7b19a50a13c14d7c26feccbbd9457a30be8e2704fe7a4931145341a8c67c3fd445b2d94183a07858361433b56fcbfc3ed3f03ca591e7181f535eec748aae8f70eb306f12d6fcae1ae6677ad6a37295c152dea5aa464a2b4f2bd3969fef0428b7ac503e1e3591f52438ada92aca15d583bd1356330fc5b8b280104ce6dfbd46c115379d721d61b7cc3c1916f36eb7e30ffde62fb3cd70937e59e44cb2453f5616aec6d08231a5e2820c49afef88a3d2f7855a77133011bc61d70716be018ff04c678691ed84c3a0a96361ca922b77a490a6eee8a31e02f49b3662a93b2ef99f7bb91749be1d449892d06be25b8b2b5afed12680e8185a9b2ea4828b8139d02071f6c5cd8f04de69930c72751ad4eaaf610386a00573745d384f0ce4033929d7bdd7c0f440de3e78ba065d9ef4ade24c4dc00146fe9328224499f82aced2bd512e0b97a4241ed32abdd3e7890aec6995e24983cddb0c233bed3a155fb6bf64619cb9d5bb56a99bad308bf5d706b44db9e2880e56fa78928384edfc861eed277a4baad75e9fe48fbefa596165946ec3bab847b16fa60f8a521b7b1b260e8713c7fa7b3727136952bb0d9b9742969609ad0f30f9c7acbb8e85e96b1fba96e3f72246db974ef85ca0777e2f1ef03e7c0d99e7dfce1140d5fdf75b7301f9a0b7ede9962f3f5f9fd7eb9481821b506719d872651e2adac50e2d309f51215721387e48c1e62978b66bcff99ed14505f3aea713a69a26635aea9ac9644efa034ea39c53e79fd95e0aa90868fb8b71ad4cb981b15a600761ec6804ad4760c5251026a741111edf75f6cff8f7a214748d63ea1e3ffd5d205f0245a0240a44ce72e122ae47dd2a89ada3ce548f052e6a1966bc55b18020c1b8f63f92807fa62bc2b2ec5830a9239aa0aa663e8350ec45734479a7687dbd8cddf4f0014273755968cb187566c5780c0fd5bae59bd4c54ed6bd586ef82f4436712ce601e02a9f24aa0cd64db774de074dbe8639adc82482812f7bad27b07fe60df062168aa050bc879112397cc8a4c8aae714c737a8d20f0d9c0281341a36a11d4fb6cd81bbac597b4a642e2ac6f0d030fc2d13a2e4c3742077d33d0bb4bf3bc1270fc249771aa87ec915bf92e2ad6820f3a2e25afc01cb4a62365ff590bc0aa812451a0464b61d322fdfe5651c48e7bb0aa33609c4f1355f8e4d6e75455461eedc958dd465d77533a436c1b8039fb0bdd9854ff47cff1fd71de87007b26ce17536a9d3ba74cfaf9abdbd2c9fbcf638d3c84c804de4df155fc14a2a2748fca84034f02a61fcf248cad3fadf7457e6b2f45268bbba9e1e894fc164e34333e3546120977864a16eb47e48a95bfda3efff41e95a154c06dd55849e3d33f23c1d82c52a139084cdccf52ea6c6a618136160935daec05b2526c14d5a56b47b2ad1286cf37352266e337020f127a3e889e9d67c3772433aad09498222b95869f2c55f9dd734fd4f51e26a8ceb8ff1b8343e9e97e3c962840fce1593dc141cb28b8a32978a0646959aec04ac4b6552f306b328be4481a6e974f33a0e440dfaba3b1553077b5abd4e98e7dc190b8feeb865203c0e34a837b825364a0ef735ec23957c8f01c17e5dc45ea5c3961592b3a631e02c818a31147343e0f82e69d92ba0865e704f86d31b48cfd1a7af665d8f14aaf3b85fec5a9c8e2156a74147c56ed0993951ccca58f0057e45c508ddcda006eefefe1e0ea53acd757d28b3b7de35ef13baee7503a271603ef53ec8cbd34138677399ac5d00fbf32fc7d3359bc74fbd55e86fee5e1edde5dc464a0801599e2cf4dd3b06d527d29be279b15b1cf48470df479709913ef1f170031f1f25def11d18db376c0e5ca9914ed3d107daa228e3c58259a96e78ebdbfb081e8d3cf9c3847c5264b03fbf2bc409fb95c5a8c8473a2ff325c09e98395e8b1ec19e5b75a81cd3d9c6532e8ece64711c8d5d25d0c662710d6ea19a66d67f88c0bd448ac6131ea81e336040c5ff6d14f1f678058eb0c0fb18ca41310d87caecf215c9dad1fd52cb7e8c8de446fb523e63f26c97ebc1897b31aae3a4cba1dc18f846adc266f2bc33b4cba8b0d0a03e85526ac28a1392520338c55c2fdba45533292daff20e2a3b43fe98d57cbd8e5fafd75c691b78866fdd3a5eaa7166aae016e9f4105479062b81c9013de57abad1af66304b74ce612ef2976b810baaca155f9c4bba3250d4c6db9a77e01b3b0a997c23f487d6a9e954f461e2c3c00601bf02baffac3517a4e85e9f2fe4c98588d853f8195d4abbbb1c6ca8191d1241663f7525c7888c31f1fc744c9cf6079e6f44d90374ebfd24782281c14c8d3b1e9a33984d187ef952012de3c6f79bdfd0ea3c19b1db0da28a711cb910dc0ef34da8fab61032426e1d9db6589263ad0116ce52ef238e0f51b7ab039095438066e3e44e510a9008108daad64a41dd5b26ff55239aad443ec171f1a2dec62b3c6fbde1b659174bca52c395d8319be30a9073d1893e0efca4a403938b45b7c55c2c7e69a5bab55e552b65e85dea7e819038bb861b2674a2cc2136fb4363846d9a8d004fc8ce1e12b3ac76a3e46311e672ff546099e0991ff8ce6b4a8cb79c0b0740c4432aa73f139c101c0c09fd71d8c35de1b9460451972642630d12a023cef6dbffb4e319a6b73d78b37d368467c51feeeb0f5eee2015ebbcbf44600e8d4501602834e98260dcbe35f1c195f4af384c21951e2c9dd2177b85d28fdd1a74ac21991a381e627ed2ad1120f4783878c6f565491f41026e71ab50271f77309c1608356a092b48afbdea560455fac6b9bee344708b1e7da57dac93883cd58d68e32fb82fc52bb7ba3c699b20ff06c6f37ae34cd1aeb21c96e9eeee39366fe62a5aa5980bcc6e218c662ac6ea07ca93795089b9ca339500c03a9aadd03864d07d7fe6332ddee3bf970490720cfbb309887503fcd3dc74642f0c21e59720a4d56384c720614b5e626c689d0e8a5a1a36089072e7f8a15d86a22fbfad336386f91c4ff3c90af84a81e5416dae440289ee23a38d0492a709bbabf34439c5b7c348ad0357b7f64c01ca65bf4f65b858859563901ced1604055f7296d6c4c2d8689fd0cd71451d320000219f66471ce943a97fef268708e61c1380be48f9de919519ddebdc703febf46c449f271d7697b38065a60ed0ed2c47e82fa64df5c02cd58d26f3105ad40cf8145c2bf6f1e7da0b212bac492f97c0eb73a6f84ee1efed31911fe16a8fa78df11a0b219b9ac92fc5225d71af63bdbc959f2bd50975db2c94f9aee064ac45875572d9ef1e16c41223c0165f806b2470fe8a15a45c2046c0e745349658aa31b794111b16ea988ff6161389b8537660588943df80059bd985120e02db4492f195bb78b3402737bf3e03c394bec661fcf33a1aace9aae740b0a996377c0e1489fc09da74f2797c349d1ab08647e6e64cec9d826a19b41520366e172bd87a3c01034dde8f916ee22ae8241d9022351890ba57df2fb49d47dcaf65922868fce1b2964f73a49f0a10e500cbe164c5794bb4168d9bc32f2aca2f3135719f50eca7bcd35aa0295db22aac65ab5f5c9b07755a09aaa81121150721122b5a2b60ea2f4f25567563c33d9062f81db2767b72d134da60d16ed00b397e755df717be5b553156e89a1102c417f726b851d8b20764c751f0ed51ac6bb5ee79fbc504d5946fced6498afd059c046e98087074ccea869be056e73363ddda57e082f8c1a2a1b06f3de6318f38392f46f44fcec6ad52f75c80f9275d008ecbe843566268e483b258803dbf632f12e411f660efb4758332248a279562fd8f05fe17a86066f4cb300596d0d9012c3a4713dadb45c7abd911ad444bc8b84b9250b485e8ee7ca5cf7474d0ad70318605c8d5fea7f9fcac83bf54ff2f3860f1f40f7f02f7edba247720504e4da34db954d08fa14f5534375806af57ff848d272a2c71b7382b07730f44507eb3b33a77b45630fbee576725e65a139d81d95917123243c5ec4c995bd3b2750ff1ad08d97e267810de313a03fe63457c57a816d9335a36680d8656346ff4fc73f072ac976f1455e29d1ae81f6343ff847062e6a4e0de29ff4a674889517be0031f99d221d3f991cd16346e6cabad675692121e02c23c1650ae1d35a60d987be4b427f523bee6f2524da8c128aea883fdf5d6192d7811b22bb200805fda1aaff3d77d6172d9be76d77a936642b9d2d0a42fa6e1a2c6122833c25771a760956c8bee3e29a69857cfaa27cdb947f6973b7211dedb00732bd93532cc8380f92589af5a766e098ab1f116f9dd2f2459b2f07c4fa356678f5bcb51ad43a637f48a15849116296b4c599085c3893dff9f096ef3cb642489a336ab72d47ca59edf86c575ed832971b246446a464a1ad6b35b5169eb46a1c89cefed0b986cf849ff20ab105f1230e230c536d8ad0c383af22d2f5c8446b0d51cd0521473f0fa7386fe2f39107b69533409aad0b692e704da10b490551988952aabea8c5c8c45adcb5897bfd6851ff12c684c800ef2f4edfa5784e2b9f3d6cc3ce87c87808436c7177fed0c841a7bc0b3d347e9c0965861fc506cf81022b651d5e60713ab8ff78ec4cb36b45129a649dbdb2e12f672def1b76f7c9812dbec7cc4dcc29383d2eebdb9c446241c869a5443c8416dece172d6507af1e5c977f4075bcd2c9b099457e8cb734b467891afd248cf3243486ea0dd70550533b99c29c6e5ba0f01eba5675977a0441c5b864026e8bf4b9a4406259d052165f9e3cadf0b22cec9946fd35334de1766fece7704d0d0483cffbe91d5f496110bc645f83a6e3d9e5f9afab74955808ca05a18ff70dee02c3c33f94d66cc822d5bd3ca9664e34b741840f8b86ddd7ade0d1257234f1f170db07f23dd15d31f70eb1cf634da3ecc4dda8a5eccb224dd9a4f137745a7bd6c39f7afd18f5a4b4db7ec08bba5c7a0184f80b26ee6dc6d4ab5e94125286d9bc5f71230c9f4946f962280947d00eba09e8116510d657ee903c929ff277bf3048bc8e3e5f8ab2ac01008364d3331aab5ab7d0272f6d75ce14abf937cc850c1fbc7c160deb78253afe94bb6290bd87948786fd420da634667dbf81239a52520b2a1f3f2e6ca2cafd5150a45670f92b885e5ee6846fb5d4f6d601d817f9e5654a2380457984a8dc748274eb4b204e070144ca34883a089c60fd3097e09f2eeba616e10b9d2521d6d4b97925c043ee4568c5c5c6fba28d136dcdd0e127e1b8de1c65835d159bca895c6c81423557840b8f55a4f2b8db4b71fb47615a2329c7d067be7fc9e69712d29d1864774359f4fc52ba41f0f42cc39485026003b07597dd5412a7283f68b6b6756d24d4fce12a8334d41c3b5ab681d588774d8a49e41fde8630fec4838d97d388a9e33eac61b0342474ea3a23b1b18c4631ca44b152d8cc42ce2e78f37ffd6bd64d134ed6bca7603aa3a1979aa7876652be12a8c84ea2983b196b1c107ac2b17127dd54d0bbb932a55044a87e3ab8754f0e903d9d51fe3e934b4ef550d06a178b63ec73a579d61ddb80cf435e03766cf4fbca6a5314c31545e891b61379d6a1820fbb2a1921431de0302830cfc9251f3466ba4ad50be007547e4448fb50fc26551a4df46d57b5cdcc196a6896be4bf3cdf5a7bb8b4617e7c77805131f28e8b36ff6a9a9cccf3ec42f5b2f762ab065b0f03d3219fbf35a58e7bba9de045f54c509b167a5166d48e7c6e04fdda4a51a29363eac0f1088a5cd1868388545eab90f332481ce75943cfa5f607827bcbaecd2cf566dc73cb75f8d7a88df6c70f192730726e91105b2b84a4a712d60a8788c1972a17f0b710f32bc3c44b003ce309f810bcbb5e8cffe0ce0769ca04b2742a359552793578201c302b445eb34ce361fdd4fa49182a56df1b9b0efa685e3b68357b060ab0a97de31213f49ff51d6e08647d8388f08a2347e843784a119b34bb889bc34e5ca16255cdecaddde5e8b2c99299f3532fe404e7c9ab00116ffe1735e47aeb058c82c896bebac1d67f55e8345e8a00bdbbd481f76d8ab6d2abb65554e77647fc3d09a7928d2b25ee8514cd5405e49f5026719d9fbf178a9f22c2ac8325d5f52426e1c470fa59983bed05274c040df0770a94fcc2b899c335eed19dc5b63a25f44d5af5b5bd53b4f20ae587f2d5bf69c7d0580704eb24ccae46c50dea6b528e12b45c9d8ff31b11280e57ae1904eaa81098b5ed57730268934ee34fdc1008f3e359d65acbc6120edad4d74d81a354196685d22f6adf96ec6833a54cb1d6f1e30d1b740f94580b4f06b15387354a13907d3ea7a509e4c9e17480eeae746a75695e0027b1c287275a714dd78e4c115ae0c04fc0d6269151ad45d792a31fade10ef2475aef08323281b196377ab797c946edfa916e1ca5a9515c00ca5ce1c54a03434c462817e96b4bca3f51a352472904e7fe474370c31d4293e2fa2ed5d75b081e564f2efafc9f9e4c903a474c65cd0adc9a0b58842577ffd1725b90a39c050f4f677ad95fa44d3a404c50ebedf09447c8e23780901d4db9e00c012d73b4b1145910b6602fd95854626479507a5a82b5e0fae40b24b654c109dba986434b3874f8c57f53da068cac0d9cc6c59c08c03a84659ea5e87e2c8a66e8b6190f0ab7942a3dfec6e73fb4830ebc4e695511e9dd7d90fc333c506d79c03b718d0256c51af4afa30a98c77bbcce365356786ca2890d4800e13fd59ecd4fb1bc90215d83bf1eb6ede149695b7f5e82dd440413fb5499f5db005404b83182f95c670fa86b4881fb044fd7879009efa9eb9f509cd9ef51806cf7a2da6074ef2cf8c5f9de73fc24ba6b0ad17746eaf4f50b1c66f8e52db8be067905d445239e3b2426b9e0a4bba8d8cb11b0ab21f5ab51a0aee573c844cc7ebd6a610d4382ae8bf729edc126ea835570cb88922e41606e5adf0c6e16ba10dc085ad1656a9650e701d7bc215886cb7d18355acb442a5d7a8c882857d22fa370a12ec97d22c423fa46bd8a1d0171f1dc3855744c236a7706df6e9656efada135bd9e7f99a6ed77dfd12d24681b7a1017c86b406c6fd8b5f9d9f850b9efe430e1ba7eaa93ab74aa2c61b6f511e189fec4ad780aec4fee8c2c5962ce866fcb8247c7d25f9705fad19c97181a1c24f3c6ab780a9a140f1e25a066531125575e29b01f97e396d0cd9001d71b8b26c325e121c7a3b085549834d08005aeb0ea8d2b212afc59b78e71ce859fa67ddfccce4ee6952c494c04afe4ce2ee8bfbdb68121d2be67988eec0e48018437c0a27541e652ea29c508f5511687c46162639dda7b0173b0bd4fa7317c649b273599138325564b86aacb029a019e4eac320907989d5aeebba895800c4030a8078c37ade5d705dd841d367b0970d82580979e1f24e3b7ff68e1874ffe5291d8e1fc064ab45ec81af3472cf30b74900e30d6a6bcad390de068ff8db1f60fe207ea21ff82201133159d1b7a9d64eb96add3b8ff5db8be3df7894c839fcb9cafcb7ef710a68edfd268dfc370fc943dfc9c4e9744231dc8baa12d6347b23ad00416792f4ea591a319ee17262365d3f9406b39430991901d30efa9191e773b729498a73c271d2cab4417aed786da6256daa5c6a5e9e427677df4de0502a7f87f8403228c3af0e2126c0629f81c0bd37f80be2bccc3f1338fc18c5ea91a7e70d1f39eb6a925be92c5deba120977a2b9fca611cd38aca3321df8ba674f58ea2f1f682cce109ed22fc5e48b861530bfc6052f711f2489782c01240978c7aff5d4fb671d615e5b130badfc0dab98f465d30ca46608b8ce4e5422bc971ad767a0528e5c65215650a5f61490db5946bb8193b527dacae298e9292d7809c4f7f9d02d9767d64e2fbb63b33b1cdc068fb678c0072976297ee8a94241ffe6a044f91f887544076550742394b61777bb49dcf6610881dee3badfdcc06a02dfa6695a5bef3cacba39351eada6730f4dfe50ff07da6b87800178a195af8fda6577abb20691379581e6652812cb3ebec227fd450b9dd84086856873d3dfdcf59c7c69439b0303953d7592f2aaf24be1f49cb9c591fb1ffe4cd77877cab189d049537ec7b6026c59442228f5f911d541723a47425bbe7902ce480cd9dfd71b77bebd0c637138797bc25557b2e9de52d509e3bffda456e2435da779b536d2b7c7d8dc10a7a57c76ce627d24ec8696608d40a7453e9ac5c8d8605832800da4795ad8cceafb0ce6c5f8ec8f40b9109c628174083bd99a4a95f6cb2ab5e6cf0423aac8b5d1c0c3b1f40ba73a87886990c27754a4e65d57259b8d4478a6fe25ca280de0248ce3aff8ac3500d65241e5c7f1ff44bd9f2b36ed83a7b8c4e89b5dd18564416b826038b5c23afc8431a89b11632f6b724991b05ed34c6d336e473f079b03f99e140c368dfef4e58d1046ecd48472b23a19ef745561acd3be1e1263f85d41c0acd35664230d10ca0efe050a65a8ac036f5fea1245294aa2764a670216a0ab968d1e8b88b8c5eac6f70b8821c1f77abb812fdd65cd8094b9b30ca6bd52caea0d37093ff65b54a63a202f6d6a67163e44500c05d87878fcc1b71d6c0187a1a19bab8a4b8e6f6df6c8beddd70ca49bc14d2fbdc0c996de4ffe7584c99ad6ed16951b19fe336e7b476455e545badf4cdc3052d0bdd98cd9af8b379165c0503b89c47facff3c2546ff9455d33bcb52df18c299ef58baf418458590a9a7aebb18214e3c9322a128ffc8d235cd65a46b1711bb076e31e48773979f2aa950172c6f90d639811f6bba7907f3438d385d08170bef7c7c5710000f60ef98a4e873ea9aa02c86a479a752c9a6da2c027e6c4b822e5bcb82f08089dc15da60ccdf40043f6abecaddc061c5cc327ebe61f5d81e303a11fc5696e618097f54f97f9145249b9df615f1442bd61c60ca1f553d14bd655d01a77af6c03b920c8d88448685c132f95b67dec2e7eff75214bd5cf71a3dad8703f0d36837a42d0ad11a886709292a8c9f082595a8dc6c094055eade7e9ae924dde4da5b83f933acbda9bcdbd9f6bef679bdb34124a7aff041bacb582a66cb12b1136224ac55696970c176702e0ec785a2e7212be4593ac53b399401bb41ed8662ccb80aaf3747c4345089d242ed546e8cadf0290a7ee7472bb3dcfcbba9a0644beffc65ae396167051fa70a605ac078caf9035e0ff9a01dffa9f2817415106bc2a96e09212cc64d6ffbc541770362e122f955e8091629f29c84bd227c0676b7ae9130ab0f0ef49ea36cb869873d8237bc1cbc997242e2965fecc60f5056b7503f6354c5620b9db7f3bd75a9d8ff8e83b64869065f29a71f581575f3916b9cf00166f7907af5d9a477a48f0763fc83e551879c8571afeb013f19a23afa9b9d843819bd2ed9f6a2b8e3e0549abbb543bdafd3de591af54f682afe91286ef04ff42d0388d712a4f313fce3cf786f8b8fe9f27518635a8fd82904fde5a969da15d7ae3e913716de5597af8c0f91391b56cbafdd486dd3f3a21764bd709ededf97e8b61aa638ced28ae90f7c70f76ae311c56fa26d3b879c6562aadf4d856b92b5f80397b35c1dfaedc5f8444faf4e046b6bc6889ee42a7011833f9d7da74b324d91d69f41fe3632e9a3ae07081baeeb03d9cd486de9e647eaa4e0102ba66783ea61c38708f1972a2886f1a048a7c0084ffcd87674da8556017a0300ed205c2685bb7bc2f8d064021878c5198dabc04500a2427c4282a1f27251f25db343d583e9d47714aaf751a39f005b871711db793b080fea34c1289301847954d9c8fbe354e7a7faaa240d24790afd5843adebf2410985cd78837658614f2e130e7ab3c1dbefc490c52d7dd1200a6cd8a6d7cd7a8ea8c21da4fb9c57900bc1b93e2c6751845782ff503b1f8f8bbef9ce5cafe7a036728937151fd5fa59bac102e5621414c041daeec059a7140668123184a9223650b82e8ec4acd6ec07019e54d61f17c010ebe95e0bbe04a80154cb412fe07d8badc2235d740f7bc84ee5e8311d01ceb7093f71502120eb69008449ff8b7e8e262d8278200b8f9c859d66d8e46dca17edfa5191da6def4698d0b51d02709771be6b1dcd87af70b1295a95bd02c686b41934ec1fa884eaba42c948bd0bef3343e4bd6acb43895df6c616262f354c67e05daac2f4caedc49e3719d21ab97b05ec752fb4c865d7e93dfee8e4dedfde9e2c6a8e19b2606975ac5cae638e0ad53202f8cf22342252399eb1431f3bd1be9c8bc07768716e6beb7dce0ac3d49b7449756e891226cf12d11676bc34ca89287df9f8cd3a864713c2a79c3236f48e18f25ecd3da60ae4eec7e90b69d7479fe89aaadc6083c2b77a21fdb70327c370a66133b70d10d19568db2128de3c0d2f728f09b32299a5d02f441a6197e850f0d0caa0fdc8e6c19098a24f3fa66f62c18519a5e59ca35209f786c60de6fe23b1a325b7cf41f8db21891a1bd32ea2280159b2f0e670a55a56edad1be49d76048de35702b0af2b4048fd4332279e9d7f465dce522fa4a623b2a7e41756fdb1f25a7d07b3f2155d0d527c1d31a43a176196fb170df49dd6b901a9200c9060e837f12d44e9428d6a3d6526b9a626ce5a6b8a8ce6db330780b76714bc58a80be7b92034935f7212e523a2ef4de30b5fd6f71e5280afae97bd850c2d862afd7ae216242b4fda4de457cd43ac62146b3e16e5b578ec4033693e35eb63c449580d7cb731836301ad03cfa616cf2d5f234573f89b38c1e4a0804d2a6f49f5fa1b7a7809fe6074daee2bfbb55ae7dbee62b8ca1652b960f7b40e2216f64de404c0b189f7b94b5162983bffcf51933391e0b993c6c5a9fb130170786d33c95db11881f21ac6a1ec344a10a96171bf8accc7e9bd9b1f2250da57537fc919b39a8d78d43c26f7cbe08ecc0d88124b2a2c4bd64c96cae6f6b921c3357cea1050b179fbf56b4569d8748f227a9b8460d1ce4d7c4d35f3e0b8c8d21bd51369710e7fde9d1e796c64708142d1aff86ddf7d069e883e11d9297bcbae993f198ad7e356e739395a3ebf5eac89f2bf87129a58657e916243765efefff23ffceca17cedf721d3836c5feb5796d92023eb09fd9b1d7d32440b1853515d558868af6234b1f9e43c0c3f79a085a5b81021eb671ccf713182507cef13ffdf1a37bae474479f94597109798b0ebbd36d77c620a6b2f32a3c05ffa3a5b2e7962e9b3fa058b28e51cf4a6feeda2dfbcbea35c3830509025a3b6651acaf90cad73016a8aed724ebaa8d5d78f50d29936048e7090cd76ebf708cae15aa807ec584d6637ab49ef465c687af5db419de0dbeca451dd42dbd24d841c71b20d89e191e8f2cc8c2287f2aa205351b59baedc8f555f6a1ded42c362fea955ce31afb33d9a829a5d6357a1fabf966bfa3244929aa82bc9f2de297e431ab4d32d351901ea5629b85a67437e523accffbb6c802249f4fb43ddb31207473a5e6388eeb0fa09ac1ae9b3923adda0dbdadcacf585202ce67495bd4b04a0c8b1abcf326162a24bbdd9567c2f2eb70d9e228014b596de043085049ae8450358141139aa1f4a73cf3e30681a589b681b158e99358152e1e86d314ce3e29f7e4db28cd9560774ea42bf3af717071e8f0d3a6cdd0023605a88b7ae29d429eb7005b5ae4704e5eb714545021ea8e01a96d08e60600fdc4c48796fbe8d8950f491218538c9e72e32be4ffc080bb8a22d05dd4b7cf15a628cac1d0b36693204824581a435224d72bbf0eeb9acb24ffc4c1c15482ace81149b195078e018ef31d073b03ef7df8934d234b75190e2eb4b5b41cd46e5d52764296ea9383e95548a7b9d5db7fc3c2859e4990b47c87dc19996954b800e09326f6778c9ecf794de01ce7f709e762728edb664f67336c7ea8000315bd04b12b1fe0ad759cd357b85b0a0a340089b5a68ac98cda5de1a4b9c5e6a27127265e2ed718bb4e4efe9487c6974848a007c2297fbafb971f42487f6a42c9f7355dab1106158823e9237224a80e5a019431dd118f5751adb85578012f379216dd5c2182b0960f50d128a28a0fa7ed37188e9a02c8575b6ef7f378bf2837b8f699dddf466fe188eac260081bcdf8408aa91824f93246ff71cb6dc1a6d29175879d3d407297ccb161e59e4b8a0cd360254d2bae2b6e3061f2b9e6efc4efb6cd9aff8a5ad27b9ee4555cbdafeb3f36dd6a6c780b76bada19c7c0bb061144af0d274882045a91a3d07c5681082c6c84b12dbab620c42868cb72e0ca0bef6d1b679a9528415f5462b3fcb0f7ce3d7d881919c2e516c1497ce5fe2239cbf4fac93d93fae28cb007f4364301a82bf75da2c79a7ee8753e6e92b16281e8a94506283be210a4efbde8d583ab7a460b6414dcaddb683f3500f674bc77a6e99a1f5de8502e821967af6fc41f1a407ce4c404eb073b8aab7d997a2a3c2792275a70a6054b9d9c74c86190cf6b3e1eb9756b4855913f322825ffaa27ce86c81534c27677e003e566173fb9cefccb61867fb99eb32c89eb03b1f1d477e7c2033dad50ec3fc0d62677efb9e39830c3b3ee31d2846f35f38621a1587c1a7cbc0306e1dc5e0c44f7473381392eb8478deff65b67137f28ce9b83c540daac85eb6fa0e3303e3999ceec2a93538b243cb961f538d4faa2b44c4cb79796ec71b4a68727517f7867a1032d3cbc4130bf6f0ba155fe393a2c410868959f9655c8d3f1f69c57fbb7eacd7e57f7b1f92b44b9a3e9083a271cd75622428a4c86d3846444473031d3e0597ed67bc400cbd5c4ceee778f5b10fdb396f58fd6459f3d183f15f652b7ef85bf1bbb70f95e8034636cc6a67479aad3185f21080851776cca0108ed7a4b84d8173b029f6bc5ea549aa4eff79ad983703d26e4299995398e904201d6acce21df4ff933b2bc786ee1fdb5de4edb3df08b18181c84c7f796be1c9c1c2e95c60ac84e2f98d66a5e87fc890624e5701f7b5f2a23a9c1826a6ed190841673bc5942ac1793ac2fc090bbc0d6b2ee112a999a46b4e3d9a187edb4ca75e24e3b47ba57ff99e4b3b4c659a36f9463b2a32f68059d610e98346b07b930d121c99be7a50b3d3fe0ebcd6a19e4801e9f12d7328b5a0cb545c56b7b65092ea8e758faafa23098c09f53ad3736061f7e6d2f883326ce307cc216a1a5995400841cf64142c2c60c944e9be4b13d4abd357d6a016bc569767a2c72f2221547e5a66c98715293043a56111c5d200ec2290a7d040c6df09c32866e4953e03ac351cfd079e9f94d2273ae61b6ee7e7e07c2e579f10741a2e1d43df3348b129513933421b1cd70679c5c119f8d42802a5fddebe48301947e3f56ef6c53330af069bd211c7caa5956b7f89b0a11b17e09762396fe4918221cfa97083618f85c4b947e24e5bac2b29dbfa3d0b8d7eb12cbe6151af25896a1f2461987a30a914337a7e710276797ecda52bd019e149154e198b2ee15c244c68b5669de40c6bb0aeefe855796f1902484d76ba1b5d0102d3a550c8135ce8107dd821b49cfd96003b75dce3385607c8a3c6210128c658a19402540e16a8926b5871fc9da5a10a1bea2df96183bba76eabd35fbc33622bccc4d894b18cd2ee45544a58ae3749ae6e4dffd1615c305dbcc0efd45ab6ad6ee04638737c5960f17a77fa8286786518e39f69584d32da4f386e7ba51c50c1d338711e86d27d7708e24bce593cda2937ada1e6edd186433097c73519c8f60f4402398447d7935db99a555e3703e58851c3b50adcfd6aca0836d548581f8d3f7d4a7444d23d6f53f48df415c8e223f9c61642b2800a8e4df20ba3641d393c2995ea1922be17d4f73081608c859cd304f035bb03b64b0ed1670be7a99f105aa351b11d5b231c26b8091f6fd8cb8f574a87d0e52f45699487f0ff36652ee275b91aafe699e78ed13de0648bf9e9af3f232614ee1c7c3cbebf0900342bc72efbda8f4d6c11157f3d9dc2ab0b393a04b3f389e7779c0cfa2cbd88983368b61ab02dd3a6d6b0512aad66e59524e05d3f6a8dd2bee743b7d4f9c0ba18b873a1ebaebf5557c96680ccc25cb1f9a192f4109278b0fdc5cdf832d84cf7cc06f03b49cb0bea33fcf09a77b2a11cbae3ce4f5ae5020719a833c95c55aad3f6723b2191f70fa09315ba07e63265644a7cd8c44c7ebcaba8dc14805c6649e6fe2404e3d997f71616a28fc95bf519c8f2d35928849ca8b8d31f9642a0202b9f9c2b8894aa5b1469a5ce3aea546db0eb63c071eb7b9736a7ef1c47a4b5caaec70c8f2477a1dd3c3a02f4be876957ba0c83cda23659ffcdfa77652d36b7e13ab41bad88fd755876f3e0c61b76d4363199c7740b1266d5ddabd3f61cb42eb4ac5ee922d0651b7ef1d89cc6e4cf8818235c563e71065f8b28c319fd28b7e02a5d1030e4c42eabdcbe46d85c46d477086d4f3e98813d0fce4a1ec792b71832f8add293357cf40e4d0b666bb60bd22c404e0577d7a386f8cc4832e65de9ea8084a0e6eae48fd1ccd5e9155af9a58de6fc024595eb9776aac6d090eb689afc71168b27e0869aedb43e214c93f71e038feb55f52e5fb8d60bcc7c4bfb7f89b462ef8a722f3b4694e54198abb4db27e1b9d80a86a2fe35ef3a8719af32d28e548cb1b37f9a48bd6a41287803cd5802532bc1e229a8cd964649211fdf4f8e57cd6acf0cf2758bfadaf8ff97228152007a97048268556d55452bb86fc7e4fcd8cd0a5bc71566891cfde320ad2210653502c74594edd096201147952e34bf7ef0384a63240d8ec246e9109fd6d052d7812d2ca9593148862e2eafed7999425a6b663776e832caff22a8b81ff2cf33e75d1b469838f64cfa4ddec27554ca47a104585f3dbe59b22de139c88c1bf5f83aae5eb6c4e6424d7a82f6b1eadb8e4ce3ac902d7f2b236faca8b1dce70fbf6a91244195d12d5c2cb885e8aae066d6ab2a02bcf9ab1ccec0a8ca795148cf9ab4c9640b18832f83bae6faccbf7c25e1bbd4e9862f256bc454c44d1367616271dab27935c37b694b62f1b106e129d0b0204bef515632870193d9a38e3e0a4967a29056987fbb98855c1edda357166a332eb9987e804fdd8851ac50d11b11e8fc34634a4b0f1e8d73df79984329a82d15761905354d91de38265f8302fe4be1a99b13de1de36d617fb327d5a07c72dd669331bb2936ecaf96c334d66f4302949c8c4a3ac683b5b837f804877e1c0812cd583002aa92cf15c44cb91f761a39be9ab16cc14d436c79278ab264fbf38bce755cc7e74ec0b522d82473901673c2addfc7fad6307a85fb1f96e063d0d87057e4d252ff95b83b398376d1e0c051415e37dd34db8b54daa7520c684be5062b55c94c179f4abc52a2e051caaacb924ce55a78f4adb370f53e481abd1db1371d1b10d37da799a786a5a195cab04d3f5db7f79cb6a56fbd3d9da50a45b059744974860aef7ceb3093fbf02280c810968e70daa67cd11bd7c38fd51fb35068c0575f1a6f067e06e7c5276681cad9a3e1aa298f6320a14e8190ea2b2cb087290acc88c191cc14fd6e815c1a42a776925c768fc6a3deb9f2e57fa3d307cebefb8c85214e5cc837fc1bf5f50130715c70ce26ba2b7776b5019bd26a43479ec330e5e5a8bee409d2dd9fd4220aa25a5c72681455b0926b653cad63f8e12d8e6b5ce0dead93557f2dbae76a22729cb4fb9061ab94971172af90eb02c0403a69942ebcab32fdf695db5b087186b1b80d27d9373094518248ec9b93534cfdda1e838a47d60b8f72eeb12d0eb207d2008ece708996237b5ea8faf170321f2e4e3f839144f3eacff2f05366239aff95e676bb9bb915371672382f1343be89b26cf507c3b3b15f5c0289575cf9f9736083e527bb54efe5087ca5d70b72eec8727067c6807368da391f66e7c0a60a91cc7587d80606baeae5ad59e91c298fc9dfa13ebba6ce43c8fea90dc9c7bea9a053ae6679c457cc1deba135b389a8c68fef0ebbda1d25b9369776f8fdac900bc3306b9cc8f5a52f2b36f4026d5cc07fa68cb68f42cc0dc944f5945e21d12b7764ef7c16ef5bb1459ceae6403d9c987df95ddb58267e49d7baf7b044c76531237ed20d5ab6274c64ea55807012765321bad1c6383be3fdfeecab931e17d109638e12105503ac768db23409fd2fe3a673cca628c72fb9c7c3f23a91869bce9a7887749435c69de8b467212d51e491a56215518b71ba63ab35f6a236a0577bdd18e9d53da28bcaa8648a15c40a474a7ee639fd1de21b3a626e66dbe4872976a63dddd28c53fdadf49e84120a7a1fb8ee3723c96ce82f3589d60553f19881b9db9a423639e5ad8f425fbe88f2feab245433c3bbef701ce263689922a89475a8051faec4072c7bad119a39ad878095d3544918f3f4a506af1c9b65e89546d6c3a33b9ee644b467676aafe0808e4a04bb63a4b515130957118101896dd59a375d501a66da76ab1d0f678cd8e0686e69b3ac97bab129459cded97f7d5c642bf81ef7cc8ee0e123c774482c49342c7a9cd98fbbee573b5fab7c4c084ac022a65048fed82fb71a0e0b04e91a10ba2d3b9dbff8264ee380b51e5c597f5dc1722d5595cb0a2d07f619feedd6f8b0404338e4ed6aa5be10e27565e2bb2afe9d3f6a8dd7ceadebb4b20fe9b27c571facde6f7081dcb5e9730f84d2f7ed94cb6e4fcbb885f0ff49658cc864297fa2c06882d43a84bead9d11987d2bdfe539d9b75b2e2170d6c08a559089c40bd0c83428b328c7adadc47edc5c5f80776e2b7ca9de87c8cebdb36946f7a5ebf7cd23560710bbc050b9a1fd16782e36c84c8daf1a03195ac8cc837df70111f99c72a45116591f77cd95bd028360f98b0a695d1a1cbf49befe29cfc4a4acf056572b4514975124789dd93032d0b641fc38061f824d5030e924d44b39fb713ee1a640171493948841f7fd697d31dc0d45a106cac7ef5482e28040f77d70d0e82ee92050b694b9091e03ca03872c315b67be27bd417722a71a030edfc770fdb3237581d719e2fbcccc7983b1ba67483ef107ae15612856474dc8e3d65db8a1d4df0b4d8a561a491afc1a56e32365cc56e516b604a2cacb46d6d64e1c4a2fb278d811a4c86a4e4a68f182fb8eaeba09806238e6b056777bdcfb9b4771b4c887eddfba05e97dd420158796a6d9d7e8b9faf2ab19d64503d5257ce95763b1d2da737023d3ea80db597e85dc2c429065cd38a983c0afed61501619a4233cfbc9189ff5ca92ea1a375a6d3437d79d635f35669b2c9b00fc928b73d33b5cca6667a992b469554e0b8cf5bd16a16715edb6cb43fc609b239f39d6316624f5a32940f816fe509034166ba4fc4a99d3a1143a7358088a83f6a2de9188b425191a9ae1d602e841aa0c982b182e7fea7742ec4eb8cfdb1a5085b4f2d61e72e703efb1ab7550ec2c7d0ddd638deb0ee07cf10e68cae61634d32308e18ccfbb29d91b2b7281d2fa3d3bcd383e006303400c8c9ed6048159c090f17aa8c8f41457d40c5633193fc2b9b9c3fdea5cf98225ffa41e38cb8909c374c6cc02f3286d16df1e9be0131b84c8fac13869eccd91dc1ccd794fd4333e59535be7f390cd3285311f29d2eb175effd4c28b90fe7c71d4c55d00c769c73336c764e65934d8c24cd0b98901306ce01373f8cd58dbfac704fcffe261b02f6a5ee93d75f7ed5e36fd0f046a85066bfbbe892d54b09fb88aabfccc39a234953d312fa4b57a8fc9d52e89acfbf6101d1ffec13cd67e283ec9a8df19e5d2cabf6e3751392a2da6861d7f6cb69feee73d17554d278a4ab0f2932313659689e1dc407c20a70cd379808efcf7dd9fab2afc48f4af3c17fbbe24b2c4cb49a5432e1a56a217f73080fbf4ca51c34c6e5e26979d43e7c2bdba08cfdbcad25112c41f904a9f12b3fc17198d529e58949732d28b2773da26a9bd88f3014ec1ea0bfc697df93a42ac000469bcd64e92da89c268692cc913c6d585cbfc8b36d09306df619ec11c5a40fef7b6cb0fe75401e2683b6479186f9e0143c265412cceeb9882d546d9239730803e0ec13fc57991630597942619d8d49c8adaacb2803c6982efa95ea92c5f30f8df7d4aa74c4497f0348fcb1259207851c81217e5ae99a619f1cb67aaf3df11d104694682a7f5e01d7e0667a33b40b7939fa68cd3a56655f1c1475c78babc54c4bd50673e519fe0d166fce37441e828d99e25ae3a4038ace1a2cb800f6d5951ec9c94c1e0f80e53c209f231271e58b845228e1acec26bae53460c3f183a78a8efbdc05a4a5ca5995ed9c280381e0f2ba928c2df2e7ebbbcca33aca8048dfaf94e659e6ff73a8638ee1c4f9a08c70dcc1ac3c62f6925ce346258378280359801bfb93a6460716ae42164ee1c107360319c716b379b7345a03ac2945316b84ac8588c0726db5e053f1c9e166f104041d0b63b8ddca1d7604f5da00fcdbec7687e38b6a593dc107012732071e8dd1418a477204748ff7ce1309d41058857db94f393527573f02c7fb33141615eced6df8faccb5336fff8c7122809af2ef373f25c412a3562f26988346365fcfead7b48e39af8e9a5d8305434d4cee8d6a706ce129d575212dabcfefba5e38dd65fd094e5424a9de8e11883ddfbf79542cf05387988669cfd202604a265b7696eda94cbb402267cd95c5de195e875b0046b4839c90e4dcc24003f3f33a287cd687c249a36aed1b74186f9e744523db13a90c9b836a55b5b5688b278ec2d8bd36472edf2682892547ad6d6c6688ebf5b9c2674970a7a1366adc7509df71777344826091a14c08e86e2bc7694a59d13b18ad42c85aa3680025c80341e98e2dfe26616a4056ede052b3044853af8a2c56c2b2e439c236da0d3c6c6af0517fee99f2451454e3bd2a6b9d31ec0fe09ab2850fb4aa84a1e61b4ec743330573abff64de4875f356caf3e8f40c2e137b637815ed37203eff2fd5ca8947eb50c2645bdf7a2499148c637dda30c28b282267224ece4f5f1a35ec89c7e58cb62ab3158db34313148ee7b785ed6826f6ea8f2fcadb7363203f43293dcf4591cc9a7dfb73148b9f31ce4e57d9c47336adffcd75d72071edfe978316b9f326d54546eab67d82f898405994f13fca81d20d54ce8f9218508e0d42bc9a87417e08b3fb341580e0a4000d2104a8bcae33d8069aeadd47a098152bc1b7db89ff8273e89f7ca2372ca15f33f350651768842d87e3a4e77db091d011c3a305ee31e8f69711fd9101ecb712743e58788f3643aac11fbef5b70634aec68c2be654524b53c76fccc93cb5281528e9f02d855719553e32bf5e0a082bb3ba19317a70657ba0439c0929d043e6b3610db2ec60ffd1cc84a0d0a49c9131726848f9d0f883a63bd74fad0dd1761d6d96a8d3fec6171ef57b8564c79734b86f24aa7855e6f6976eab15f97f09d2df8cf9bdfe8e9777912f756e49e26b0c16b4980f9ad48eeb3abedbd2a9991a84e196fb0c4313d7d1bf047450e4570a58973655037bc43486be8cb24c6a8d4efc4f28d767233ca5275c1cc544778932af24aae5eb9cb07d148da14ad018516711553cd2d1cd818d70f3d5799803416a76e1b30da7d6b2dee1664d4d06e1bef75ad83c8b07d4cdee4fd439358048262c593b11e89d81bd4b8e0cb50636da30b103ffd4d0935992ad4cf941cb7c2884b5318048d94fff72d06cb07779a6c2a105894ef721d93f313722cac79509f5d01056464348c0ec2ff49a01a0f187393533f459a4abc8a76aebc86c66f674e5a24a4f622b5bfee8c0762250880640a2e363da04f8d3090a247b24ca5b8f001786c0224590eba849ef3591aedece5b889ca1a7be745a63a61ec6a3a100de5544831993bd257148b4d217a78ce8d218cd8e5828234b9a254b22005e45c2d152c4f3d1e76bb1d76916a107a46aecd6a73cbdef8dae49460911dc7523d25327fc54bfc13fbea2515caf70a74301c3bf748ff455a2ccb93b1b5ae998d85ac92d3d21473baff9a90f6433aff2a3dce4fa39e2246fd673f04ed8b06efa169a6b29b6a82e9d5557a5656220e9ad07cc9576f545e5d18cd173a40b9bce62812bb370918c077e4ca78bc2422306467ad605be5b850ed02f1d0770d92b24dd348faa26578fadc601ce3ab1368e37e4396cfab47560c8bd15325ddc247e38b9766012c6c1742b0cd6abd6494eb5507e749d8aa5bc904154e755f59bb36b5920fe8c11db288c35478f88a5bd5a29ccbe8e489251fd7119f16cd1af4c793e1874135eb68fbd5bc4a4b45513259067cceb27ee5bd976a61de8769fa1a804b0579385b21e6039830060a60eb677fcad6cf2a495a5ed440e0769a7e7dd83d4b32f7097f92f67b24a94d61bb4b7d16818b45776f4777c08f4121d211d88f20a0433eb808b9e1ae0d2bb2294ebc1479b21654a132ba4fd1b324b5a6bac68ece88aa4d7fa6dbe1357c972dd9d1f67c62ee2f8794e04821dd8082a7f63e05e617ca36bd8b5929c1008217dcb46fbd0009d333eef4aa8568281575026559358286dae08a717e45b227504963a70bec47b73a842e070c041cb46445e6fa158606af2d169812658e6e3ee1a89b0de3b098b30c586ae6a439aa830347075d74eb141bda8695aa46cee1b78e9426e827bbfe78eb2ad51424501354f8575406048399703791dd50df03523f862505e5c66f28f2cb3c5b3a0fe9a07178c9b385c56a24b27a72e2e2f6632a51255c9cb0b887d8c12f5ffe305954a490c3cd11ba0363d821a2ca4e56a043cbfdf71e6fa791d15674a8519925a149856a22f2204e6588dfb3a5c2244c546dff434a797c301761190701d86173c3844aa92806a626336c92f7b7a88ef5ac8a78f5285a8b95f9becf89ef3f21eb43c7a6ebc67a20926c00d15aa7c67fc296a9540775c152d8d5d5177c6ff65fb1db26958dceba2e3ea2ab309657443063290aaca4b00fd62c8698d1cb0aed099c053153b47aac24456a2d9a2524fa37b2ef0c58327bbf2d4e7c7fdf0a9580b0e15270d7acc9d391397bdb2a13749062061b53c4bf50e3b347ddfaced2465461a5ec25ae61cd2132415b855235ef25ff722189b6212d6b4f57b61624875d538b2ee86951c6cc536ee83ab8ddf80ea8548eb527cdbf2f089932bf7446e6fc0f66120070d5abeb666d689b4fa5f19e77c3802eecc20594c09c3597060d2189c99990c5bb7b079798c9e32812c600493ae1ee5a8e1c9def917188241aa368edd2408213ee58e870647dd316bd5ffc16f1d1c6f44c6e9ed10b6dc6815a059358711bf6b214f2b4e058f616c5acbd9cae6bf9df80dfeeec058f2c29a1138737609548ff61bdc97ac35f7d6ff4385b59e7d4ffc6134b55db602ff7e4e77438bd58aa6360c8281eff8c75e55a87f4a47a6b4e4b8e51ef542ca3977ef090803c5f7a7e38ab1d7cccec8879a8309a92a8f17b0e916902ec99c903e00ccc6219552dbb4f74cfb6fcba0dcd30fe1d27f50848a17472b9d22fa0434a05b4c35b3c5d2b7671fd136bcf10742fedf83b0d2d9f6b03563570a9f8207a76debd4e1a9671eb0f1caafc7d7b37af93d96e5c4dfa7eb5352d9bd3db4097e8bb16e42bb9217939490152b6e45cf663b00e87a22f661ef5bedf0baae62b5bbb9631ea32371d09cd2c8480e1f716e88206ef1e7b929a201af6505528d514d5ab1221ad1f4abf84539b4fc9a09d728336bc9e3f089af18c2f64526782dadc1cee613ce6948b589eee34b86612d41d5ed10a6e70eb4c4b1c45b0b4005280db25017e18a67ce0d678c6861e60f391fd530f0157b98be2770c15e283d727dc76622c118068378dcf90cb2417a22191fe9b69e7a6006691310378fb6a8eac5055196f64f10cf7c72156bd33aeb793350203d68debd780a35be6c471339114e789a04f282bed2389f0d76d86337f28efd9bb38c0d890fbe3ebe64eb169dd453500fc84509ce0d3ce17bad405fa23b9d607e4147aa500c869cf98ac6bc9de4c7356d6f39b22ef321c47fa43cec94af17c1b9ce0771c8c3cc2e535290664b16f86893292ed145cf1c098640cd71dfca76e274678e1941fc27e97e2cef9d9abc6bcccb39fce1abe94ad2da46845e90e40172636feb9b4d85ad0b8549673cecfc74d5e3dc45fa0cd1f261f56e61023b94e08bf28ea176863a481284fefd043b75f8d67002554985c8df99f500634ad32357b856a1e99eb86d4bfaa97ba90c569f9a3fe07874b3b08c6f433646521bf0ee58f04d925e335634da28508bd86601b6178948143aa2742e901655f38948a4e76ab2a8bef70cb493c4c4a75cc6dc2b0d2639e2d06f18d804ee800181189dce81f3548b911e8d53ba037137ac8516b15d2222214f6e8d4f85d29b914ce43f7499bbfa8d55f01c06444726154c7f68476e5ee07ab0328d7c415b4ac0e5541ee3184a09a68bdc5dcc657bf7b0eaa1a13edec76ffe710c008eb77566e2b387362913129b1f2e0a30b58b7de67a85ab4ab3483820e7b77e32ba00162c102ab11454ddc02dc86c10283a4aa5a968bd39cc701152661457b0fa26188b4545092b1172a9cf3c6b69fb08103e58b272598a15f2b3cc90f6edbd08e9901183a6af7d5d8f7fb244fb15aa59f4ec30e8fbc6d20dc720f1f6fcd8887cd480dab0e25d359f11ebc290bff45a3d2f3f7e42220691553d911ffed737a2b506d789e71f9cb6dc8427603acdd9c53cfe91a4a537b1ab02ae01282e3d269f55df2b6eaa5758680fdde5803c2d4ee72b592007e64fb5f59bf3280f1100815c06219e482d58e4a1caecfc5311d0c8e61406811582d6ad7d3c357b6baa7919b79253c0642e8549d3a89b4330b92c7a3dfc36dd23ff674f2d2d9e5456d45349d18fd0531a2dff17bf6f92afe4fb021de2ca326126af7fe1f46d3207db2b430b2a25c5f71e98116e1351a9480f703067ea24ff4d97312720dba73effbc20c2799bade7c139b3ceb564785e0cd0a30e217a7c5c86ebaaab0cf1876b272b328adc686e95bcf2154c3a17afd743a165c71c7ba9eb02c984dd83a4208b2aa1e0da95cd8d2585db66a5010b25f51ef123719006211f1f3e97bef82b684babea45533f84864226d743afcbbbcbcd495030a522d88f125694e98a6ab7d8cf91c32d6ef3c839591cea4c68d71c445a7b6386246b28717c4706ec2cf25ebbf050bf8d5d05c8409099648adcec11b74844ecc5ec1d74b548436bb4c4dd17396c57d37e31251ca72c9bc469b0478a49d1c5d4f5c5293d860b27e90ffea456d571cbccfe7066684e624af366f6630f5d04c364b8bf01177dc2105a5754a8f009f4c01a3d99e9afdace0fbfe81469484a3e24a8d6e6f7739b66cfad5c3b052df5d18454bfe4a5b818f0e318486e4f9d1eff72846bd9bb7cf612f885471e2312090271c5cfb53be1aa6107636a3e7dea2cdee787f05262639d8a700ab0c7a03cfa586629966f5d84e360015a17e1dcc909d83d3cf8327fe7bb0146c14270da9f140120c4d215a3149aebd341e682b19bb5bf8905030a80c4bdc433065ca26a8c61f276c923d8b294db8f7daa7164504f2b089bd07733f0fb0bb15977e3db1630db93fe77d03032c926dd5d88c147c4a54b0c65cacb3f0fac3c4a9177ed3729d8f2ef271001d8054d72513a66bee9f67ca3eff6705a40de037f403dcca29634ebfc804604ce98eefcb21d70efc7b9fe9f277ef8774facfa1ad0cb23f147b18ea4a7b0ab05ef488399f046a18073b28b5e12fea4e0867d7edc4c1359a3af455e07959ff2fceb46819c7e2ae67b281a8dd8f8535d7d4b99034a44a6a41e8a641a67d9c861f1bd1124789ad2bdcd6aaab0592e4d16b5d10d1eeb45422512d934d150e2a059b6ce77efb7ba1a837878bf227a1b84f68d06ade2864b2a01033ba8968538d8760c545bf6090900ee43adbf33a7dc67af68e927a1db51c8e6b8d5c6f3b3eee9099a872adb99491a4117ed4403bbd22389f3108ccbf10ff98f7da6cfc1b0372e229a219c84fbdff82ec612738bf5e5e8c80db18f00a2a0e4e57a264615ea6eae7fb5c9c32ae2d6a9b879d55e83929e7ac19e1c8275dcace4fe25fd7f2b00483307e59100d7327717839a016b3228f448e9e5b3dfdc611fd20eeaff703d9fc7939297fdada0c6a2885af1238b3d64b95ee2466befcab0a751f35c7003cf4cd9eaec9bd1c6994be0ecdc2c4cdf4c725dda2f55320dfe20ff1b5215a70543bceda98428aca671e094e5a550c23a9e431c9c7321cf0ef71132b55b4d22e3a5f752c940031ad8a4441d5a9adb142c78e4259835bb8c78eaa5e4f12b632ab63e846f7fdc87b966117435c810df57f6f4f3935db2a1b2a92d331d114b11e5d3711d99c09dcff8bbe9e0ec810624df8a9fc794ea745d131adc03905c70e92488b08a8f5f8bf185c9d01026ef39674e48397df3777140b0546fea3a524f1c8cac359b4e9927c19e0d3292a4934177a2dd7a2a9fc5abf020d16875aab8e2b9ce5e9b29203f4f07dda9cc32f69eb5a7ff8787a67dd67993318de8032ea0f636690f9cfdf9f53c1541f55a138dfeab3c2fc50b7fd7d7b8808ae8e67915838987f461f1f91584e946f2531481d066971e6d3a1762e1f15683afb9b61a5aed4a5fdfc1277ab2d987c92c97e0b2d6e39d9845b4996593b5041cb8b6b6941b82d94a33aaed8ef377b6aefffe511127eeed4a5f6c9ec3ded05c7f9896ee0d8501ad78e0965fd6934a0f370f58d027e786951cbadd8b9f5bbd330e4d5e4dbfccc1369c26ef6e4764020e37d7fc2a082d400047037e1c751667bda98824270a69be1f6c68ffc5ec0cd518c5c5a6b8e71a67246e4a50fe52c3af34b98aa920c1ac45473d755265ed4bff022c95d310ed9d2563af453a07061101aa747b1e468fe42c97371893973c87e7cd81de651a61253476531b4384383ce99a0084241de7e1393377e97be2e7b341efe035c6c7b55a0b0edf90bc84d6c12f91a1e0bf9688ba88de6776064f7ceccd555335060d448f0ed01795a92c8be9d0e08539b6a43e44c6afd06d26a1304e073c540a11741bea7fce7b98be9b864277e5b6e7b31b3057f221a4879bed23f91173ab0a96501595f23661432dacf0d88a1711e3eba15316e7113c84648a1cc63a8c89063199f38142ee20571d00ab6ed8bba43a4351177268b9bb5bed55a42d7611b58bad2db604cc3552d730a5111fad7baed7e4dccd583f681b78f82662529c2a4a30d96191403c1815d1f39c298eaab194cd3dd008420e4349f677d5ebda83e8dae908b1eb32496feb9a95aa37f4db216e83df3b395d9a65c216b3e7a6fb992fa8aac7f80144f9f05e49ca70d186650474f29f27b23319bb1413c5793de09f539e11047346c2dc7fa8a37a6eb861f24f285bc9fcdab95697d6f7dfc9e70bdf2eb80570b396802f30c7bb142f5cab79d0d68aea726efee49aeb931dcb334c79b3b9788f435c576120c3beb59d84fd68c8aa48a92e7d33c9ab39cc3586d3e83b2750db85a161842dd22dde872578024a77baf6a3b6b0a30bcb405f7ecac3c80504e98ce3fb448f5aad8148b0890bc06b064a73d999d092a1b2d9e5995a332f21a3edc204be4f99c84efd108d8453c138c2edb486146372102447a4d617ddd5f89bf1934c5a5f64315e3207ccc47cf7140500fc60c63057068fc04f3362ab5acf094df94933cf8688ba1f0af78f1c2a7e02f4500310a04de9054ce7627ede6b3a12b89489ae0d25af24ee343a2bf29c317fb290b8a8b0b6e36defbe6842fe056722ddb11139629509effaae9ed27ab3b867efea1fa7942bc6d85bd6c489f3e2a0905c09f1d88e2fa2d7fb3ec223a13bea145ef30519364f4ad5400df206ecbde61255cacc3144ecce047dccdae495ee3990dd7343fa9e4b1f0e1c359f9cb01abafdc6e0e58c87e77323fee1977614a1fb14a3276bb85f094e4c94bea71eea60bbe8fdc889fcd435d288ab05dcaab09ffe3ae077a07ade5f4da889fba0e5cf6920ae3dcf9524f9d5127a9515e285f414193d7e743de1b905b472c29285e9797d52f17861c6293e1278b9fecda3bc04774264d0c6a8a309f35033808525aa2299d5f09485f28956be5872f303060b8da10af05ee272773459d17fa1caa481d7bf4e7e13bfbe158a51c2c2f6f69c8823356f40a2d8072e4edd253fc6c3c942948dfa7e911f4b47589e2c5ecb2009cc77d6d68c461c16e691d6be564dbbe1ee4c5bf3a260aefc4a1d106942c59d27a3a6fb16e09a379d8cb05ad8d2906180f64db9451a9011706af6c822804167405d857327c820f1e66a5060058ecab9a9ba63c1049bc47392bee042849fb18e713c4d58881b964cc049a0135ce553d6c21d96f972e803632acc4709081d4548c8b85cfa25d5a58090f75aaba231b1c313ec394d67514a1327bd131fa70c0d5885af97dee8f641b4190d05f3894416a8b8465e42975c9f40d5cb180611d9e5486a6dff353e02c0f7b1aa0339bc9f78c8ed03f0a0fde2fb9328472fd8839a949f1213c6f7a05c34a81b50762c3134102482555a51c1e61ce11567c48712b72fe51b2c7506ae547d98b24257fb3fc68af5f33e6e6f49444f06c192733ee0ebaa6d27f30892e4975624fd0a58f356af6f469c8abe094da9049aace6ea58d43202d041ad7e3dfaec07ae60a4ac355b69d5d6cbae7fafb2a386741ce6c86d8420798d0514efa3bcd54ba699e310fe496886f09c187ff28f502b2aaff84e16ad5348cc50c51e8acb31a51d8d12043596bcbcc38f31b43a9c12e9260bba37ad163596d02e356237e3816e4b462dc3c8e61795723fff50f1f8143e8264070787f9d37c396617bbd69cc55a6871d17b86267a9551f6b23632bef9235e609e283e2631cd92fbd330fe34e7e4a17ff01fabc43cbced561060ccec1b165dec9812a5300cc33d108711a94bde74e4e25e9cf887181e3fcae131e4b97489655676d9993eb2b1543ca2bfef1d0dc783e769cb128f287a3fdbb53ce7e670cd49e11fbf2d460aa322548cf845758fc20a87ab89cf442b1de1300dbae1746d8096172d4fd68bf2997b7235e55d388155ecc9f4f96493780ae35814be7f0b3d77b2af2cb06d70ca3b10877882c495bb60fae593db14c38884e930d99fcd557bd0853430a36ff9a8338568e050b34804ff5d34de2750f5b5f0c3867bec66aea22800868e9ee54ebe50323d49ec1cdf788d1636d666967c3efc795deccfaa788c3f62ff88ac2a3f70a1d84d704f206c2bd4ea1edebaf06053b614a2c10f8fea27c2af0c6ad41766da0b3b77735f76ef723fe27bee60a15c0259c7cd52eb81b560db998357a95ee0ecd1838835dc5b2f8962951414389535b3c5eaa032339b528eb5dfe73aacb2513b8a822e07eaf5d23e6c1583e6285257518b24895e9ef938b482e292b415b293bb43ba5ee5913357a7a7adf6b5b2c3d5a461f4317254793562f3cdf9813e47770546434f3c84cb10a1f09e189cca0cf2cd1c2da92989ee3eb82edbd93741364cd179985511ac63791fdb28246a45a23fa8c5e094ebfb70e49c179d6bc44e0ae66c04c4b18e708fd12b2dc145b16e454e9cad48a2a23966f42040f8ec70b40a5c13bb6c993aef6f95397747abc5fdb4518f6f37a64a068e563c7e4be3f677d524030965cc65e99a0233c373a32cfa22e181843650e44c35c90143c4aa6fdb7ec8ec5c78c3321a31b62bbbd90e024af43944daca1cc0456f6f753ca571d926295a60335c079fac5fe2aa80e159819e88aa9b97e106300b468820c848f8beb3c987905f1b6a8df06deb26298e94aa3153fa1a0f4133d893d25c61a1f0a8d1969e09ba52315d5b1422006006321473a1046b53ea42ba06f4741b229aa3f74c717514a138f88808f8545647c5d2a67789b5626a28c9834d6df61b2bb23e70be08a02bb2031b75ce62412d9896684a8ab44b89e63d548b02c7f3e36ef85c8e170f24c56853aae5c1837d346306108bc72ea594a282e4740b4bf28237eae2f50d48054445ab4eb3631e57ee309095819142ac3614bee365ff8c7eb1b13d3c976724a25a83b0f9e10150bd8f50e9790f51b04eb975657bfe8b6e59732d75a0a6745b11d50bf583b1995e8521f217be787e3934c81aa3b6e3250520d891f2b48eaaf22b24f3eac53b7a67fbe91c003ea3b0df27b56bd6e7c6bd0ee01e15ca48f65aa60f5a87d6ba8ebb48b4bdd41776e025d12b73dc8b3ea7b11551d1901779a95f8107cde1dfd1f655d0a3426487e0c46525fb621581d3bfc0daaa3999dce8f4b49160cb1b67634d57d283f0e83573cf167b7cc4005a14915ed6c3991337b2d3ac79f11d2930cbf4fa2b539e49cf3e59f005284768c5318654bee12a167e0471cc551d16aa46d22a149ee3a2fa88f8be93ce9b104195bd08e991a38858f1acbcd83235e2ab3e57fec55dc187f8541fedfe4a9106815283356672cbed1610b6ff507ca2c20648dfeb38d1d4a6c140e1dbe83e2037d6e82a0638c17ab8f6b1de949e378a110e67db7ec57beded68e7c061a009e7e0bb6add61d7305d25180782caa2cf66f495ae6bf98962f695fdd34744f72c7de6edfe07f44c5bc602646db801806f3c90d84170d2fe4d8866e160baa3c918aa61c48fa31bf3cbdf908b46693c3571ea1fc9ac73d2e456f1841023efae72688c35235f3db2a3084d9f63f52815f8f338e1014b2a345bb02a1d977607c7fe8e4ed255e120365090a3fcc56a0bf35aa78f93993afc312e8a746df9b0f3bab82ef284cdb264f5b5b3cd5b93ba938444eba55e2b0b571e4a47ef9511c929b0ce2da5040d4a2aef6f3196427f2e8cdb59b8f9b8e3aae6d2462815d0717a24c346261e96423b6d2064a2792412c809c5c6a3be6d58c04325dff53345ff23a286ac47056ec13de51b5e1c86507f8cef56d99257a62d6f80e407ba577586b1843186f7a5718001cec2a964642bd2e1ac31973e074461a93635299eab1feae6c93736deda8958875ddd94467198581cb2d18062bdc9fd94e9f9aab072b9777ebb7784c95ff8860f64144f47a6b969c4bbc0cc7feefe7e6c2806af331de8621733b3b2551beccffddc5294ecb90672bcb6ff3ffe37a4280584a33aa683db4df7a353d414014a212718fc2e6ed4fb125dd76321e7d328c4c210afcccddbee70301b2227b48a11ff8a5c383ca28e5d313a82a7db97755509a42a913e7c02414be8c0888c209d1818ae81176fd9f993b1dd544cc6a043b03216b9b3d0dd6f5cc8394a13cf112f254e874a33ae0f43ce6851f2f2e741b79ef06b5c7c65889fba26457848b8765f75bd54ba56f955e5db748a3485e3a46eb16d5b616ed622a7d937eb145a4c31bd9c9a2e160e9a46b60c4abd924f43c1ef0e87189dd29db848086d306e1144ab6bd65b70cc1596a9fb07e6b80432a587024f2c94c757d3168186e3e46e1fc72eb39bf49e4a6478ab9b5d44c123a947a22c8d0d757f84d8a3300b823efceeb26c1af98980a5af4852a445839ae8865671bf838e18e74483f621ccc24e4dfdff800da7abdf086fdaa2c3f07fc56211d43bafe4e51a4fb645d5436064f6c5b4148d407f1f757cf87db01db307d6b27e7e457f794488bb72b6a78621e910ef16dbbd5a0bfbe352e1ef7692765511b3b5e7b0a4810eced64807350f461c245562f2be72cf129bc4748a3aabb10955c214ae1aabf6970bcda89bfeed0260449f51fe7a26d8fe46f81f9145465856b9ec1ec1bf4b63b927054a24f5c65d07ddc33eb2826c75cbc68b3a83e328fcfdd21b5cb424eb74d56a67f59c8a504c482825ebf25ffcc4191d916a7eb8d7b185885ac2f1d95f2905507efac2ff7fd318baa64853b3678b1aa93a9339b1f6bf583da4d0af8d5b658271ab362c0cc2ce2cc8e7178728b1d2f73987ebb8b0f41153413e3fc6215534ea478119097d9c6a5537999ddbff112eacfe3742518e6f14f5e60dd5362620ff577a00126f351e2602a077effc017760cf7fb4f4a510743182c4acf373c9f1981048062172987bd7926dd459f20964d5beb138f76435bb264d44e248a3d3691eb597fb53bb0216d5de177d822a7757d14f5afe71acd2794985cebd850928aee65d7fe3ab22c0887612b412779abea6def55e3d80d1c2ba1d06e57ce6a986774a2c0b544991e34a64ca2e5d238b3723b104ac1a0222365cc545fa129a7573c607f7a8ffdf25ef33d795f8a2a388a1c03499b741a342bf45c0c00e939201082bf867f0edbd9d5cb6617385e78fb4fea3dabfb87e1513c05ba45795e5e49794bd9e1f95034c77f83f740c079a9487df2bf785a961ab0d6a699adc750b4f20289f3103f127ec5ba10845fd9a36a7f7d6cb0b1dbbd43bb0ba9d3a2cadee6a2b30b8906c840c57cc88af4e5c96c766ca0c4af8e3baa41eeadc4db4a01a6550ba0c8e541de535ebe422723c0253acf07314ac50ba4a3686932d1c2fa14d975792368d42c809ff35b1e1168a104349a7a6625aa951927a16da3df03c988222b115d932b9a6a89f0621dac38d761a14c87abec29854048f8209cb1c5aea6d8f76e3ab64013296f296a5ab95f5f05ed92eea0df7af0358e0c80a6001d4147707cb9fc2b07836e5cf91e769d79059bedbfdf3dba4653564e5561df53408ba240ba3c330b4963cd722149af4db1da9f82244846c0bdf0fac92ae0129f1262b40fcda37350840a472683bc4ea01a515b03ff6cf3bb1399e0eae87246e582bd0baf9cf441b9fac600cb0e39c78edb354632c32bbedc3eb5b3b1ff5e7aed136709e2731effaa7423626970c8b7a5e6ee04dab199a8ce05535c01a88de43d42a51237eadd7dcde4891c477ae917846630d878333fcb144106ee1b0d804ee95e9b3f69664ff6952d82be47aa9c9a6f2b5a2c7a8224539ed3768fde2eebde5a50da1e88c1a28463c52d3946c61a8f34dad58bacc04024e6885900fa3fcab230e89124c4c48c68ac780cfd10d6515c1b59c1f23f7e7d795ef838f0dfb16d1a5c5dffc6d186d78ce5aca5bd9d3ee10d7d5a5878ea6ce0e296fdf20126e81bebcd3e7ff8bfd1736c61bfba1f5e3b5b77073b9263024a63c0dc8719f8f54c3a43a92f63520c1c46fa0ee454e47dc9b7097f70c799be3ef4188fbcb6250aaefb5645dfe453242972de0f7c719f080bc1182c98cfcb13f08ebd448329c4f2f6fb967020b02e98ca3394f6a7cf2a853e8fac8e6f749a23699cc10fb1705a6eebf8d0f126ad835269d44b6e76b7c09bed94440bba9fee7a38c83ce7b03f8488157ae1abb114a59e5ccdb5f53327042c981d8d7fa713d743d1beab376b4738aa404e850d7dc3db3e8111e81574b8870936fd272610c506e41f9283611a8a26012329ec374eb9b4841b812237588d67941bdc0d88cca0d0a5e20e620a6434b3785a73c695bf13346ac4f35c437b26a01129eb686a0293a1e3ac33fbed2da5d93ae3be9d98304297c1a5516c0312208728b28540231480c0fd649029d16201017801f49ae9af2f9295c09a81a95b02547d9dce2eb5476b9d21b763c8757fd2ea6ae94ef2501694d2f9d0e8eb7bb887fa1f66701cd95e585db559dfbbb0b1cd4b1e2fa5a93e4e1b0ccb0b1b13bc9ab55932e2aa212c32b9d43c6f56e16a123fbe3b020e9510c69f7ddb4e7e5def3315c00de7e1a91a4fe7775720cb4771bca50e84fb695bd8683882a23f183a5484dff54d0646f152d9abfc8e357d6afdefa42cb5a1d345c36327289e84076808e30ebd9835403cf1a5fb3e6ab9614462b706ab99d5c1feb7c04c7fda467a0d7617d8482bc2d25d16cd43be159aa2b60a57bf83c19b2de46bb8e7ecac3e1a57a402f9da9a2c2c23a4f01afc44351b659d839a47ae8bd31b5c11d5121726a2c3412d4d3cc6b2a793f667ebeadf6cce87dcad1b4fd6d581e70770c84410cab8e600e7580b250ce5c5a83e3dd036e61318d1d3e09d09b65c6c47f83ff5504b59dcdd127d17fa5eb537d83b35d78467171e901b5b357bf1649d6af47cff9cd0430ec3246d2efc75490ccf17670a135f91139e36a67fba32af699f170f6a68d82b5b6d6bf1259b00368a00aa76d4c9c6a5a309740d4b98a75683780c2c8be0a2ff04a1a2b0ed8a7f813b537eba3f5caf5764343d1e22d04256008bd90a2469147cd976ce0e30f0680e44293eb13c8a17671150ba4769a6699704e8b917c6d3d081adf1f6e1dd51a77cf7932c777c42c428e60f0e8c085b718b49bbc114601deba2f517e8822be05e933d50d07e6205c90f6dab9fa3c140e3a84706a402da18e516b3acc3973ac7806f90da305aa486c781895fa2bb98c43de2c89764b6b5254a251df16b46ce0e18f56557f3803d6191b77c5654c2f0845e2c3cc2a5255bbefc68e0a27b990ce18d92a5cd127f31b23fa178cc1bf8ddfdbf5f0832b1d61b6515b0c00ccdc7b57f60c2bf44e95fc172307b66a678c31045554f241d02e63e5ad59968b5363bdf8a53741c6f6f9284f4ad203c8bf84b73d35f11a5671bc74b6c7ab73011fb9e7a99e714b8cb0d8c0f151ca0ddaea3cc3f0b2b24ce013da58ea050d94379a2fc7d586ec8620fb679b9a94acedb1726a7211e48e8f936f5f1eb9d9d49a9192830a13d265d4665210b77204b0a743868e3c0dc4f52ab9e0cd8b3f298bdf697cb9354e0c30f59ad559e13ac710da60d20d642a32aaf244f1d7ee876c0b5d866263465861a8ebf91abe025a9d04fc39667868783bbbad1e137543bcd849a455a54ad6f9a941f710451d48e0e9aa2297f3a1a5852fc84689818591fddfc02e2fd0465c785d6395491e776849f073ddfe8cf21b8f1ff42c11ec763170e9c16d90cbb9885eeb2f7a2f362040711a8f3cc851f2e415c9108a5199079aca703d4a022c2a1b6542fb01e994321689c43ed46e26c8638daabad590c6e585a83a7ec5d79aea923a128ae35542ed4275c7c7376fabc9d8870a2ee8e77f826d7b350ca8c2dc336cb124a74ba0d3fa91f573182a67e3bf3ff5b4da0b2034ba035b88e4ee6eedd2cc4a341fdb5ac99d9b57ab6f68e41dbbb227177639dab007e9ec667ae8d642ac7cc9602cbf257ab1c37c31990252568e8d9936edf57914e3235c0773b50197765ff0daf9de178d83f85116e3d7f95cb99c23af55ee29a278fb511230bb4d3eb246ed88cf1582819971b22dc2a0316309b031b6661929a21cf75d65b0b094b07348aa87346f7c785a2ef0859f78173060d0e5abde6c86ab4b7c46c1e50496dc0d1ec5bf69e9783a6ae19ac143d4e1f84cd95dcb5d1044345fad84d63c1359d6ea77c14a09c3045ed78b686e041828f8cc6ef05313e7cf92233041a78a914ff877b5148237ac125be89504d597232676668d7e33fce99269d0b361ac2a5f4e1cac1846e549f41805a68c1656669bd0f6e5b592aa44a162e91c69415fffac3bd592241514d464d97b210ce8819c40ae4a121996319974db4647d25805a6a7da01bd528c02370b07e518bb7afd60cc4b6458f36ec19387b0e873521669a1e82349af2f60410665ba5358409e9a8289c22499c064431bbe9754dd5a05adb537c4db46e6868662b1df8ca3e3a3ee569f69ae181f2a125b9d8978ae8bc75bc5e488f812d3e3739569a3bd829a4abf1b75a314359b8a014f24d862e2f34bb10164fbd6544a487e22e79857ebddd1fbcbf100ae92be3a9601f5285ab2a24d06c7d4e14a3025db73e4eb3f47fbf2b3c755b0912c5fdface5d65cfbb9519d0a5aa9af78328fd0de1c63c9763c70407801609288966727dbd11e88f59327fe20d1eaaf7f5eb9dffe56cb6044c002e5bbf04747b7dd64710ff10a3ed263dbc10f544d527a6ddaa9d11dccdbe0e7f76ea2b50d7a0f6d9d814ec21983e51b11aff43c9ae4c2cd41fb746573586f199a8d20dedd158ac07eeb1e7651e3980448f97d13aefac74579d76fcb133f22c45c0bb21f33f1299aae54b5099ee80d37c5a07ffd8865578a891cc47def38baf393f0b658db6e5f1dbdc5c9c34c9a2ee86b40e3a5fed97f11caa7d89906ade87f5ed834686b31c7710e8f1b1ae940b74878118b560871ebfa58fa2cc3ddb858f0b889b8d3f978cdef48fdda8cff4dcdd844dd3808440f9de75ca2f15962f7720e570f08e6ce91c71e03e4f70bf2d4e1d74dd119c27ddce9dc32271f7b4580f25c870bf7070cfe319cf5dcd17049e36aea44da259aabfb592fd79561dd117f87efa654af8b2fe2d80855818c87fee3f1a3774bda01cb0971c276589e16d653063a8e5b819e92e31f22af565ae863bd6d1781e5c6da738bd31805bfa50b7a46d03d3e32ffec947fa02198180e6e1f7a3f15ad73af736a2ce919076d4483f6507055567189b500df6be7a1f3e683be20f1e0c33e95ac31367bd2128fbe314b01c7f29cbcca17a4a101e5d912e9656c11a0f9fe1ddd33d3f72f8169b441970f66438274055ecfb4abb15567e7a34aa5f08d9b54c723c38a138d5b6adea4cbabfd07375f1f0f5ba21eb12d1c983de9fab84cb5ad46321710f97cbe20bd2e4464e5981e5da4007d0e7d94817f648a4aab998531b676133103a2163aff44bc2020f43950d17863bb989790a3660c1d3a0e58fb13b17a5c3fb7364a1cd4012fe6e1979fca2455114dd4b283cb62a4800f6a08596255470ddde5c102e6da89257aabc1f72336e99fb57d598f1afe10c5fb6ccb1af1c77c39c47d52d39714c640239ef3764ffd4c8f06d149e0e52f2984addb34e8c7ba67f883c0fbb361237f51893ecf8862873cd67c51bd9f00c96209682059d974d5f1cd0b6e30a03bfd2667fb08b40bf86ec7b289270fd6fa0a3b99ac7bfa52f9ccbafba866f0ff1e9ab7edcb2cbd86b062bdde78293ae60c8feb6576b016600a98f4ccdff7f8a108cdfa4bff5f5c5ab8ef0da35cc45a9c12aad685e374cb89f235143b5e9a520a637a4d59e2506e2d2eba31198911f8905b44a5442c10b542fe4fbcae11f22666cbf695fb3c15ae96dc3c280eab33297d2ea2e89a8817892cf99fb5ce2900d4030b4236fa90a5b3967c5a0d20b4668fad02a7a5e2658dbcaaf436b4edeb1462e34500f303e008c4a2a69bba7e4e7449f0bc8f578e5837c2333c711a839bb4199fee4350127185acfc26b24f5ce3c697652302b38c8ce576139e7a181a086626b643f058af26b9359651a0817fe494048b8278b1d1fe6694e0d899f7d934a1f2daefe592a89d1722494696a925f0377bb8c83143b6fccdbe4aeb8ee82bd8d31042c4b66ca85a22043b517c2c5c44df5f14092502554b47df4b6ceac46a488ce5b5649bb29aecc678dc65dc1c1c3847f41d429b3d7bd664a9037639e3d9c3e1a729641d912df0b777681bb85ab6862bdef08c45dcc9f9e219e9ca5b4d73a5b6996cca51a032f73fb72ad166302baea3f24d3a0670e304c33cc06860bf577cedd9c3fef24fb9ad7c3818b4dfddf876196d6708e391b964a4aec0eedbf486d603a87b1d2240bc38102bb9887b7c12d16e3b703c33b0bd8af6c615346536eb47f97fd7f3cdf106463de5a569f7b9b41a4ca298a96ed8ae50f3d038f51411aa1c6aff1c98455f68190c245e9148d3fa5f73587d288b816d2559b5511b11724986c0bbc17403d7993a647107abc5fb14725720d4e31b7bd8aaf17ff417d784470ebfdca6e59109423fd05f060d1b407958d41b5c3ee743e2a86ba0677f344a19dc2153bc5f4c37fe5514c0e1bfe76813df8e17921812b29d538278fcfb11657525243196d4d887f86d2cf74495cdba0e142a493762b8ac2c9afdf5374fe6c2d36b8cde956df1afc7cbac47bfb89b85d10bb184d6854cf990baf3be57749ef7a840081a87853cd6f7b20f183658a0c710c1788ab1b00a28396fa404fd487dab1c7cd3b239077988a2710d865a5f832a25bbf6ff4e6cbbedc775584f979bd0db39f10e247e662e40c851992a7576911073623d82c4e5af2589f6a92486341a00e1204dececf517bdc4ac21bbfcc48cfa2f6881b95947a7fe6442264d6c8c4726e0d4f4cd409088ec426d5b8f2cc5a866664a557cfe3d8bad4a0f20086b89fd13d0bc3cf9fedbc57ec8aba88fc6526700b6680d072b94b261bce7436f8c55acf4dda01fa91934095fe9e60a2cfac867102b5d0fa053a276b190febbd526f3c9e6ba2c4280c47b10106d324443109e2095c6887a66f1ee3695d03993b41feabf1ce68127f5c8335e0a46f24c43dde3397a2c3b2a42aa65bc6099851322734cd5b6fcd1dc1bd5bf2e59eaad7e28ee4bfee0435e544f93dfecf72b6004fd3d3190751a1f32020be877c904a3b4e3836b5281c42f8971a9d9a2eac2f473f17b3bb729bd20d0cb02c7c5435ed0a39d12f3c64f83a285c08da5250ca0f36028e3251b9a860dbe172288de91915a9f3fe06cdf4fe6f0860bd39c519c600ec6143dd4bef297b713fd40aceee30075a9128d6e02bc32c85678a39a58aff93f6ac7827ba8f87b0ee2e128a6159a98c820124bd75b758bed58b9811af372b766b92182e743cc9af9a7b82e33180997ddaa0d6dc31de0e994dbd91f2343aa1a77478bee4393e200f6372b2a679951b8f7de867e8c22177cf31b9fe62ea2dcee362c621b85104e654b967babcd68e9f6ade06d0a8c1109924c24040dbb49e2a9343e56242520b5c6ee754d98493126a93811dfdfc3cabba07f09e3b12cc93b20fdd25f451852f324c1a4351f2dc04cdd3e0349b2dcc74a3072d0feac99d2c1047c69bdd57ca828e71820458fa815d7396d8733376c934123d629e604ec369304148ae8b912f67f84589ffcf84ed88773c0b491d97f9823e943935e48d32e18f88bd37decf9a121838292bd90ba5ccda0dbf2447df546bd22ef7620bbfbe5bf6d9cb8cd4d5f27383f4bfeee0a13a57c6d3f23dd156477db563a038d13fc95e7eb5880a4a27c2471bb36d68e38d4ad6a64ef94ac5fed38b4224773fcd7b30e42f5ae304ddea28c0fbf0969a68bd9718f80864c1b20c44c83beb936890a96edf95b672ee8fd86c50ee086d5816393c49deaccdfdbc7d50a6e10ed8a7dc0376c5fdda66e62e93f227b402c9e1971dd3380696bce673c58852ad8652b13b73216ced205d0741834e19d4dfd8078c53e0b1da29f0c49d29c9740f2a1e781afa94b64af99ae3e34b0005963812d8e1ed69250cd33ccf610037aaa5d157f735a6b61d072c37536548f22f6ba40f401e0c367b32161ec60d067febd60208b04cca07ce0fd80d0b09f61391c6352a89029dc68256d567e26b23174e0e115c2331c5f8285686b4ea5f1d7cb323433273889d904a250d4d64483ecd53601d114aa7ce9ad0c445307d695f01a62ee9eaa6b21ae3b166132c34c23e06187d5d578094dc08ff28bf6c9d1aa5a0cdd603b8dcc3e0d5eac16fe681f41f8ab6571073cc81ae9436a71e8fd56d05f689c9102d8dd6a9f35719a0bb9ecc0103f77ded53d9e0e3175c8f1eb257b664307b897e64613ec2e2bf5046f3d53df45d79fcdc0806030582fcd25722d46b46940bf136cc6798ee6dc2ca0a43294df95cea309d75b38306a8f03f58dcb29679092d9a282ab744e0d212a6daf679ce3d14494d1db1c7ff6c82a39d45a5d86c03e63951cf5e460ba40bb1b36c72cd5516df62ab4c6374e1753bfead3c6243a990c291fb347c4642520722939509513d56ab9e9f0efdd8dbbaee23337b67c29f2bc1a85a613f4d3ecde91f0f12c0c6258065e58857e116f50e8ee4c4b262c6809c42ff3459b5d6412ffb967b7c210d630e8617c42933918b2b3a07814c9c5e83a5cdc3550ef35ff1676c00fd9be89fdd150a2b3cc80aaab1aca7fae203c14c2c03452f297039629e458c9eb3416070c8f0d2695f83ba076afb8ce2b1a7373dc4a8dc1b4296a9dc996d0529cafbbac99c1b16bef9ef96c12cc4cf08e9a47a0e7d193cc8e08185a6bb1476d3f6b6c96226445020141d4d1d76d4a740bf8d2b5d413ac297cd9fe823304f778f47da6230f404f8860f7827325bae235b41c696a31773807676a481f928e82a3bf5783a2e4cc0a93353c42355ee546d101f30c344a4668a191a0f3f1b6fc22ff8f878c92ba23411ef996b614979eccc5a0d19cd84d92592ec74b2e2b03cd6c32bec0502cc1c746d71f22a9bb8be85e002f17e8b6d83fbe34b1035e1d44620508f77e6d84da861703da1431bd1d5bc575cbea6e6aafc761277c1ea1c3f548242a6f0f071cdbc4ce4476fe446ddee54dc17dab5c6c6bfc2e2bcd2688f129087ffe09360c4ccb582b569d97a9849717c181f0f40bef8e610f56cae9280fbfee8832c80e8ca59579b5ceefec570f7524fa702b31e178cada41b4146fcb38cb1118cc6cd12a72e5f3f45a11449fe2e6e4431698f5cc43c16df9eb9782aa01917d5cd8c2bc0213bd016da03ef737a4f3e71d2937b56289d54d517af731e60d2cb61188faa598f40b770b077906393d9b8fe504a3a6b79c063e8298de4c2d9984a10ec2ee48a15868085a12be6ee13306054057b61281d8837ce1a44ced7f47e6d0b385ac9683ee03666ec3c02cf284cbd5db8f802bc2d1aec018e07000883caff330bc16ba0721badbc91be95558164f34e9c4499773ff2a134be80594f43d3d160e9af4da8beaaba14672157da8aae15df3a10614ca4d5bee9ceebe8bacc3c716e14504a7f922d971d68515d1b1c6900d94b6c5d6c1373b3d552ca96cbc6312bc5fdc1c01f4ae1ee143b61b6901ae114f33f93ee49c94765d6c9530fc44b1bbd5fe812ab6a390c8654fc6e9e3e8503c26856d3963cdae0d2b0e95c898e41c1e8b389dbd33b423e6a16640bb0b41680180d5286c01cf5d68074ae42947659e1c2031d781f3acfc12da4a0c47a247695b791e00398797b04d1cd01c8d38e96da88c63fe78b79f136010e124f8ad10cf6dee340b901c93b6819bae5c7a9716a2ad99488305d29a7718dc9de9fae8f9912f9cd6b2aaa5a64c25867b26d500ec673d5f9843b582d1c5123d2414b41abf7d8612e82ad99035c275499a0c5954000627d619a74e2208d6f0ecc000de8915f83971522807a01d48a750ff11507420ea55e8c83c61b7dea7cbff7552ddcd811bd507aef4a1775ac580d9118a9f1d6b8eaf02fe3c9cc386594639449a82e3918e76e9c03d0dc6c88b235bca98767ebdd2315c59958d3e0583b528506d5f71df8f580fa8cc66ee9de6c3041d2323cc54fccfc4e9c00eca274a0c618bac6b6d3a719313ea8f563ec9dbc30776ab14138f651dcb28d8ad7e23ad953b3f7b90079bed2698c5370ebebe8dbbfb8db409420619898baebe495798fecfbb0c224a12cbe33bd920accfb97ca65edae36db42ff07c03e1fae5cea8aafb656bbc57ea3805e5040601e2604083146e0b26a7915cacf657617e298af07babef0cdc82cea8dd7f8bc6eda6bb8010308bd0b9a28089bcf7e7d1b4c4791f5c15128e9c5967410bcb021da6aa0e8a87a51ca6da4343e261c23fa98ac2e2a192683445640c96cf865f492151a04febc5b49848954be0b0750f66b8817483283987d293bf2a6f1c187dc32344216bc55f85be15e9520ec858b614528b8456a6f08156f6ba8fc2436991457f2ec611037e849cc94266727231868e5edd7dbdf28ba1942bc817e78776fe1b4f95a44d6c4936d3424efa81e2de91247cb8c84cf07ab8210907248e0ea8eada735583b82097a74755f023e39586bea30ea8f3a805bcd7d37384d6d2d47e033aeaa0b76301a463aa98923737be744ae927597726aeb554f9f5a2f7c27ac91ccee25d8765f01703851302fdcbb19289d7b2384d891854c07755775da5a0c1970c379a77fbb01986b71ec8a9f5a8a5d99f758b8224892907f6e49eb92ade2417864218d56d17db2632b6824664a623f69f3cd05ca2e83e7fd8e89703b2bcc821b4f4f8229858e19c0b8fbf3e711634a4c12c64cba09aa0d922a74c6e3783921a82a85942e8ac39b460dc9d776d447aa2ebe7553b7e959db865862eb5b7c44a5348a0f4e57e802376f7c0ec2289e553af12ed1f4d674f0cd40db95b755550c7102cfbc9acca5833e7e266b2ac0615d8daf8cd63efe2f3f8451ba95a3a4dc486171e73621275241926e2010e2aba0553077043c74336c9cc120e5e9a535114a063d745fc4ff122caccabe9f16e337e381c43922709c88a0e0d3dd09e7661c06f9116dfc222bad6d2f2802d3a8d719c0eaed0a56be36411e96455a34e4678a3b908f8b20f4cd215ac365fc95299447312dd390a26c94e99ab7d1d1c516517d722b15feff2334f800fe53940ccc4bf9b93d21c8a395ae6043b151464030de717034cbaeb87b3e0e1d4d42a50a2d72abe94c6368ade0ddc28acc8da8180c02b889751afb0fe05f62a51d4b0372d0aec6b0866e3d6de86bff22f33becb8d1f2dbb358922c33fbbe9de12969a5cc2bddd754ea85dcd5e5a4293d65fb4951d5d850ad36e699cc0bd8ba62404542864200cb45d4a6d6bfbe6691996e08630915a1721439d483534b79a5247058fef52fe6b4b20f21963a7bd20996f6a26ffb2438a34efa26f6c268a4131e17e562bee2698e928ad6b51b21dab4bc1a88c343101745c2c9ce7487f4c0b743debfa38568644935f6fad08c9849858fdd3c73518904ddae43ffbd4718ccb9bc6ae8eb6722ead2bba805fc58271c08df2db7558b2022dec8b8c36755ecf5cab9a3bdc8ccde7b49336e0baca7875057961ba1f8380256fcb5d4cca4d7401bdce582a8224ae588301d1017043f3b20f18d49d192cd4b170eda09f46c3eed38833b52a2094ea0b8ae1dcef9cc6644735b057faaf309e4aa7b6d5363b41fee09733a2e3b1a31140209de3513928a8a321fc39c022d6517a6a17b6462919f0f9a6fe30e75edc6d0839d4107e12eadeea5c893aaa76bfc5ca154c52d79d2926e153aff776d55099e43cd397ff999f455c5f7d471c45ebb86cb23d270fee8f663bb952655054774f403032d91a3ca798cbf1dab757a4d646ef353ebeef3332e6ca190e4a19c06ed7089788fba55f88ec850aecabf58d1ee61f717feec49e740f6e1670ba5719de6a7e2f505e987c1ed592cb8bb5401b582dcbb4b85de5edcb2ae9a23884694b6b27e87d3f78e8d1428f7e07f77870a3db64c4abeff496a9861448b7fd8ab7df8c6752e5eabc2b26b9a593a49f63074660bb18ff1813a8fe1d4d4453d9f2c178a6e8dad6bff1c6deeb51ecd4fb1891eedf64a00054037350052f5ba6100d748004ff62187e952711d1ca66210206cf0871fff52986b2d1ff95d9113340b6988bf38b7af2bf51ec9878f0601709d973f30dd183c450dbc415f105d79ccd2d65b92d882d5ff5db020d826a01e935b526b52069f5b9f7b2a7d0fd228defff0a0bfdaa9e106a985de03972b45cbd78588a5a91f703c2769358a465c30c96fa062a2d53f83f28388d90dc1c7d18f0f0e10cf9c724fafcb52e7537325adf061bf323614b2529c65bbcfee896566d55e003672d908d053d42647e1d40c5444a9c70b298bcc8c8619bc43b95acfc3637523e09892f2e6ed0b82f024640d1ea325f3083e28d7224054bfe56eaa0e4e7f6f489015a165d4c1eda80aaf69735f0d9bc7d377e4e5bca2b6f6fbb6c927adb0b2c34a4a29eb1a37bf1baaaa34c0cd480bc2c6a8959af05e218bfc71e6cbf1f16dda9701fd87d6d349f3115cc1197cb09892eecce4a8d9fd105418db67cd34a0ed507459a49d361f9609d611dcc22409efa919ed03dd5dfa57e8af5711900dc615c479ab778666efa863e765b07fd182eadbc1f0e0b8aa38122bce3efbe2174a87bd5c988aac06e109876dac028719f0b1c19497b60d1c18ce3c7e1134a305d0b47bd5b0cffde34978533ff9e71502cc03dec0d0c66bf69c45882a5f5fe27eaee740137b3ac53583f11baaa9a7c9789564c4b20c8a5bb4b2ef7bedab05792d59ae881bd6ef47b97c9083948b73b501debd91cd2a10b95ad064d1838430eb252df2d3c50710de83295ea84f421367b7b5912dff3a667647090ef3de0b4704cea01f6df69da0654e49b2f648a3048bf189304d1f495e47c51c6eed44a53de3e39631fa292077fdea10214e9bddb34227f9e4fbd3aff47d60ede69f862968317886148a2e9fd2356a3864b2c1ad7297da0434c8840a7b16086494928e2235a1c0ece7e24b18ebfd65de018a058b899e4989e8835015f3836c77957a8fc39dc2fbc128651e9e52f61f8e160e1c9ba027a2b62fb79d7446d6c586f946014b83e1b8f2089d08054d0f1e26b71d98134db064af136ddc59173cec1b21332247b1d619f44a5760d90eb1fb4d820579c9da16e266e925f0672237747d5314c4404cf4b4da3d654759899761dff0f1e409285db9f3bf523ee205fc5659647c511ca173e2217644717c240963c99cc309f89ef342cbfb678b2c3f47c348ca8247004d49b0087a9cf3e87f103ab5d5202dc6200ad08b3639e0d69bd9c6b926c47cc990aabf9e6f7bca4a6610d7d9b58ac473003bb055b3e8dfb34de5d5d43eede717dd4a897966ebce429b381f51f483e82d3f39b9132fabb26bf91221c1247aab28c161268a39d29e1541d15bcd1a4fcd52e41fb3120e14e8cd0c0a34a3c1f1bed4a43515729649533cb6943c3abe9fe511e1c3d46608483e63ec468e7a87018d626228ec6bcc1cc9d6b5f5396784706cad9bc36080edbfb7cd030cd9b1107882cbb98a67722daf0611a0868989af1d985c7d1e287d19f1ec330c82907815929c19a5f7a94a37bbb6ed8362b5eac8f2f49aa9a7d54fc0e1a76d49a08013f827c1ce301cc3a9d8162b28e6c488f21ae9f54584250a64b2fd4d3d2efb995d8036fd9e463d043e1a93104fbef871bf8d9f52f0f017500230e4f7fab999a73476c8c95d9d04055e5d4630fe8df36410105894e669d7d46006d232cd2151e416cb58e293d47cf588b04ffb99017f6ded0f898e78aae62f9c67b7d8454521747d6f9466e52ac17c5324bea669ea5c61ac051dc43c29f7125f20c83d0fc73c33d31f5be5933036c1c065dfa5ce91e61548403c1a1e4460768fa483e62733467bf3f34af3b5f8a5c86ca1c946e479f7990569a169af94d063b0a181de95678ab3aca76afd17d8ec2f4e357c3ed0bac558460e178c53f52863ca7a4c7fc2c0dd253e5d9c0398c081738597597c212019ba1ca11517908bb2eb6fc311424bf5cc0f2e44eaae2f0e923959601d9aac70191879749038c109d377381ef68b0bf59da866c0f0e638fbb140427682c91e47ac071b66ff9a81a53bc9ae0a50ae1f40d05f9f8db09c4d435dc81eeacd850333ec03cdb58accb68240d7db44c89458325c643ab3aca122a8946e900cddf431f0b760f85456dd544fe803bbf87e803a055a962404d7d75f1e97a92fbb1689221c7af1202039b5f3996575b981824044bb7839b6dfe2a31321e3ffd8c47d007f97b5fbbd6b55d153e7cb20582055cd9cf2412d8b96b9dd6abf97bb6221a11080203c6b3707f2d7bc49327e687d81d4603388cddbcf209a1ec164c5d4a499ec9d52927883afcec90b42c4754d14d34c701b3c125cc30ec4d3a4c384b157bb193e22f3f8321ded97c8467f52a09f00ed0222c5a70c1803f1a14a3ac8a6ddc527ea1198a4533f760434a707ba8834d38e185669fdc222a0fd60af047c2d1ae1a2ee09f35f5f6855936e4080ff63155f9092693a5ba825108e8390fbc624b6b5eeab630ddc0fcad4e7257a86c20d43a833a8ca7f817fb937ac9f8b26466110c1dce43d5b68d717b7b96a830874b0e3f498c29b3f89fec169b565d201cbab2e3a3ceb7aad05c8f9d5b71708b862a00e7d2e088daad22044de676ab8cd2f843e7114efa78659167193da6d72c1c97038f68c561e91329a05bb523a950d13d2d63f61155c67f90deec701cd4dce1f909cb656aa4fb39fce50453554e20ea701bec6f1318064a644c1d5e06d022f2b77d21057196aac653753a3803f3204b16c51263a8fc755e734d24a16cb870543548d3825e78054c11368ea171288da6a972a5441b07642543f21b8cdb02c3fb7aec9a95976cc31549384a8d5fd65ef5a539f8842ad2e41263a57011b61e24878a078aa4630517b28d777780dfa5cbe1df4262a59479837ae046bdbc61bae88ee323dc6aee191c77ef27ae1ff57f6a6a00fe04b11afdf8ddec7b45b4d5678d3675a4dfc8a63a66d12a39bb331ca3c86aa1ff4b503347aa830be3ef888ccbd9db555939e1eb13787633d3f75acdc0aea06aebf2fff745b8bc44f4296087f715b3557e4f22ff38c7e59e69ab70269db58d0333355d1ced30dffccab899e2e52246d35257be7a4cebd120493331c0d5f3ab4bf347a29c1957caf07013ffea9f5bfc862adaf6a8be503866da8218d7c5a4e4aacb970870065a0311da48f8c2fc651c182591f70d3c4bee1efec72d745407ba05d2d0caeeb67e63430602eb446492b70237031d731e37aa6b00df3e3034854ceda64250f2c9a9bc58736b3cbd561f029bbf54965703f9bcb5ba8d65bf57c71647f9dfe258994a2d8f9c794c241493291d80a96078d67d8cd4b0d23bfbd4dd29a63852841c273d818696d9832c219433a6074c44c93fab80cc603b85f6d8f5a4535dac2d23e33ccb8ea911ef98747d0e50b4bf1821a83c8e1eadf65d86f198e0da4c9496c583a24ea41729b5b192bf645e607fc4b1aa21f4cddaefa7557d660d2bbeede566579c1a0c50960926e376547254085971ad7c20113d42bfd14034faf167ffd11fb3c063c9fe7a3596d11afd1b03827596da3cee7419b770050cc5f30a9bc00ab24c71f6cd627105c991fe674e47761b5fb86d90f78d1708139ab7cc1378b1770b2e7704aeca93b9373d9c08baa4a74ca9b0cd45d31c4bb1a2c322ca87c523ec5c3c889699ce4b3d5e0d5469fc2b52fb51187a0b1abb3dd29a4d2d88ffe0991e3de4bb2b8278a0e899e9a8c27e8b9568b07d661dbf716911914db2d68ccf56818f895b541ce0ce3aec1a8abd5974659936500e85cc2f49b7afbd7f56a3fa88378dbc40bc7cd15cd1886714f79e8d2562ac3203b73dd978e7927cd063fac9103145c5318653ad109ecedce2ebf6be5b6c06c55335665a0ba253ece00f5ece6e02eee2f2201c3f7212a4b183e48e6ee5bd9206dac55010c5b6ab0cb1765f87fe9833e1d44a7c4a0241f5d7d4af28414ffb31c992be335ba8d66bd002abc0f981af0340503c2007b0c3776225b9c3fb64702e29988a717d16c82bb0255f0a7401b7b3ca2dfd663db5f133e693f94f664ab3279bae08daecb1812b49dc0ce3a1fcf383f36deb5c90fefad255437fdd7cda18113ab27786937d0b8d0dce44c140ddf5475fd60e57681674b1bd82afce4ffa964fad9d0655deda7d52319e88bdbc093641096446b21b4225a9af14e442b26395105e944d1bae8318f1d260f886c00d6105da4e38271609a2f93a084aceb54ac40dd94cd683e3e8885d71e81bce5f2a63bbb6b7dea5a9bc394b226ad596dd753efa0ad32cce3273843d4415253dc548f5bbb5763501f4a56af6c57bd836ea32c9ed9e103927189c6148519c17c813e8bba444f7538f0441a0d14958b8e1c3804ded484a01cd0da6da7ba2f310a204f5fab7937b00773f1dfeaabce99d1e36c4feb0953c79249c4fcf4ea7c1ef4389fd81c73e571cbb7bf786e50b8e1370e46df5d8740ecfe2605e1ef5116fea1de82c716c07297d7f45a84a55c28ccb8a4d228bb37916200304cc739dfe82b0c2238e746c9feb13c53bf8eaa860413cb6cc383c9a8975c35c5383f141b5062b1361f1cee9e816653f54644af5cc9213021baf9f831fcbb031573855c3f388ff4ebd337b91d40acfc1e08853f9aa25e96990e33b58d285d6081a2a02d23566d50b5403672212a5177b9189d9ba9735fb1ca14f89417483c60bfc1f741d5eb7b9f3005529028489875eb4d0bfcc0e847f132dd7107f9cbc6862c105f95d04ac0e4197bf6c1afaa7f7471a0bf2438a74a39400b9e99a4ce381462e788bfc32dbcb47bfa78b59e4eee7b700549cfde23f22b5c50b857bde12f1e006aae476b0e27e706c13412d2f04afad9f0f46c9cb9e908aa795965f7cb4ac32d531ce26b09df8ea20cf05639363dc82d9414e63239ce59c3fb0256b354068d2db4b14b9befd74772262bfeacdfa9f0af819d6918fb748ff29428ed662bd46c1bb0292293a393219a3711e813cd1aeda09c72205f29f820358cc7692d55d2edd47cd0b2c450d2aa931bdef369324c5f62e7ac90f47dfbdc6c6491ccf3e7bca64e6a7672853aa1cb61de50b0b43a4e3835a6a967d20022d267c26d4960ab49c489ba264e56ecc84668d6f8942bd1585dcce57817733624978d924fbdb74a834ffaaa6fa1afb9bb38ebc572e16f9e3494ea4c7de4a26f472a7ead4df810514823b95f80ade19fc71b6f91c431223a360c1cd1dee9c091264a7aff1cd453a1587db3dc92386dfa7b410a5f4140e516bb5fb1f2a95b347a1da1cba99ed5a980bfe749c4537ed3583fe93a54479b3fa868013805d188371f90a8c6bc174c918a865b3ab9723e3779c474c12ab9e760ea91181a95fcbb39cafb4b077d731597f6d7082706b2857374b5f1378914a4d37d81807984ed1aa5b61d12dfef26183a576fc138a7a076f1f7759d58a0faec91d1afc68edbc5f4eff28cc9f5a57e42a11ebbea4701004ee2db9148a0b23a15d8141e57e805f9688e66016381fe9100c2d888238381751e7bc58f508cc02af1903705e19c9e3c907ea22dfdaa12677f13a0eb35e6ce6676fcbd446e48d071444741405974a2b876b762797d13175a20acc5db86607ad67f7f00093b134c53a2ae800c3c520958433606d41623d1145868fa90fdd823918c8153f9c0a7778e1e9c0b4ad3bc0d3971d1c354badb04b35f73df99dea6dc8ec749c8b6a14830bf41faa9a14e77496ab1ac40495cf690a029181611a5125a8c7545d389c88f40b593a58eff65bb9281409fa7af3730f60ac385c8562bcdebc430bd611694d15db876796e3b0fca77462782f1627a39a65de377c7b1a868be914a976db0acf1f7d610e5da1dd1db248d08f1a197baf3e1021d7c9865de962dfc836d20ffd33e0e05935e4ae141d78663c05c615f031a7779e365794034b74a97dda26548eeb909f636dcb24ade9f95573efd30066ce074a30204b24fe84f1690c790b3c4c0f9ecff5ba68a8ceb3eca0c1a6b00641b38d70f338ad4139165c7313e21001f1065fea3db26d8192b5ac9741ca2191e40ea3a083f50a5cd3fb1581d15c0c5802996809c9ba50b7e745e5666f87d078fe2165358531d9e148e99f811bb71ee15a90804290e5693dd17626e3e93a3d0561a2b2cf6c4d5e00503dd7e4882b596bffc229afcf3a0cbe22b4ed9662fc0c5fdd77c1f8e58046ff1cffd0c085c3c93f61af6442a248145cae7a9c60ca1b6598a1b691b2ae1fbbfe11627abd10869e67fbb754767c1d2f780eac4d2f52bbcaccb30640856d2217a0b6ef110db1e8b9b5a33cf5791cef58231de9a89d54af6ade5cd743fdf49a9cd564e518be5eb33e46b31d1151b8699522af06852f36cafffed60e4ddf02f07af9cc27792a8d6c1216944880391b6388e2035fcd40bc6321ffe58e525575fc91a7ad3a25256941ddf7cb959adffb2d8fc67b7e77187e0802ae215a8eca5c50522878dab3e6cc9673ba7c2c38cf27bf97463b4864c893c1ff0330294dc15f809c93b163e7cdc2a2ce15c6bf060a924ee4ea95bbaa41e1cf43e56c75d0b0920c63783de1b26224bb7ff0ace21f172da619824365cb1aa5f21862b51c12cbb1b47c18c371e7fa9e3c2d35e24b5d6432cf034c96cc32f8ecc33de69f51b87848594442c4fde2c554a1704e11e48bcbdd3a7e42e199b67b5ba410e0360bd1f6aeea706b6ddc2dcc4b0ecf2eb36ee9a2d7ccc3f4c966c6929ad70924b34b7488a719b2fb234c00fdb348689d1eea2812308e0bbac3c38e4af8b98280dc3de787bf19c63bd87f4695f39a44f6dc1d929c1f44c7092cdb0d0841c484b296d2fac041e32101d910b082db150794d3a7555787218e1a205a9d82a55282389d0210a6e87f88c41fa7b835bb21d056cc96ae8ef3a9ee5aa3b8dc85be60ffd95b291b46a15faeb084d917fa787e644028b19dbc98b1fe65132c53ff99414c864b8c2679949815cfdce68b09830fb3b5b4b0958f473f963b5da352019d586f739b77f37810584ab5d5d402f19169c302d158b3d27c64898d10b85e1c5e4a82b19e65c94fc134323c3e5b4b0b5666ecb978d430aba0ac54be539c696d1889b1c678a3c5a396589a19ddcb52508aa7d35c1091a33865b78b9506bb246b550dddba2caf5f0db9d3d59c3d368257e830b282bb29b6cc92b066a4f05454a245ceab6510f5b0837c38594d1632a484fd20f547716db844d6f27d0c644a73d82f07e815b0b12eadbdc74f6a1ab0de235523317c410f75803fdc12e1269212901c277b2f319072262678704111e6ef33e8ad9aa93be269bf0a8be84ae0593580558d27418bfb0e85eb021793a13892332c06842562f42a76a2b483b9d40a150bd60309aed1c768217777fb1c74968d359fe9af26d6ddea00f49664ce235467e37ec5ce677834400ffa4927c2d396cabb4e77eb29b15e476bae7dd9be62279fdefc123a1c5c3fbb3462e062d31463fcd7ed74f8beba2bd35aade94b33a8539cc32c9995388a2d3bdc611b0d823dbbe7de90a3cf40617c72bf18ae83ed4935e3c9c95b97fbe28eb5cfe8d5eb6ff7a247f46234b36222ade7066db05e8c64b762b0bc199e6c023aa0d8decd1823ac994d7cdc8581a020abdb8fc2e3428c59157930fad97a21c9210b9c54d164a7b1da6baa6961f31b474ac2b7ce50fc657a79bb62a2e14918616edd4a28e0a13ab07e4a58ba282da140d4067e53d31900d0273330bf24d95b5ee810843ed6b26842904a02b402d2220a3eac673fdb920745a3720bc779063c4899358524d2012c1847efc4c348113ce3bf0e1a2af9ee4840fb3924de6c9587d08fb7614cb5e6408af50515aa36892ab7b171fe75681f3251a82539145df5db4b56c8c224283a0f05a8825aa2428f7a0a7aeb87c3ec575d7c16efb423aba462922ceb3b32a7fd613544508188ba9c0966c923da64393d43edd0de6964dd819dc0ebbeff2e93c9172338874c2bff992bbd92eef64edc2b0bac5b23d42bd6436567f55ef4ff5b6bb46623a487ef494998ef31bc697347ddd3b6737aba7a61d99afa7546a98c734ba2477aced2c1639c9ae350d685e7785ffcf0a72104207b16fdc3429dfc78e87cc89591b569463ee6a2e03d36404d998cf7d7a992cfb3277b53e87fa8ea9f286d24745b1cda69fc575a3839446dae3fe0af0d8b25b6bc111bdcb3757748e5485d232c71cea56e9517dd33b59ee976df27008819841c68101f79f7cbfefcf461f79dbfa9af40f5a921ca1783a984949f694c7efcf2bfb92b603fc419270086da327b1c2c44f65c7e4429eaf1dec11fd95ddbfded6c6634e8bb2ad11e23e425fca78ac09606f018a047f7a4de4f836b95169691212a7310545e0718aeec48d5b2f43efea3b56f976857e098e04ae7a179e9ec182cfd35501918a68805a7036f39caacb1f8b890ac532d2f3ca7168683d0d392cf777cd244209642d2793d08ae2af6d1a544e7729bf90b5d3c26dca0c58eb833b2604f72b0cf74de31663ce25a7a41e28b86b2d10716022ae3795b586649bae8212cdfd5562037f97552c59a5cf76fcc156b68d37ab2216688e3b1413314d2aa75263ba08a320597e6cb5025a2fc25f7a724822f49b0f501dd04b54b858516a51e978c8958b5515c86d8073f0ffab4ad4a6d2a2d6fa645815ec747b7e71dae2ea0366a27788506d85b1fcd43cacc489659e5e56fd225a0439ea27a9eebf208625367963a2e2d46042ad9be6a65b2c51a499de7496c782b77af3182c9b63fbc22a69404147cd20286541fcab9b1ca5bf8139c2ffa954d9688ed2141c1b29d7e776ffd04e2ca4eddb3822467584999d21cbb1fa7efe3956cb7cba12d272dc15c63dea45a2ecb921547a6c099241467b9d6c4013b89ff00771bf2d39cdc11d205d443ab8c15713aa66705322ecc992c5d231b6b6fa7cef9a1d5dabcdedb2b142130b58429b46f0b08f0165eeae437f902239ce9ab2080a3905abed50e367ae665a5fd5f66f81b4ef22f90045c5603e6ea4dd3dba52a88888a5a11515c05502e0f9e3b8b90956bc29356f8693b936958b62bfba222e66e690c7436e879228e6bc38186c486c19b0947a0fcc0b6c2b1cc4679d78c29551509f945739852f2e319fdbaeb062fef261f27092068a079383414c0620210942e6982157005a404bb005c93cc45273f8d8e96fa1e2ab47aba190baa292cc5612aaacdb50490714e2177e53a5d141efb432a5a8efc19684e89b7e282f61d3d7ee0a21bc20264ec564263e9033c53d738d95d57b88c29587ec113f344ef00c62ac25773869786cf2a250b0d05ab76fef57cf36fa213876ddec4da5630c6ae8add2fc7013212087eaa4af758d02822480018d6850b556c6aad667f93ec746a097b7f84aeb8d6c3509bd73151d0b93ed3dadac117c652517587cb4281ca8fc943ac6deadcde7ef321a3a5ea341d4a17a36c79bebcf00cfd87f9f4866f1694ef6f07f20ad7bd375f1d428b37a3290813959923755e30b4b884d42cbe50ec83f192136fc4f43706e99f68e46735b129afef4430badf5b4fadc4e73ee3944d0e3ead82ac6036b30faf2b54118d15f88c31865598bdf68885a7cc91147bb5f008e98e21dfcdb58c2682797527bb3ffac7ed8ca9b92e3402922303c3dc25b76ae2dcb14185867334bba7fbbdb5efaa8356c4708cb047d71de0b4e4ffa938e9a760d1312baaebdd8825e32dab938c7d5b971ac422a448cec05ceb3fcae013e81bb61cdec786fe467ed85ee533c4e099dd95405e85cff9581a541d54dd8484f7f489359b66e136a4310deb93ef11c81183711fad69b20137a3ca07caaee105c8d243db8c308576ffed7e5ca35bcd73e0424d9758d20a0a072a484b4b156374ff9fa40b508979fe6889a2d9dc60a30d71d9615810eb8f9f16bf94dceab806969e1785f927b05d71b6ada55b69658f96e2ad54e9d2bc7a1a36aff7a73a45bc842ebde7c3fb40293609d3a7ed036618773ef6397220cb97fb7297aa73324d2dbb8b396880c1810dfb345a8fc87d24b67504e63a3716639ca6984db2c6a3e2308c085e69d459ef5016846077df18e4d8e38c9cf3fc78e25a47d3d41c0413baf8a5bf1a6164f75366241705ba26541d17f85ff40f99ee4ddf4f2b3fab71d7125274caeb88230da7de01eb28e4fc33b4e8ac14a959b09f6be0aa4724566d614b63f3883fc0f4a04483b43bbb7186c7e399a4d416323c6c641c25183a100ce7b10bdc03276496f37e5eb775344d42560c7ad0f727778982be120dbb3d259589a2e3b58f3dae854d2100bddd86cb03a6a17f2be87dd906fd5c3c246f5321e3476bd9a905bf87efa962983fa169669a988a50ab903c28f94f62b3dfe63bac9e7c80c4b402aff2ace190dbea0f492e656040c072ab90b4c46f796f573bde83f6fcb092ef4e87ac091a518363d21bd23446a5801910a51ac7673d8717bcecda4214f20be186f7e5c0b44bc4b43e552446ae7aea31b1ab33226b2f3bf9df05d079c187cbd7fba29ba42eff36111b65382782634b93713f96ec58f9c9be601ba5f00119deee147769833cebfdff54a0c4f6eda574d3898e708d8a687cf3bfa8f92d2ba6a8e08e32dbd089132706f62c41b56c6ac1618e124332aea9029bf05c1ff509c3aab1b072abb4e6e150b0e2692eb2b8d871e2ce830208681e1604a0e88bf4cd95ddc55fc61c77f79dbfbb46e32d60f70c9b4b6c0cf60d6255f336e34a08fa95a3f780cc2535580c379de141508b020be5cb8151ce94b44151d0ae88670047b0c58136524afe609307dfabb1847cbeab2b036810b7c25c826c96a65a06db5b7c205bfa4d88ffa855ec6ed4d243ef9e79f46f0a88c1f170fac72128322fb8af45238428929ab77c0204fea2af2b89a244abc0aef4088d03580b54678edb48f26b0670625b13f4bda0ba1c916794e072da05e9c02c465151394ea58d64da4854c83d6a78673737062e670537bc389d9b2bcc80e2101cf70aae1d56e116ea0b262667fd47d2161a027084dbc969e4102de443322e6dc4ab7a55b248f162e64fb880f0114803e4c42739ba74359cf03a860e9d4744573c8f97e19cce254509085cf11903012ea95e44c83788510c7dbbfd50f726ab999a27504887535248ff5798e1a1e6d07de1371a3b8c8a90f9d009c782c33ab0f828ffac4741af5a4127142211d0ecc83ce445843f168df3b85858754722b5bc8753f082c97f4f67c4f2ff6abfe0a61e858b6ad3bd59ca55966d9310b11839b01bf0792511d78a95d62dc3253e40b4dfdeb2d7f85eee8f941e3a6d12a698e319fe9a60192fb84dab0120d7de6bf6b654fe6ee379bc4a0bc1d50eb70e436210fbdd5c38b4b03d7669ea95b3b0fc768d013575a3c7975aa441d4640ea72295a84ee02eb2f3bdaef34a32d1ed8f83b2f743c44d4477364030aa7f2e86c9da9e7ae6d3438628e41e68fffdb23c55c7bf051894f972ce676b85c1f96faee15dc9be4855e6ff1351bbb5aee89d151cfe086245bb5f11d73fdc1e6d90ebacaf9a53cb53cd589adccd161b9c573884fccd2ccb6bd805c4d24ab20e29972403b38d71aca31e09bfce8b5a8bc3ee6f7631794f83a3236eb8c0e009c69963964f8cc8fe203180de28ff987fc6550e0f8258c2a2bfa88434b69b5af70d7631d587707bf096fbdfa77569147432aecddb981b0f2c71cc149efda3ed5c846fabadd8c1d8570926ef91c12780410edb0d21dd251e87c1b9b2874257102d81db87af63f448502969d4e6dae73b63a1bd738b1575be432829b99ba8c496bbf16fe1864884d4b96ecd9084c31b15720fd1da3fd162dfc9b4882df28adb71f27838b6786050cb71bd2f3f686c3b0d0a5d0d817724a8a359aefe7a4f21e977ddbfe41eda7e39471a8d5ed2bc5af1c64a0761325829e44056db42bee2169da054460da3a93bfeeddd2f315d44ccbdc7cf58e3d78ffc62c43d3e8ed694f2538ae7070a79143afd0056a855286fa81b7116e4a1b121e7c11425c3c1988317dc7cb4c1d05b61a8cafc55c61f0931f94dc896bd71bc2224794f23038970b6dcd958c22a8020db9bf0a0fe5e408841b6a52e7fb02755c1c5c22d1f01e0d52c80069a53f09840c17091f45feaee79cb8947af92004cbc39726a0479a85e5d64c9312f6ce9caebf326a425c4ae18bf1e687adf140bc209d1c6a1738c7bfd9202aaeae81f41c401cd5bd5be837d2cdd5371ee87557ad9ad73c5eaa754b2a92d58eced0a8cdb2148c0055435ebfa81bf16e8fc52f6a1ef6064a01d8b5ed0409ffd68b65be293b6ff51d4fde4784065e085209b4d1bcb09081513a70fbda27fb591dfdab903c708aee95d01b30fffae1504bdd9842684a55878daf7800e630b93d54c1f77296daee39cf4a2afa7dcb7ab945ce4a2354e40f2f3780717d84217d0f0454a3c1791615a9c9cae45949a0aad7d1931a343051b3a0aa8a59ebfd1e4af76b23e1c697983e9fe194bf0a0c174123b46d37b1f6c4db439c41d607e8d7c064ec24e7a8aa92d2355806c33de04e6c6ba9fecd8d1ee0a650be873861c67bf0b21d7ac2009e4edf53cf6ab195a5075f878dd5a65b0b3aca9f1bda18684c9f9a6147610d94c8a8b909d2fba34e81e6eccbc0bcd025cc6843cdc66f73a2068f594bd2330002e6820e57c30dd946ad679d18dc0d2e387c544c6af2127a2a331b7086a449b084f0cd01a0d123c93aa09c2556956bb3012663854a8a6365cf0c4aaaf2e54426e9051f854f7d617277eeb3d2ac9d7a5a23d1ed95bb246406287f2c65f7abfce4d828d53503dbd67ca5969e36f7bf76f242e0ad06b63fcde8dc9ed90cee9046f8f290154096bcd598c677559a5dabbd686f75e79f195554d613084d1025916f30cae2e7a43304272c0a36c05648685f31c27bc80b9052afb827838384fca14bd6bb681b5404a1f471bff7bc53732fd211eb8a10c0378ea546b618ac3a7ddc5b118a3d63e64abf676e7a585d562be5f2ec528a16cc102ef5f79c76874072be09f6ddd24dc950faa761e899fb9d12b7cf2fa86171319d72ada0e9be88b5490844a685b315566a0b39098f68b3445bafa34d5461344493bdbcc3e435a3dc3453a79d2109f28b1d262a3a9bf9496718f99b2c6e3c9c37f2494127aa8f892b6cedb05e4fba4d58c0898624c3779ab9090c7600f6015c249c3cb96a4b5c7502b029db81e412b1f17146f2ecd2ead0b59368e3b3768a7bfab3c9abb88d9f197f0140979e8f6d3a0eed49c642a8c1f15c5fbcf303066086661c55f43a00449c7da40b96c986c7e5de9e9758ce3a220e11774b1a2e70394e1292458dac8dff1ced4e3436a30c80b62ab3388b40da1764824dbdeb3dbbf9b670aa8bf60567a0adc25a138c8ec565986ed2447d7d42bad20c3c3cb374cdcad5256b0bcb7ccb8bc345ae87e10e4f8f669fd98ad0c31a80309b53ebc9fced42f538d27d46b41209922b4f5d52165ef07103eb0726fea86923df0b6a80d45324e787b6802615b9c13a2613f31279dfbe4ab5004bbc453cf5086b4fef36c06107791c999b80e4796fa4d8bbc249049e50085004cb8bf590f7b4b3314533d824244716a5a1465f73714daac55f98fd219b3dc52d5a47392edead97548b6d0df11c95947134e2d522cfb4150add1eff4e247c068a9f59e454b5ef08a475c7b073093be90765f54afde563f0ff08434d2b498a60f70e793a41c3ae1885c99625dd577ea560ec150c8b07ebbed9a6f5d6c332f7fd89d0ce3cf972800fe45ef51e04aee21970421b7cc18b9aeeb8b6757059b41e8ac3687fe3e5729a91783ac487059c9105536f1ce37cab869225f48034ff1bf69e40cc39312bb7bda9a8bfe4f6b0de87b8d2b6f6e450470c59797b954bca6753d86e13642413c7e693068cc9e886080559f47c5c759e49624b6f36ec65b2380c1b4350acbf20833fd0604b2becd22ff314ef547475b03139dd721a1e0e7bc6629ddbde08e927f1cd9409d71f5d97054784a209fe16fd014f433131cc640eb3802563aff84d67843a4df9fa380ec24b593bcc0bcba9bae57def76e7871cbc4d8e92f29c19eab2365169aeaa88f4038db0cf6ce485085349e7588efaaa7ba2d9969ea4b5d860ca3e78d36ca88deb1ae3844670e8c6daddcc1b83852e8b1252a072627164574119749c968889ac0e6f7c792ad2f156e573bb2505ff59d8b2231ec8c8df9cedfb0cb3713ee6b6568ed5b1f3b3229289c59f70fd91b7d28aa5bae68dfa9bc03239d982e43a486f839f32dbb131022c069a9011b8c3148c0d264736012b8696569b6143eb9aa551cfb2064c5da236c0a323d85ff7d888c1c0c374a060cf909fa71eb28d1bf127caf9f3c10ca8aa5ea9446f212eb1b3afc777b363408138d1f65a96a7c849ed28b255818c01b0adbb859f8a3abeb776f6e7294cf32f1d1ffb3f0bcd91b73e11ec371e680ddc45bf54e61dc9703db15a9cad6bf9ee55d441b69acd5ebd719201c7dd99be6414a3ec19bc74fd7493dba85ae486ca2919575bf816f9098be266f1616d04ee19e57080abab4abbec9fda57046fb35be9f406ba31beb5139b61f05b9842d7987a28b1889dc0e8adb7d52b31214f91326218848b96a65aab40ce7998cb4317503300edbc010b00638a5ca5a664ac59d3cf90f0d53bfca45a36899726fc8a8003a5a60d6d1cd1133203086a2441243d3e59c17224c0bee53ffbde58e74e32b25ce943b655b3d92ecafec9bd7e640dde2161cc79931055433c37c19d2223b63c08ad919f050d9ea4103bb6965b3240a7c8826ae719de671b033cd53035f589385401c544018f0efcc45c548b7e3d7263f2c900f8279d81143164aa32803f9d52eb1420470d7c8761e8aa97bc7a747d5a1a008ebd680a0e321358b02ede0a96db82967f87c76d5afdcce5b44b2a5a750703ab1af29b005dc24f353e3b6cc3fde2e2d0415a3e03e26a60309421932e9ccc792816a15fc968e8ee1281991e54fdde5dcc4eab9e2e9ee4ba274b8a235aa731ce2ee9cb251290c5015d0200275c44c4d62e3d048295db081f328f21c564fff7007769200ace486a26dc1a802bdbbce4f5046cb0e340698ad62dde20409bfdf8bb35fa253709d2843eecde6133e74b494c23eb7242828119d1baa56f1f76c0fb6099e36a92a2ca9ad17a1eec455031adb05bd4be142dab0f0a1b06ce914793961d5fc0abd06bfcc957a8f01fce9af9e395aba03b3e3905c688007f940e7c138ae9ec4f9361c7fb2aee559d8102aac60043794e700af1bfcac0b081264bf820b99682d5295169d9a18b89d66dbb66a1e87fe7c23b6252ed8717a734c636ecb0348cb544c6097c30e4d5f6f68dada2d62b1132a7b5c570fd0d73f75b06f21618ff4881a4844b0beae87dae9e6b8f36ade3ca4ab0adb050a7bea218a648cd0586d1f22a2935644f3536ce31476314f4aee0af410cfccf6944d0b690c0f85b7ed6b8c7cd37c9bf3e67e8b705f0734470f1af3442689eb617d9a41788b1dae5a6398278ecc1fbe8f5cc28b9bde36287794022974271571b682fcb49a4e84363f015447db38a188b7bf3522e287866c226b1f5932bdb4766414038ea28b1a89a7141902fd0a78d23ebf5d86d29e66a3cb0f411d808d4dc9fedbf9565f0c06a7d6bb860e92971bf1ff1a5d4428a4643b62cb12cd86516ddc5feac527f08e3a7cf4fff9bb8510e31ff9c20ae52d6fe77b5fda176e0c5999016aed8240dfff7f974e218a2cc9a39000987a20cc93d7ae7b70d9b424713190db4dc5fba52ef6da69a5ca7cf75fdfd1085fe6515b182f6ae28e8965125007cb8f5352ef0accb677778a36b971ea0ef1fe784817e4e9895890aa9a92f7e3bf6075ff0cedc48ba49aefbeeabd2daead55d41563f4b4192bf81041e69c8c8182c06e3218c85c336fa02c0dd258951e9f2beb1f197d85f0e64e0a90e464cea3a385e359801cc9ed627fdb0e9ba3eda844670be80d4e9b37692eb1e530ce908359b3ace305d0947b8c0790ccd44b123a35000879293875dfa018044995db1ce674ae1d294e9b2799a685572abfbc6d4c4999ad4803f3c9f3ef0b276987be749765e6ff79dc4675cc07bfa552b055dc0fd4256e9892990627bc6189979892b791e1ca4ddec0d8fad18d14a4f01b55688060fb98fbb4757efdecce3c75a3b195de3862da027c046bae0cbf89a98f343 请输入密码

2025/7/19
articleCard.readMore

热传导(稳态)笔记

本文为《传热学笔记》的分支,在后期精简过程中会被清理合并。 介质传热机理 气体分子不规则运动 导电固体自由电子运动 不导电固体(声子)晶格结构振动 液体综合气体与固体 引入温度场:定义各个时刻物体中各点温度所组成的集合,物体的温度场时坐标与时间的函数:t=f(x,y,x,z,τ)t=f(x,y,x,z,\tau)t=f(x,y,x,z,τ),如果为稳态问题,则时间为定值,即t=f(x,y,x,z)t=f(x,y,x,z)t=f(x,y,x,z) 导热基本定律 在导热过程中,单位时间内通过给定截面积的导热率量,正比于垂直于该截面方向上的温度变化率和截面面积,热量传递的方向与温度升高的方向相反。 Φ=−λA∂t∂x\varPhi=-\lambda A \frac{\partial t}{\partial x}Φ=−λA∂x∂t​ q=−A∂t∂xq= - A \frac{\partial t}{\partial x}q=−A∂x∂t​ 当物体的温度式三个坐标的函数时,热流密度式是矢量,上式为沿着x方向的矢量,傅里叶导热定律的一般数学表达式为: q=−λgrad t=−λ∂t∂xnq= - \lambda grad\ t= - \lambda \frac{\partial t}{\partial x }nq=−λgrad t=−λ∂x∂t​n grad tgrad\ tgrad t为空间中某点的温度梯度,n{n}n 为通过该点的等温线上的单位矢量。 导热系数 导热系数的数值取决于物质的种类和温度等因素。 导热系数小于0.08W/(m⋅K)W/(m\cdot K)W/(m⋅K)的材料被称为保温材料,如矿渣棉、硅藻土、岩棉板、膨胀珍珠岩、SiO2SiO_2SiO2​气凝胶等。 降低导热系数的方法:使用空心结构(如将标准黏土砖从实心改成空心率为40%40\%40%的空心砖,其当量传热系数可以减少大约50%50\%50%左右) 目标案例 现有一加热炉,炉壁由四层结构构成:最里层为厚65mm的耐火砖,第二层为65mm的隔热层(材质标注为聚轻球,不知道明确材质),第三层为70mm的保温棉,最外层为160mm的保温块(材质未知)。 在炉内温度为1100摄氏度时,炉壁平均为65摄氏度,计算每平方米每小时的散热量。 【分析】:本问题忽略炉顶炉底,仅分析炉壁散热,可以简化为传热学中一维稳态导热问题中的多层平壁模型[1](忽略各层间的接触热阻,层与层之间不发生温度降低),此模型求解计算时需要知道: 各层的厚度:可在工程图中获得数据, 各层的导热系数:材料导热系数与温度有关,可假设一估计值,而后进行迭代求解。 最内最外层的温度:内层通过热电偶获得,外层通过测温仪测得。 收集数据简单整理如下图: 【导热系数计算】:工程上材料的导热系数一般都是温度的函数,这就意味着需要知道温度才能求得导热系数,然而层间温度本身是未知的,甚至有些材料(如最外层的保温块)本身也是未知的。在这种情况下可通过迭代法求解:估计一个大概的导热系数,用此导热系数来估计出层间温度,与已知的最内侧、最外侧温度进行比较,偏差超过允许值则重新估计,进行迭代,直到逼近到合理数值。 将温度分布看作线性——从炉内到炉外依次降低,来估计层间温度。即 Δt=t0−t4∑δ=1100−6565+65+70+160=2.875\Delta t = \frac{t_0-t_4}{\sum \delta}=\frac{1100-65}{65+65+70+160}=2.875Δt=∑δt0​−t4​​=65+65+70+1601100−65​=2.875℃/mm 查询材料的导热系数经验计算公式,根据层间温度来估计导热系数: 材料层厚度(mm)材质参考导热系数λ₀ (W/m·K)温度系数b (K⁻¹)估计层间温度 耐火砖65高铝耐火砖1.300.0006913.1°C 聚轻球65轻质氧化铝球0.150.0003726.2°C 保温棉70硅酸铝纤维棉0.080.0001525.0°C 保温块160微孔硅酸钙板0.070.0002– 按照思路撰写迭代程序: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 import numpy as np def calculate_lambda(T, lambda0, b): return lambda0 * (1 + b * T) def solve_furnace_wall(T_inner, T_outer, layers, tol=0.5, max_iter=100): total_thickness = sum(layer[0] for layer in layers) T_interfaces = [T_inner - (T_inner - T_outer) * sum(layers[i][0] for i in range(j+1)) / total_thickness for j in range(3)] print("初始界面温度估计:", [f"{t:.1f}°C" for t in T_interfaces]) for iter in range(max_iter): # 计算各层平均温度和导热系数 T_avgs = [] lambdas = [] R_layers = [] # 第一层:内壁到T2 T_avg1 = (T_inner + T_interfaces[0]) / 2 lambda1 = calculate_lambda(T_avg1, layers[0][1], layers[0][2]) R1 = layers[0][0] / lambda1 # 第二层:T2到T3 T_avg2 = (T_interfaces[0] + T_interfaces[1]) / 2 lambda2 = calculate_lambda(T_avg2, layers[1][1], layers[1][2]) R2 = layers[1][0] / lambda2 # 第三层:T3到T4 T_avg3 = (T_interfaces[1] + T_interfaces[2]) / 2 lambda3 = calculate_lambda(T_avg3, layers[2][1], layers[2][2]) R3 = layers[2][0] / lambda3 # 第四层:T4到外壁 T_avg4 = (T_interfaces[2] + T_outer) / 2 lambda4 = calculate_lambda(T_avg4, layers[3][1], layers[3][2]) R4 = layers[3][0] / lambda4 # 总热阻 R_total = R1 + R2 + R3 + R4 q = (T_inner - T_outer) / R_total # 更新界面温度 T2_new = T_inner - q * R1 T3_new = T2_new - q * R2 T4_new = T3_new - q * R3 # 检查收敛 diff = max(abs(T2_new - T_interfaces[0]), abs(T3_new - T_interfaces[1]), abs(T4_new - T_interfaces[2])) # 更新界面温度 T_interfaces = [T2_new, T3_new, T4_new] print(f"迭代 {iter+1}: q = {q:.2f} W/m², 界面温度: {T2_new:.1f}°C, {T3_new:.1f}°C, {T4_new:.1f}°C") if diff < tol: print(f"收敛于 {iter+1} 次迭代") return [lambda1, lambda2, lambda3, lambda4], q, T_interfaces raise ValueError(f"未在 {max_iter} 次迭代内收敛") # 输入参数 T_inner = 1100 # 炉内温度 (°C) T_outer = 65 # 炉外温度 (°C) # 各层参数 (厚度(m), λ₀(W/m·K), b(K⁻¹)) layers = [ (0.065, 1.30, 0.0006), # 耐火砖 (0.065, 0.15, 0.0003), # 聚轻球(假设) (0.070, 0.08, 0.0001), # 保温棉 (0.160, 0.07, 0.0002) # 保温块(假设) ] # 运行计算 try: lambdas, q, T_interfaces = solve_furnace_wall(T_inner, T_outer, layers) print("\n=== 最终结果 ===") print(f"热流密度 q = {q:.2f} W/m²") print("各层导热系数:") print(f" 1. 耐火砖: {lambdas[0]:.4f} W/(m·K) (参考λ₀=1.30)") print(f" 2. 聚轻球: {lambdas[1]:.4f} W/(m·K) (参考λ₀=0.15)") print(f" 3. 保温棉: {lambdas[2]:.4f} W/(m·K) (参考λ₀=0.08)") print(f" 4. 保温块: {lambdas[3]:.4f} W/(m·K) (参考λ₀=0.07)") print(f"界面温度: T2={T_interfaces[0]:.1f}°C, T3={T_interfaces[1]:.1f}°C, T4={T_interfaces[2]:.1f}°C") except ValueError as e: print(e) 运行结果: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 初始界面温度估计: ['913.1°C', '726.2°C', '525.0°C'] 迭代 1: q = 307.96 W/m², 界面温度: 1090.4°C, 983.3°C, 729.7°C 迭代 2: q = 315.15 W/m², 界面温度: 1090.5°C, 986.3°C, 732.3°C 迭代 3: q = 315.24 W/m², 界面温度: 1090.5°C, 986.3°C, 732.3°C 收敛于 3 次迭代 === 最终结果 === 热流密度 q = 315.24 W/m² 各层导热系数: 1. 耐火砖: 2.1543 W/(m·K) (参考λ₀=1.30) 2. 聚轻球: 0.1967 W/(m·K) (参考λ₀=0.15) 3. 保温棉: 0.0869 W/(m·K) (参考λ₀=0.08) 4. 保温块: 0.0756 W/(m·K) (参考λ₀=0.07) 界面温度: T2=1090.5°C, T3=986.3°C, T4=732.3°C 结果整理如下: 材料层厚度(mm)迭代导热系数λ₀ (W/m·K)迭代层间温度 耐火砖652.15431090.5°C 聚轻球650.1967986.3°C 保温棉700.0869732.3°C 保温块1600.0756– 则总热阻为 Rtotal=0.0652.1543+0.0650.1967+0.0700.0869+0.160.0756=3.283m2⋅K/WR_{total}=\frac{0.065}{2.1543}+\frac{0.065}{0.1967}+\frac{0.070}{0.0869}+\frac{0.16}{0.0756}=3.283 m^2\cdot K/WRtotal​=2.15430.065​+0.19670.065​+0.08690.070​+0.07560.16​=3.283m2⋅K/W 热流密度为: q=1100−65Rtotal=315.26W/m2=315.26J/s⋅m−2q=\frac{1100-65}{R_{total}}=315.26 W/m^2 = 315.26 J/s\cdot m^{-2}q=Rtotal​1100−65​=315.26W/m2=315.26J/s⋅m−2 则每平方米炉壁每小时散热: 1134.85 kJ/(m²·h)(千焦) 0.3152 kWh/(m²·h)(换算成千瓦时) 0.0317Nm3/(m2⋅h)(换算成标准大气压下天然气消耗(35.8兆焦/方)) 《传热学》P41 ↩︎

2025/7/2
articleCard.readMore

年中

所见所期,不可不远且大,然行之亦须量力有渐。志大心劳,力小任重,弘而不毅,恐终败事[1]。 瞻顾 兴趣A,断断续续自嗨而已,无所成就,少有满意的作品。大概是自我定位太高,像一条孤傲的猛虎,瞧不起陈旧的风格,对一些基本功不屑一顾。然而这基本功便是所谓专业的训练。此兴趣与个人心绪紧密结合,心绪没有波动的日子,也只能放在那里,拿起来又放下。 兴趣B的火焰,在设备买来的一个月之内,很快地灭掉了。一开始的的确确熟悉了一点点筋肉的技巧,还很高兴,甚至还能做些蹩脚的展示。随着之前累计的热情染料逐渐消耗殆尽,我却一直没有找到方向,一直没有找到那条属于我的路。导致火焰没有新的燃料便熄灭成死灰了。尽管我现在还不愿意承认火焰熄灭这个事实。 兴趣C,因为进入圈子门槛极低的缘故,使我在一次次反馈中持续的吞噬自由意志,几乎沦为C的奴隶。在5月份左右开始,对风格的形成有一点思考。这是一点点进步。 表达D,因为某些变动与自身习惯的不及时调整,导致源头变得干涸。D逐渐混乱、随意而抽象。 表达E,开了头,有了流,后面的路反而走不成了。 对于年初计划3点 扬波鳞鳞(风扬起的波浪造成如鱼鳞似的光一般的招摇作态) 死水微澜(不够决然的否定) 冰泉冷涩(不够豁然的心境) 有些进步: 1,在写计划某文章过程中,看书读书,体察实际后得到一定程度的反思。2,因为从未十分肯定过什么东西,否定总是持续进行的,一个理想化的目标应该定为决然的肯定。3, 努力压制,逐渐脱敏,豁然了些。 载驰 后半年,需要做到: 打磨基础理论,以加快学习掌握达以其他某领域一般水平的速度。 通览领域G,以从中完善对于G乃至X的看法。 把握后半年可能遇到的三四种随机某领域/某风格/某技术 【试验性】以风格形成为价值导向 发展ABCDE(A要注意关注核心操作,C信息容易过载,要及时去粗存精) 适当 开放/筛选/随机化 外界信息流,与外界互通有无,以抵抗自为师的负面影响。(受Z提醒) 备注: A: ZuanK B: YinY C: Nyos D: XieZ E:Bok G: JiS phil X: phil Z:zsk 然观圣人之教(近乎完美的教学方法),循循有序,使人求之至小至近之中,博之文以开其讲学之端,约之礼(规范)以严其践履之实,使之得寸则守其寸,得尺则守其尺。如是久之,日滋月益,然后道之全体乃有所向望,而渐可识,有所循习,而渐可能,自是而往挽焉,孜孜斃而后已。而其所造之浅深,所就之广狭,亦非可以必诣而预期也。盖于此小差则心失其正,虽有仰高钻坚之志而反为谋利计功之私矣” ↩︎

2025/6/30
articleCard.readMore

浅论书写方式:提示词是书写的最终形式吗?

近日对“迭代”一词有了极大的兴趣,除了编程上的妙用外,它甚至可以是解读世界的一把神器——“凡在天地间,无非迭代之理,造化与人事皆是。” 思考是一种基本的迭代,将色声香味触、图像、文本等接收到的信息而产生的念头进行重复审视,以得到新的或否定旧的,或强化现在的想法。书写则可看作是思考的迭代,将飘忽不定、图式而混乱的想法,通过逻辑的、线性的,颗粒化的文字符号表达出来。 书写本身又可借由誊写、修订、甚至传播、训练成语料库等方式进行迭代。管它迭代几次三番,以手稿、书本、大语言模型还是何种形式存乎于世,其最终目的都大相径庭——“生产信息,迭代下去,抵抗熵增,永久流传”使个体的自由意志与客体的无常荒谬相拮抗。 从流芳百世、遗臭万年的“百世”、“万年”可见,不朽大抵是以时间为标的物的。假设不考虑传播与复制,那么决定书写朽与不朽的关键点的便是书写方式了。下面以我所熟悉的几种书写方式及笔者的使用熟练程度为基础进行探讨。 篆刻刀,结构简单,功能复杂。采用镌刻式书写,钢刀刻入石头表面2~3mm深,速度约10min/字,可承受风吹日晒雨淋火烧,可保存约上百年。 毛笔(软笔),结构复杂,功能简单。采用表面式书写,毛刷上的颜料液滴通过复杂物理化学作用吸附到另一表面,速度约10s/字,以纸张为媒介,可保存几十年。 钢笔(硬笔),结构相对于软笔更为复杂,不能写出粗细变化,功能上更为简单。采用表面式书写,颜料通过复杂精密机械结构恒流量地通过复杂物理化学作用吸附到另一表面,速度约2s/字,以纸张为媒介,可保存十几年。 文本编辑器,结构高度复杂(以操作系统为载体的软件)功能高度简单抽象(舍弃了实体,虚拟化到显示器上,有便捷的文本操作,样式设定等功能)。采用虚拟化书写,通过敲击键盘上特定规则按键的组合,将需要的文本写入到显示器上,速度约0.8s/字,以硬盘为媒介,可保存十年左右。 生成式文本,结构极度复杂(以操作系统上,通过海量语料训练的大语言模型软件为基础)功能极度简单。采用迭代的虚拟化书写,通过自然语言写出简短的提示词,不需要谋篇布局,即可在显示器上生成真正可读的文本,速度约0.001s/字,储存于硬盘的缓冲区,可保存30天(chatgpt为例)到180天(deepseek)左右。 维度篆刻刀毛笔钢笔文本编辑器生成式文本 中断频率每笔画每字/词每页篇章级仅复制时 存续时长≈300年≈50年≈15年≈10年30-180天 书写速度10min/字10s/字2s/字0.8s/字0.001s/字 交互深度物理镌刻表面渗透表面附着虚拟化缓冲区暂存 我们可以得到如下规律:书写越容易,信息消失越快。书写工具结构越简单,功能越复杂,对使用者要求越高。 下面再回到迭代,上文说过书写过程是思考的迭代,一个线性化过程。既然是线,就或多或少会发生间断,这种线性化过程中的间断,可看作作寓于书写父迭代之里的子迭代。 间断是一种反思,对书写行为的审视,如果失去这种审视,思维中的疯狂便会显露出来,吞噬书写,吞噬一切。 书写过程中同样如此,比如篆刻的回刀,软笔的吸墨,硬笔的换芯等等。在篆刻兴盛的秦汉,每刻一条线就要间断一次,惜字如金;到了软笔,几个字写完蘸墨一次,有时一个字都要推敲良久;在硬笔的时代,写完一页纸间断一次,鸿篇巨制已不罕见;到了文本编辑器,自动滚动换行,一篇一间断。进入提示词时代,只有复制时才会间断。 没有了间断,失去了好地狱,这里将充满抽象的狂欢以及泛滥的疯狂。 提示词的确是书写的最终形式。在此之后的在某个时间,书写将被收入联合国非物质文化遗产名录。

2025/6/29
articleCard.readMore

传热学笔记

因工作需要计算某设备的散热,临时补课传热学。 概览 传热学就是研究温差引起的热能传递规律的科学。基本假设:所研究的物体中的温度、密度、速度、压力等物理参数都是空间的连续函数; 热量传递过程发生的时间远远大于物体内微观粒子在经受扰动后恢复平衡状态所需的时间。 热力学研究热量传递,传热学关注时间,单位时间内传递多少热能。 传热学主要研究的问题: 强化传热( heat enhancement )。即在一定的条件(如一定的温差、体积、重量或泵功等)下增加所传递的热量。 削弱传热( heat transfer reduction ),或称热绝缘。即在一定的温差下使热量的传递减到最小。(此部分与需求高度吻合) 温度控制( temperature control )。为使一些设备能安全经济地运行,或者为得到优质产品,要对热量传递过程中物体关键部位的温度进行控制。 热能传递三种方式 热传导:物体各部分之间不发生相对位移时,依靠分子、原子及自由电子等微观粒子的热运动而产生的热能传递称为热传导( heat conduction ),简称导热。例如,固体内部热量从温度较高的部分传递到温度较低的部分,以及温度较高的固体把热量传递给与之接触的度较低的另一固体都是导热现象。 热传导的经验公式已经被总结成傅里叶定律(导热基本定律)——单位时间内通过一维表面厚度的导热热量与当地温度变化率与平板面积A成正比: Φ=−λAdtdx\varPhi=-\lambda A \frac{dt}{dx}Φ=−λAdxdt​ q=−λdtdxq=-\lambda \frac{dt}{dx}q=−λdxdt​ λ(W/(m⋅K))\lambda(W/(m\cdot K))λ(W/(m⋅K)):热导率,比例系数,热物性参数。(与材料、材料本身温度有关) ”-“:表示热量传递方向与温度升高方向相反 Φ\varPhiΦ(WWW):单位时间内通过某一给定面积的热量称为热流量 qqq(W/m2W/m^2W/m2):单位面积的热流量称为热流密度 积分处理:此公式为单位面积上的热量,如果是一个有厚度的薄板,需要沿厚度方向积分才能得到热流密度:q×∫0xdδ=−λ∫t1t2dtdxdx=qxq\times \int_0^x d\delta=-\lambda \int_{t1}^{t2} \frac{dt}{dx} dx=qxq×∫0x​dδ=−λ∫t1t2​dxdt​dx=qx 热对流:热对流( heat convection )是指由于流体的宏观运动而引起的流体各部分之间发生相对位移,冷、热流体相互掺混所导致的热量传递过程。热对流仅能发生在流体中,而且由于流体中的分子同时在进行着不规则的热运动,因而热对流必然伴銪有热传导现象。工程上特别感兴趣的是流体流过一个物体表面时流体与物体表面间的热量传递过程,并称之为对流传热( convective heat sfer ),以区别于一般意义上的热对流。对流分两种,一是自然对流(依靠密度),二是强制对流(依靠压力)。对流传热的基本公式为牛顿冷却公式[1]: q=h(tw−tf)=hΔtq=h(t_w-t_f)=h\Delta tq=h(tw​−tf​)=hΔt Φ=hAΔt\varPhi=hA\Delta tΦ=hAΔt h(W/(m2⋅K))h(W/(m^2\cdot K))h(W/(m2⋅K)):表面传热系数(对流换热系数),与多种因素有关,取决于流体的物性、换热面形状、大小与布置、流速等。 热辐射: 物体通过电磁波来传递能量的方式称为辐射。物体会因各种原因发出辐射能,其中因热的原因而发出辐射能的现象称为热辐射。物体辐射能力与温度以及物体本身特性有关 导热、对流这两种热量传递方式只在有物质存在的条件下才能实现,而热辐射可以在真空中传递。当两个物体被真空隔开时,例如地球与太阳之间,导热与对流都不会发生,只能进行辐射传热。辐射传热区别于导热、对流传热的另一为特点是,它不仅产生能量的转移,而且还伴随着能量形式的转换,即发射时从热能转换为辐射能,而被吸收时又从辐射能转换为热能。 黑体指能吸收投入其表面上的所有热辐射能量的物体(即热能与辐射能的转变效率为100%)。黑体单位时间内发射的热辐射能量由Stefan-Boltzmann定律(四次方定律)定义: Φ=AσT4\varPhi=A\sigma T^4Φ=AσT4 TTT:黑体的热力学温度,KKK σ\sigmaσ:黑体辐射常数,5.67×10−8W/(m2⋅K4)5.67\times 10^{-8} W/(m^2\cdot K^{4})5.67×10−8W/(m2⋅K4) AAA:辐射表面积 对于非黑体的一般物体辐射热流量计算需引入黑度ε\varepsilonε(值小于1,与物体及其表面状态有关) Φ=εAσT4\varPhi={\color{blue} \varepsilon} A\sigma T^4Φ=εAσT4 一个简单的场景:一个表面积为A1A_1A1​、表面温度为T1T_1T1​ 、发射率为ε1\varepsilon_1ε1​的物体被包容在一个很大的表面温度为T2T_2T2​的空腔内,此时该物体与空腔表面间的辐射换热量按下式计算。物体本身辐射向外的能量为 Φ自=A1σ1T14\varPhi_{\text{自}} =A_1 \sigma_1 T_1^4Φ自​=A1​σ1​T14​,外界向其表面辐射的能量(自身从外界接受的能量)为Φ外=A1σ1T24\varPhi_{\text{外}} =A_1 \sigma_1 T_2^4Φ外​=A1​σ1​T24​。故最终的换热量为Φ换=A1σ1(T14−T24)\varPhi_{\text{换}} =A_1 \sigma_1 (T_1^4-T_2^4)Φ换​=A1​σ1​(T14​−T24​) 下面是暖气片内热水传热到室内的传热过程示意图: flowchart LR id1(热水) -- 对流传热 --> id2(管子内壁) -- 导热 --> id3(管子外壁) -- 对流传热及辐射传热 --> id4(室内温度) 【示例】一水平放置的蒸汽管道,其保温层外径d=583mmd=583 mmd=583mm,外表面实测平均温度为tw=48t_w=48tw​=48℃。空气温度为tf=23t_f=23tf​=23℃,此时空气与管道外表面间的自然对流传热的表面传热系数h=3.42W/(m2⋅K)h=3.42 W/(m^2\cdot K)h=3.42W/(m2⋅K),保温层外表面的发射率ε=0.9\varepsilon=0.9ε=0.9。计算每米长度管道的总散热量。 🔦解决示例 解:假设沿管子长度方向各给定参数都保持不变,过程为一个稳态过程,管道周围的其他固体表面温度等于空气温度。把每米长度上的散热量记作q1q_1q1​,散热量分两部分,一是自然对流散热,二是辐射散热。 对流散热 q1,d=πdhΔt=πdh(tw−tf)=3.14×0.583m×3.42W/(m2⋅K)×(48℃−23℃)=156.5W/m \begin{aligned} q_{1,d} &= \pi d h \Delta t\\ &= \pi d h(t_w-t_f)\\ &= 3.14\times 0.583 m\times3.42 W/(m^2\cdot K)\times(48℃-23℃)\\ &= 156.5 W/m \end{aligned}q1,d​​=πdhΔt=πdh(tw​−tf​)=3.14×0.583m×3.42W/(m2⋅K)×(48℃−23℃)=156.5W/m​ 辐射散热 q1,f=πdσε(Tw4−Tf4)=3.14×0.583m×5.67×10−8W/(m2⋅K4)×0.9×[(48+273)4K4−(23+273)4K4]=274.7W/m \begin{aligned} q_{1,f} &= \pi d \sigma \varepsilon(T_w^4-T_f^4)\\ &= 3.14\times 0.583m\times 5.67\times 10^{-8} W/(m^2\cdot K^{4}) \times 0.9\times [(48+273)^4K^4-(23+273)^4K^4]\\ &= 274.7 W/m \end{aligned}q1,f​​=πdσε(Tw4​−Tf4​)=3.14×0.583m×5.67×10−8W/(m2⋅K4)×0.9×[(48+273)4K4−(23+273)4K4]=274.7W/m​ 所以每米长管道的总散热量为: q1=q1,d+q1,f=431.2W/mq_1=q_{1,d}+q_{1,f}=431.2 W/mq1​=q1,d​+q1,f​=431.2W/m 计算结果表明,对于表面温度为几十摄氏度的一类表面的散热问题,自然对流散热与辐射散热量具有相同的数量级,不能忽略(如两者有“远远大于”的情况可以忽略)。 传热过程与传热系数 以冷、热流体通过一块大平壁交换热量为例(稳态),整个过程中包含着串联着的三个环节: 从热流体到壁面高温侧的热量传递 从壁面高温侧到壁面低温侧的热量传递,亦即穿过固体壁的导热 从壁面低温侧到冷流体的热量传递。 由于是稳态过程,通过串联着的每个环节的热流量应该是相同的。设平壁表面积为AAA, Φ=Ah1(tt1−tw1)\varPhi = Ah_1(t_{t_1}-t_{w_1})Φ=Ah1​(tt1​​−tw1​​) Φ=Aλδ(tw1−tw2)\varPhi = \frac{A\lambda}{\delta}(t_{w_1}-t_{w_2}) Φ=δAλ​(tw1​​−tw2​​) Φ=Ah2(tw2−tt2)\varPhi = Ah_2(t_{w_2}-t_{t_2})Φ=Ah2​(tw2​​−tt2​​) 更改成温压,经过换算可以得到 Φ=A(tt1−tt2)1h1+δλ+1h2\varPhi = \frac{A(t_{t_1} - t_{t_2})}{\frac{1}{h_1} + \frac{\delta}{\lambda} + \frac{1}{h_2}}Φ=h1​1​+λδ​+h2​1​A(tt1​​−tt2​​)​ 我们把式子化简,把不变的记作K,则可以得到: Φ=Ak(tf1−tf2)\varPhi =Ak(t_{f1}-t_{f2})Φ=Ak(tf1​−tf2​) 上式被成为传热方程式(传热过程总是包含两个对流传热,因而把这一特殊的模型一般化了)。 K=11h1+δλ+1h2K=\frac{1}{\frac{1}{h_1} + \frac{\delta}{\lambda} + \frac{1}{h_2}}K=h1​1​+λδ​+h2​1​1​ 其中K称为传热系数,表征传热过程强烈程度。等于组成传热过程诸串联环节的1h1+δλ+1h2\frac{1}{h_1} + \frac{\delta}{\lambda} + \frac{1}{h_2}h1​1​+λδ​+h2​1​的倒数,换种表达方式就可以看到它与电学中的欧姆定律的相似性: 1k=1h1+δλ+1h2\frac{1}{k}=\frac{1}{h_1} + \frac{\delta}{\lambda} + \frac{1}{h_2}k1​=h1​1​+λδ​+h2​1​ 1Ak=1Ah1+δAλ+1Ah2\frac{1}{Ak}=\frac{1}{Ah_1} + \frac{\delta}{A\lambda} + \frac{1}{Ah_2}Ak1​=Ah1​1​+Aλδ​+Ah2​1​ flowchart LR tt1(热流体温度 t<sub>t1</sub>) -->|对流热阻 1/h<sub>1</sub>| tw1(壁面温度 t<sub>w1</sub>) tw1 -->|导热热阻 δ/λ| tw2(壁面温度 t<sub>w2</sub>) tw2 -->|对流热阻 1/h<sub>2</sub>| tt2(冷流体温度 t<sub>t2</sub>) 1(Ak)\frac{1}{(Ak)}(Ak)1​称为传热过程热阻,串联热阻叠加原则与电学中串联电阻叠加原则相对应,即:在一个串联的热量传递过程中,如果通过各个环不节的热流量相同,则各串联环节的总热阻等于各串联环节热阻之和。 随记 对于目标问题, 要考虑冬季夏季,炉体的散热效率。 考虑炉壁的散热与强度、承载能力。+ 思考左手拧开水杯盖子后,右手握住杯子的手感觉水杯表面温度升高的现象。 怀疑是拿起杯子后,不小心扰动水杯,让水与杯壁形成了强制对流换热。 似乎并非牛顿本人提出 ↩︎

2025/6/24
articleCard.readMore

趾盖

无聊的时候,人总是要做些无聊的事,用更无聊的无聊来打发无聊。 看着书里一篇又一篇错落有秩的行段,显现的却同一个模样,我渐渐觉得索然无味以至于泛起一种厌烦的情绪,恶心起来。然而为了完成本周的阅读计划,也为了某个时刻的展示与表演效果,便剪起剪趾甲来,想依托这种无聊来分散情绪,强迫读下剩余的几页。 咔啪,咔啪,随着指甲剪清脆地将脚上的趾甲剪断,我忽然发觉,小指的指甲竟然变得那么小了!它几乎长成了畸形: 根部简直插在趾稍,前方边缘处歪歪扭扭没有一点平滑的曲度,俨然一个可有可无之物,生物进化中淘汰的劣者。 我便想起幼时的情形。“妈,我这小脚趾指甲绝对不会跟你们的一样小,就跟我的大拇指可以蜷成“Z”字形而你们都不可以一样!”某个盛夏的傍晚,我和母亲坐在门口乘凉,脚泡在盛满刚压上来的井水的塑料盆里,看着母亲小趾指甲那么小,那么难看,我不觉间感叹道。 人一生下来,肢体的形状就基本被决定,有生之年不会被外界的变化而轻易改变,这是我心中长久默认的自然法则。 这许多年间,我不时留意自己的小趾指甲。 当我定下攀槐三万寻流年的壮志,在河边粗狂的鬼柳树上同伙伴耍玩时,我清楚地记得,它确实没变,几乎跟小拇指一样完整,细长,边缘弯曲而美。后来当我不再爬树,后来我开始统计步数,当我日行千八百步的时候,我终于不再关注这些可以归为琐碎无聊的东西。在某些个同样无聊的时间里,我剪起趾甲:“嗯,唔,这小指甲大概是有些短了,但我拇指还能蜷成“Z”字形啊!”于是乎得大宽心,走向大光明,得大智慧。 然而今天我不得不直面这指甲与趾肚不成比例的现实了——小趾甲确然成了这个模样了:根部简直插在趾稍,前方边缘处歪歪扭扭没有一点平滑的曲度,俨然一个可有可无之物,生物进化中淘汰的劣者。 击败了自己,彷徨于无地。呜呼,我为它感到悲痛,为这法则的失效而悲痛。大概是直立行走了太久罢,或许要爬些树恢复些灵长气。 但拇指还能蜷成“Z”字形啊!于是我又得大宽心,脚上虽已失效,手上不还循照着这法则运行么!

2025/6/18
articleCard.readMore

石影

『唯泥沙中之顽石,与湖山间之光影,手触之而为觉,目遇之而成色,取之无禁,用之不竭。是造物者之无尽藏也』 石头生于自然,但并非所有都可以玩味,石头中偶有有趣味的,因而才有人们收集石头的行为。光影来自于自然,但并非所有的光影都是好看的,光影中有些瞬间是有趣味的,因而人才有拍摄的行为。瘦漏透皱丑,这是在奇石收集者中的审美标准,如若把这五点归结为形,再结合石材的其他特点,便有了——形质色纹韵,即所谓形状,质地,颜色,纹理,韵律。 咱平时出去玩,有机会就收集石头,没机会就拍照,有时两者兼有。景色、石头又不要钱,何取之而不为呢?今天早上出去玩,在公交上看书时,忽然来了灵感思考——如若把石头的审美观赋予摄影,是否就可以得到光影的形质色纹韵呢? 答案是肯定的!让我们来理一理! 形 形:即形状。学过素描的同学应该都知道——自然界、人造物中所有的物体都可以抽象成一些简单的几何体,如长方体、球体、圆锥体等,这些物体通过组合形成了千奇百怪的造物。 形状是一个基本的要素,有时候图形中一个或几个形状微妙地相互作用,就能产生耐看而有趣味的效果。人对几何形状是非常痴迷的,在城市里随便走一遭,不难发现这些形状,尤其是长方体,这家伙可是占领统治地位的。除了人造的形状外,自然界也是有许多“秩序”的,一些规则的形状能带来一种和谐的愉悦感,比如花瓣,叶子等。 《马路环岛中的现代雕塑》《新式别墅》《宇宙避雷针》 球形、三角形,三角构图矩形、三角形、分散的三个圆形三个球形+圆柱体连接 《门已锁死!》《仿古景观塔》《上林湖水位观测站下的桥》 长方体、直线六棱柱、圆环横着、竖着以及斜着的长方体 五瓣花(pen香!)春飞蓬缠绕的藤蔓 当然,形状并不是直线主导,一些曲线也自有其魅力,除了天然的曲线外,我们可以通过特定的视角来创造这些形状,移动位置,使背景简化,突出想要表现的轮廓,费劲但是效果很不错。尽量在现场构好图,否则后期裁切会损失画质。不过设备好的同学,可以拿10亿像素随便拍,后期像清明上河图那样裁剪即可。 《登山小径》《张扬》《搁浅到越窑》《蝇王·兽从水上来》 小结: 寻找自然或人造的几何形状 找到最佳构图,虚化背景,突出主题 在多个形状构图时,形状之间要有呼应 减少快门次数,多观察,多思考 质 质,即质感,质地。奇石中,如玉的温润、玛瑙的鲜艳、太湖石的褶皱都是不同质感的体现。自然界中的质感就千奇百怪了——金的反射光泽,木的粗糙纹理,水的时而如镜,时而如皱,火的升腾,雾气的迷蒙。 看到的、摸到的、甚至通感闻到的都可归为质。触摸物体表面或在其上滑动,能使我们产生另一种鉴别作 用,它和视觉、味觉、嗅觉、听觉相辅相成。一种完全的鉴别能 力往往需要依靠两种或更多的感觉器官共同行动才能形成。例如, 一块抛光了的杂色大理石,看起来不平,但摸起来很滑;一匹驯 养的马,看起来皮毛光滑,但摸起来又粗又硬;塔夫绸的窸窣声 加上其它因素才形成它干净利落的感觉。 一切感觉相互之间都有密切联系。看到酸黄瓜那湿漉漉、滑 溜溜的外表,会刺激味蕾而使人垂涎三尺;看见切开的洋葱就想 起它那辛辣催泪的味道。用不着举起一块石头去估量它的重量, 一眼就能“看出”它是个憨然重物。只消看到海滩的细砂就会联 想到漂浮在手指和脚趾之间的晶粒。看到锋利多齿的石头就足以使脚底的肌内收缩,这是因为想起了赤祼的双脚曾被这种刺人的 石头边缘触痛过。看到贝壳会唤起人们对它的外形和质地的感觉。 人体的大部分感受都是通过各别的感觉在体内的传递和交融而形成的。[1] 将熟的杨梅茅草峭壁石 不考虑构图的话,质的题材是最多的。人工修筑的马路、人行道和天花板富有各种有趣的表面,从 最粗糙到不大粗糙,从不规则到非常规则。例如:踏成的路、石 板、卵石、有各种骨料的混凝土、陶瓷排水管、水磨石、碎石路 面、沥青路面、地板和地毯。各种各样地面的——砂、卵石、树叶、石子、 草、苔藓、泥土、干湿土壤、雪。 有些不习惯于细致观察的人会认为这些树皮不过都是一般的 粗糙表层,相互之间没有什么区别。而有辨别能力的人则能识别 它们那些具有美学和植物学情趣的差异。 朽木枯木残木 仔细观察,注视自然风化对下列物体的影响;老树桩、 落地枯枝、中空树木、树上和石头上的苔藓、地衣和真菌。风化 作用使人造物体受到损失,但实际上,它却给各种质地再添新状, 这时摄影是一大乐事。注意观察生锈的金属、剥落的油漆、变质 的木板、腐朽的建筑、坍塌的船坞、倾倒的篱笆、遗弃的小船及 撕破的广告画等。 渔网搁浅的船近景生锈的铁丝 水上倒塌的棚屋上林湖沙岸上的螺灌木丛中的生锈管道狗毛也算的 小结:自然存在的或人工制造的任何一种群体物质都是质感题材的 最佳源泉,方法只有: 仔细观察 仔细观察 以及仔细观察 色 色,即色调、影调。这部分内容在本栈的 掌握光影的魔法——调色完全手册 摄影修辞学——影调的解读 已经详谈过,主要是后期的工作——通过调整整体的氛围感,调整明暗关系,通透度,色调来让图片美化。下面是一些”成品“,给诸位欣赏: 《杨梅园里的菊花》《绿意探头》(调色版)《野花》 除了后期的调色,在前期在画面上增加各种颜色进行搭配也能提高表现力: 《上林湖畔小型建筑群》《路边工厂的彩色棉布堆》《垃圾站一角》 《上林湖山色》《水库坝》 纹 纹,即纹理,线条。”纯粹的线条在自然界中是根本不存在的。线条是人们发明出来的,以便用它来确定固定物的边缘界 限和物体表面的连接处。“ 尽管自然界中并不存在线条,但我们周围有许多物体,它们的宽 度非常小,以致在照片上完全可以把他们看作线条,比如电话线、 电线、电视天线、树枝以及植物的纤细部分(特别是芦苇和高大 的禾本科植物)、晒衣绳、船缆以及桥上的铁索。 《绿意探头(线条版)》《张扬·其二》《蕨草》《沉木》 有些形状和它的长度相比显得十分纤细,所以也可以看作是 线条——虽然它们较粗,但毕竟还是线条。这种线条包括旗杆、 电话线杆子、路灯柱、不粗的树树木、绳子、园林浇水用的软管、 小路、各种篱笆、线状云、水面涟漪、动植物的骨架、木质建筑 物和钢铁建筑的框架,,机床切割的铁屑等。 《等待熔化中…》《重力g》《随拍》 《瓦房与瓦松》《&Y*##%$#》 韵 所谓韵律,同奇石欣赏一样,是形质色纹韵五者中最有难以用语言描述的,可以看作诗词中的意境,它可以同时包含以上所有特点,也可以不包含任何一点。 用我的理解来说,就是趣味,有趣,有意思,看了后能多看几眼,不仅仅是一些线条、构图等抽象的理性的东西,是一种情绪,一种场景,一种深意。 语无伦次了已经,直接来图吧: 《瞪》《振翅》(裁切)《取食》 《瞪·其二》《殺!閃!》 《登山小径》2025.5.25 慈溪,王家㻖南路。这是一条鲜为人知的小路,水泥板砌成的台阶直通到小山顶,路两旁皆是峭壁。拾阶而上,可以抵达上林湖西侧的杨梅园里。此时小满时节,杨梅正在盛果期,即将成熟(忍不住尝了个,妈的,真是嘎嘎酸),不时有果园的农人顺着小路上去果园里除草施肥。路上询问一个老农,他说这几座山种的全是杨梅,我看着满山的杨梅,不禁想象杨梅成熟时节,农人扛着杨梅下山的情形。 《摄影构图学》(1974)本·克来门茨&大卫·罗森菲尔德 ↩︎

2025/5/25
articleCard.readMore

EP3:当下的,太当下的!

大多数人,迦摩罗,仿佛一片落叶,在空中翻滚、飘摇,最后踉跄着归于尘土。有的人,极少数,如同天际之星,沿着固定的轨迹运行。没有风能动摇他,他内心自有律法和轨道。 var ap = new APlayer({ element: document.getElementById("aplayer-NxoETrTs"), narrow: false, autoplay: false, showlrc: false, music: { title: "EP3:当下的,太当下的!", author: "秉蕳", url: "https://cloud.si-on.top/api/raw/?path=/Podcast/ep3.mp3", pic: "/images/Cover/podcast/ep3.png", lrc: "" } }); window.aplayers || (window.aplayers = []); window.aplayers.push(ap); 02:20 关于时间线问题的提出,每个人的关注构建了整个世界的时间线(用区块链的概念理解) 03:12 时间的线性导致信息过载,进而引起人人渴望热点 05:22 时间线(Timeline)的补充说明 05:47 在写年终总结时的对回忆丢失的无力感 06:38 解决之道——小逆流,“爱时进趣”的解读 10:30 小逆流之例子:日出、做饭、写博 12:20 关于日记的探讨:一个工具,作为小逆流的时间戳 14:05 自我批判与“虚一而静”的重要性 15:47 小逆流的自检——回溯 17:18 🎵蛙池《河流》 👉订阅《虚言》 https://blog.si-on.top/audio.xml/ Nothing Words虚言

2025/4/2
articleCard.readMore

给博客刻个章

北涉玄灞,清月映郭。夜登华子冈,辋水沦涟,与月上下。*寒山远火,明灭林外*。深巷寒犬,吠声如豹。村墟夜舂,复与疏钟相间。 ——王维《山中与裴秀才迪书》 ✍文章痕迹 写作时间线 2025-03-15 晚上产生一个念头:用周树心《<千字文>拟新莽嘉量铭》的风格来做印稿,立马集字,然后绘制草稿: 2025-03-29 夜上吃完饭无事可干,把任务提出来,于八点半到十点半治印 序 吾闻古之私人大多有印,少者八九,多者数十,而痴狂者百十方有余。然其中多表所思所想,自嘲自讽,真正有实用价值者,莫非姓名印,斋印、室印而已。然其所言斋者、室者、阁者,亦多为虚名,表志而已,绝非真正之室也。纵然有印之名,然不过仅存诸刀尖纸上,蜃楼海市之中也。 此乃古人之脱离实际而空谈也,吾乃求实之辈,怎可为虚者治印?!真正之室,有真正之存在,方可有一印! 今有博客子虚栈一间,源码存乎树莓派主机之中,置门路于网络之上,乃真正之存在,治印一方,甚合其时! 稿 考虑到新莽篆字体的矩形特点,如果用四个字占据印面,难以体现出它修长的风格,反而变得四不像,“子虚栈印”四个字显然是不够了。如果五个字“子虚栈之印”,那最后一个字拉得太长,很难掌控住。用六个字是最合适的,所以最终敲定的印面文字是“子虚栈之印信”。 六个字中,仅"栈"、“印”没有对应。采取用"贱","枝"来凑“栈”,“印”则是自己遵照风格写了一个。 单个字很好看,但这样简单组合起来后,印面有较多空间,没有填满,不是很符合“篆刻学”的审美。但受能力之限,我也不好自由发挥,便硬着头皮上了,或许刻好会越看越得劲呢。 治印 如果采用传统的水印上石,那是比较考验技术的,需要把印稿一次写好,因为上石用的墨水是不能擦掉涂改的。但纵然是写印稿,我也想要能及时修改,而不是坏了一笔就全盘毁掉。 所以就采用铅笔直接在印石上设计,笔画不到位了拿橡皮擦掉,印面太光亮了就擦点石粉(让铅笔的笔画更加明显)。修修补补,每写好一笔就朝着定稿接近一步,可持续打草稿。(这大概是受现代数字编辑工具的影响吧——“撤销”Ctrl + Z ,多么自由的一个词) 刻的时候还算顺利,因为字比较多,笔画就比平常刻印细一点,唯一的事故就是刻“虚”的时候遇到沙丁,崩了一块。 铃印出来后,总体效果还算可以,就是笔画太细,印面太空。还要要用汉印刻才有味道,铭文的风格在方寸之间总是显得太瘦弱。暂且这样吧,命名为子虚栈印1.0版本。 下图是我今晚为了试验“栈印”的效果而写的几个字(来自王维的一篇不知名文章),一气呵成对于我这个铁小白而言实在困难,便用圆珠笔事先描了底稿(仔细观察组图边缘可以看到),虽然还是很丑,但似乎比以前好多了,最起码我不会随机得把某几个字放大1.5倍导致后面字没位置然后撕掉重写了。 按 自打去年十月开始玩篆刻后,就逐渐开始重视“草稿”,就是做事情之前的准备工作,把即将发生的事情预演一遍,好增加确定性,不让事情发展到无可挽回的地步。 这个观点没什么新鲜的,可以说又是老生常谈了,古人早几千年浅就说过“凡事预则立,不预则废”。但就是如此简单的思想,即便我一直也知道,甚至还在默默得用它来着,但就是近来才体会它的真谛而已。所谓“从认识到实践,再从实践到认识”的体验,大概也就是这样吧。 尽管我现在已经深有体会,但实践起来还是有困难的,其中重要的原因就是“懒”,比如最近一时兴起搞了播客——《虚言》,就第一期EP1做了点脚本外,EP2、MP1都是没有一点草稿,想到哪里就说到哪里。仔细想想,其实在EP1,我也不是完全按照脚本来说的,好一段议论都是脑瓜里崩出来的,我都没想到自己会想到这一点,啊,这或许就是“即兴”的魅力吧——知道大概的方向,但不按照轨迹,由着自己各种古怪的姿势,恣意地移动,最后回头看着歪七扭八但直达重点的脚印,一个人吃吃得笑着。 又按 最近尝试了篆刻的新风格——刻LOGO,这是一月份念头的具象化(另一个草稿)。真的很好玩,尤其是刻完后用马克笔简单涂一下,很像一个真正的logo,当把它放到印石里,有一种篆刻忽然顿时进步五百年迈入现代的感觉。 最后谨以此文祭奠不再活跃的“Firefish”项目。

2025/3/29
articleCard.readMore

MP1 不霁何虹

(00:09) Jump in the Line (Harry Belafonte) (03:58) Johnny Remember Me(John Leyton) (06:45)摇滚水帘洞 欢乐的花果山(许镜清) (08:15) 通天大道宽又阔(王上) (11:13) Dreaming(Mum Thinks Blue) (14:45) Feeling Good(Michael Bublé) var ap = new APlayer({ element: document.getElementById("aplayer-YTHNVoop"), narrow: false, autoplay: false, showlrc: false, music: { title: "MP1:不霁何虹: 相对欢快地踏上不那么欢快的旅途", author: "应律", url: "https://cloud.si-on.top/api/raw/?path=/Podcast/mp1.mp3", pic: "/images/Cover/podcast/mp1.jpg", lrc: "" } }); window.aplayers || (window.aplayers = []); window.aplayers.push(ap); Podcast订阅链接

2025/3/28
articleCard.readMore

EP2 AI应当辅助工具而不是替代工具

var ap = new APlayer({ element: document.getElementById("aplayer-SAaseVeg"), narrow: false, autoplay: false, showlrc: false, music: { title: "EP2:AI应当辅助工具而不是替代工具", author: "应律", url: "https://cloud.si-on.top/api/raw/?path=/Podcast/ep2.mp3", pic: "/images/Cover/podcast/ep2.png", lrc: "" } }); window.aplayers || (window.aplayers = []); window.aplayers.push(ap); I have been playing with a new term: “slop huckster” A slop huckster is more than someone who likes to play with generative AI, or has some arguments for why they’ve been able to use it productively. Slop hucksters argue that generative AI means you should stop doing creative and productive things, kind of likes to rub it in your face that they can make creative persuits useless. The attitudes of slop hucksters resemble incels, a kind destructive bitterness stemming fro m jealousy. Christine Lemmer-Webber: - social.coop 👉订阅《虚言》 https://blog.si-on.top/audio.xml/ Nothing Words虚言

2025/3/27
articleCard.readMore

EP1 表达

var ap = new APlayer({ element: document.getElementById("aplayer-JXbTYxhJ"), narrow: false, autoplay: false, showlrc: false, music: { title: "EP1:表达", author: "应律", url: "https://cloud.si-on.top/api/raw/?path=/Podcast/ep1_Expression.mp3", pic: "/images/Cover/podcast/ep1.png", lrc: "" } }); window.aplayers || (window.aplayers = []); window.aplayers.push(ap); 节目分段 (00:22) 关于《虚言》播客的定义 (00:24) 做播客的契机与定位 (01:40) 播客的技术构成、工具使用,关于免费、付费的讨论 (07:38) 播客与博客的小区别 (08:54) 关于表达、真正的表达,对待表达的态度 (17:58) 一段引用 (20:08) 结束与惬意口哨 播客试验项目介绍:老早老早老早以前就想做一个播客了,因为说话不怎么“利索”,主要是想练习练习表达力,今天把播客做出来了,作为ep1,就来分享分享经验。 此播客完全构建在Hexo博客上,相当与一个特殊的分类 播客的专用feed使用hexo-generator-multiple-podcast生成 播客的音频文件托管在Siondrive/Podcast:一个由onedrive-vercel-index项目制作的公开网盘 音频由红米Note12、黑莓Priv、NokiaE72等录制 音频剪辑采用山海若木工作室开发的Au音频编辑器(免费版) 封面由yft-design工具制作 所谓天性,乃得诸亶降之自然,不杂于威势,不染夫习惯。顾所谓自然,特不杂第二势力于其中而已,亦非最初、最稚之谓也。必也随其秉赋之奇,施以修缮之力。苟为吾性所固有,即当焕然充发,俾无所遗。循特奇之禀,而之于其极,不可奔向轨外,以求苟同。忿也、欲也、已也、私也,既为吾性之所涵,即当因势利导,致之于相当之域,俾各得其发泄致用之机不当惩之、窒之、克之、制之,使无可排泄之余地,而溢而横流也! 本期封面:嗔痴 Podcast订阅链接

2025/3/26
articleCard.readMore

甲戌

目录 文 春之怀古 来自EZFM节目《More to read》的选读,作者:张晓风[^1] 春天必然曾经是这样的:从绿意内敛的山头,一把雪再也撑不住了,噗嗤的一声,将冷面笑成花面,一首澌澌然的歌便从云端唱到山麓,从山麓唱到低低的荒村,唱入篱落,唱入一只小鸭的黄蹼,唱入软溶溶的春泥——软如一床新翻的棉被的春泥。 那样娇,那样敏感,却又那样混沌无涯。一声雷,可以无端地惹哭满天的云,一阵杜鹃啼,可以斗急了一城杜鹃花,一阵风起,每一棵柳都会吟出一则则白茫茫、虚飘飘说也说不清、听也听不清的飞絮,每一丝飞絮都是一株柳的分号。反正,春天就是这样不讲理,不逻辑,而仍可以好得让人心平气和的。 春天必然曾经是这样的:满塘叶黯花残的枯梗抵死苦守一截老根,北地里千宅万户的屋梁受尽风欺雪压犹自温柔地抱着一团小小的空虚的燕巢。然后,忽然有一天,桃花把所有的山村水廓都攻陷了。柳树把皇室的御沟和民间的江头都控制住了。春天有如旌旗鲜明的王师,因为长期虔诚的企盼祝祷而美丽起来。 而关于春天的名字,必然曾经有这样的一段故事:在《诗经》之前,在《尚书》之前,在仓颉造字之前,一只小羊在啮草时猛然感到的多汁,一个孩子放风筝时猛然感觉到的飞腾,一双患风痛的腿在猛然间感到舒适,千千万万双素手在溪畔在江畔浣纱时所猛然感到的水的血脉……当他们惊讶地奔走互告的时候,他们决定将嘴噘成吹口哨的形状,用一种愉快的耳语的声音来为这季节命名:“春”。 鸟又可以开始丈量天空了。有的负责丈量天的蓝度,有的负责丈量天的透明度,有的负责用那双翼丈量天的高度和深度。而所有的鸟全不是好的数学家,他们吱吱喳喳地算了又算,核了又核,终于还是不敢宣布统计数字。 至于所有的花,已交给蝴蝶去数。所有的蕊,交给蜜蜂去编册。所有的树,交给风去纵宠。而风,交给檐前的老风铃去一一记忆一一垂询。 春天必然曾经是这样,或者,在什么地方,它仍然是这样的吧?穿越烟囱与烟囱的黑森林,我想走访那踯躅在湮远年代中的春天。 Blue Dot Shared by @JohnBarentine@astrodon.social 35 years ago today, on its way out of the Solar System, the Voyager 1 spacecraft took one last look at the Earth. The resulting iconic view became known as the “Pale Blue Dot”. “Look again at that dot. That’s here. That’s home. That’s us. On it everyone you love, everyone you know, everyone you ever heard of, every human being who ever was, lived out their lives. The aggregate of our joy and suffering, thousands of confident religions, ideologies, and economic doctrines, every hunter and forager, every hero and coward, every creator and destroyer of civilization, every king and peasant, every young couple in love, every mother and father, hopeful child, inventor and explorer, every teacher of morals, every corrupt politician, every ‘superstar,’ every ‘supreme leader,’ every saint and sinner in the history of our species lived there — on a mote of dust suspended in a sunbeam.” 35💥fifteen and thirty-five Douglas Adams:“I’ve come up with a set of rules that describe our reactions to technologies,” Anything that is in the world when you’re born is normal and ordinary and is just a natural part of the way the world works. Anything that’s invented between when you’re fifteen and thirty-five is new and exciting and revolutionary and you can probably get a career in it. Anything invented after you’re thirty-five is against the natural order of things. 长难句分析:火狐到底出售不出售用户数据? By @neil@mastodon.neilzone.co.uk I need to clarify that I can’t tell you that I am not selling your data because legally I am selling your data because I am doing things that are not not selling your data which some people consider to be selling your data despite promising that I will never sell your data and I am not sure why you find this unclear and I still need that license to your content and I am very transparent and trustworthy. 这段讽刺Mozilla的话很有意思,下面有请Deepseek进行表演:“用考研英语长难句分析的格式分析一下这个长难句:…” 主干提取 主句: I need to clarify that… (“我需要澄清…”,主句核心) 嵌套从句结构: 宾语从句1: I can’t tell you that I am not selling your data (“我不能说我没有出售你的数据”) 原因状语从句1: because legally I am selling your data (“因为法律上我确实在出售”) 原因状语从句2: because I am doing things… (“因为我在做某些事情…”) 定语从句: that are not not selling your data (“这些事不算是没有出售你的数据”,双重否定表肯定) 非限制性定语从句: which some people consider to be selling your data (“而某些人认为这就是出售数据”) 让步状语从句: despite promising that I will never sell your data (“尽管我曾承诺永不出售”) 并列分句1: and I am not sure why you find this unclear (“我不明白你为何觉得这不清楚”) 并列分句2: and I still need that license to your content (“我仍需你内容的授权”) 并列分句3: and I am very transparent and trustworthy (“我非常透明且可信”) 词汇与语法难点 双重否定表肯定: - not not selling = selling (通过双重否定强调实际行为与字面否认的矛盾) 讽刺性用词: - transparent and trustworthy (在明显矛盾的语境下,暗示自我标榜的虚伪性) 嵌套逻辑链: - 主句通过多个 because 和 which 形成循环论证,体现说话者的诡辩逻辑。 翻译参考 直译: “我需要澄清,我不能说我没有出售你的数据,因为法律上我确实在出售你的数据,因为我在做的事情不算是没有出售你的数据(而有些人认为这就是出售数据),尽管我曾承诺永远不会出售你的数据,并且我不明白你为何觉得这不清楚,而我仍然需要你内容的授权,同时我本人非常透明且值得信任。” 意译: “我必须声明,我无法否认自己在出售你的数据,因为从法律角度这确实属于出售行为——毕竟我做的那些事很难说不是变相出售(尽管有人坚持认为这就是出售),即便我曾保证绝不会这么做。奇怪的是你居然对此感到困惑,不过你的内容授权我还是要拿走的,毕竟我一向以透明可信著称。” 该句通过 多层嵌套从句 和 语义悖论,构建了一个自我辩护的逻辑迷宫: 形式上:符合法律定义(legally selling) 实质上:违背道德承诺(despite promising…) 目的上:强行合理化矛盾(not not selling), 用复杂从句回避直接回答,模仿现实中企业规避责任的典型话术,最终暴露虚伪本质。 考研启示: 此类句子需重点识别 主干与修饰的分离、双重否定的真实含义,以及 作者态度词的反讽用法(如 transparent 的实际贬义色彩)。 其他 思 以下部分为那些既不值得作为嘟嘟消逝在时间线里,却又不值得作为文章写出来的念头。 劳动 🪴前几日新买的白掌到了,种好后才发现这花居然凑合得厉害——花瓣如同白化的叶子临时顶替,花蕊则分明是桑葚堂而皇之地换了个皮肤。尽管不华丽,没有水仙开花后那种惊艳的感觉,但在这初春时刻,米白加深绿的配色也自是可稍稍悦目下的。 摩挲摆弄着这绿植,绿影充斥视野,枝叶的张扬划过指尖,我忽然感触到:生命,这东西竟是能公开买卖,明码标价的! 从古至今,人类到底物质化了多少东西? 如果劳动可以创造价值,那劳动可以创造生命吗?价值可以创造生命吗?如果脱离了价值作为中间媒介,劳动又可以创造生命吗? 劳动创造价值吗? 实际上,我心理一直隐隐约约有一个刻板印象——运输业、市场经济是从更宏大的视角上来看是无意义的。既不生产物质实体,也不设计想法理念,分明一直处于疲于奔命,不知所终的路途中,是没有创造价值的。相声《新潮商人》是我心目中为数不多的上乘相声作品之一,里面将“捣爷儿”的形象刻画地无比传神——几辆吉普车、半盒发潮的烟在三人中来回倒腾,最终回到起点,三人一个个貌似都做了许多事情,但其实什么实事也没做,都在企图让别人着手去干,自己只是想捞点其中的蝇头小利。 然而当我从一些基本的劳动开始思考,我发觉,几乎所有的劳动都有类似的过程——物质运输,而他们似乎都没有创造价值。为什么这样说呢?我们就以最为简单的劳动——种庄稼为例 选种:挑选好的种子,将坏种子运输出去, 耕地:把土壤弄蓬松,挖垄铲沟,运输土壤来创造适合种子生长的环境 播种:将种子、肥料运输到地里 维护:将杂草、害虫运输出去 收割:将果壳从田里运输出去,再将果实从果壳里运输出去 售卖:将果实运输到需要的地方 这其中真正创造价值——果实的,究竟是劳动,还是老天?如果说是劳动,那么果实其实不需要劳动也能生长。如果说是老天,那么没有劳动果实是不可能顺利成熟的。 科幻剧集《common-side-effects》中Marshall跋山涉水,终于发现了世界上能治疗一切疾病的蓝蘑菇,这个劳动毫无疑问是创造了价值的。 科研人员想必是很爱好大自然的,他们从自然界的虫鱼鸟兽中得到启发,设计了蝙蝠算法、灰狼算法、蚁狮优化算法、鲸鱼优化算法、天牛须搜索算法、萤火虫算法、以及东华大学首次提出的麻雀算法,这些劳动毫无疑问也是创造了价值的。 因此,第三问的答案是——劳动不生产价值,只是物质的搬运工。物质的搬运不创造意义,但创造了价值。 (前两问涉及生物伦理,超出我认知范围,十年后或许有一天想明白了再回答吧。) 吾 这旬业余时间仍没有明确目标,仍在随意地叶公好龙。 玩MIDI键盘,搭配着附赠的DAW软件Ableton live 12 lite学,练习如下: var ap = new APlayer({ element: document.getElementById("aplayer-QnImOVzg"), narrow: false, autoplay: false, showlrc: false, music: { title: "玛丽有只小绵羊+跑火车", author: "秉蕳的练习", url: "https://cloud.si-on.top/api/raw/?path=/myworks/music/%E7%8E%9B%E4%B8%BD%E6%9C%89%E5%8F%AA%E5%B0%8F%E7%BB%B5%E7%BE%8A%2B%E8%B7%91%E7%81%AB%E8%BD%A6.wav", pic: "/images/avator/spotify.svg", lrc: "" } }); window.aplayers || (window.aplayers = []); window.aplayers.push(ap); var ap = new APlayer({ element: document.getElementById("aplayer-IQqOvDIC"), narrow: false, autoplay: false, showlrc: false, music: { title: "冰泉冷涩", author: "在读一期关于工作分析的《第一财经》时的秉蕳", url: "https://cloud.si-on.top/api/raw/?path=/myworks/music/%E5%86%B0%E6%B3%89%E5%86%B7%E6%B6%A9.wav", pic: "/images/avator/spotify.svg", lrc: "" } }); window.aplayers || (window.aplayers = []); window.aplayers.push(ap); var ap = new APlayer({ element: document.getElementById("aplayer-pZeBrDYI"), narrow: false, autoplay: false, showlrc: false, music: { title: "摇滚红星", author: "秉蕳", url: "https://cloud.si-on.top/api/raw/?path=/myworks/music/%E7%BA%A2%E6%98%9F%E6%AD%8C.wav", pic: "/images/avator/spotify.svg", lrc: "" } }); window.aplayers || (window.aplayers = []); window.aplayers.push(ap); 刻章——《人生一梦》(仿) 上周去西湖,特意到西冷转了一圈,仔仔细细看了真古印,最后结论——真就是刻刀划拉几下而已,没什么难的。 涂鸦——《爱时进趣》 学习机器学习:工作之余,找点正经东西学学。 下旬计划: 同Y君小聚 完成机器学习《算法篇》学习 推进《工具》进度,最起码两页草稿 一方朱文、一方白文印 作一首流行曲的Remix 监督舍妹完成手工/绘画任务

2025/3/6
articleCard.readMore