
《网络系统集成技术》PPT课件.ppt
40页网络系统集成技术管理交换网络中的冗余链路第四章 本章内容理论部分理论部分生成树协议和链路聚合技术的提出网络中单链路存在的问题冗余链路出现的问题生成树协议原理快速生成树协议链路聚合技术实践部分实践部分配置生成树协议和快速生成树协议配置链路聚合网络中单链路存在的问题网络中单链路存在的问题————单点故障单点故障网络中的单点故障可导致网络的无法访问如何解决此类问题?在网络中提供冗余链路故障生成树协议和链路聚合技术的提出线路带宽不够线路带宽不够线路带宽不够线路带宽不够数据传输的瓶颈数据传输的瓶颈数据传输的瓶颈数据传输的瓶颈生成树协议和链路聚合技术的提出网络中单链路存在的问题网络中单链路存在的问题————数据传输的瓶颈数据传输的瓶颈如何解决此类问题?在网络中提供冗余链路交换网络中的冗余链路交换网络中的冗余链路在网络中提供冗余链路解决单点故障问题故障生成树协议和链路聚合技术的提出增加线路带宽增加线路带宽增加线路带宽增加线路带宽生成树协议和链路聚合技术的提出交换网络中的冗余链路交换网络中的冗余链路在网络中提供冗余链路解决数据传输的瓶颈问题发送一个广播帧发送一个广播帧广播风暴广播风暴生成树协议和链路聚合技术的提出冗余链路出现的问题冗余链路出现的问题——环路环路当交换网络中出现环路会产生广播风暴和MAC地址表不稳定等现象,严重影响网络正常运行。
Switch APC1F0/3F0/5PC1在我在我的的F0/3口口PC1在我在我的的F0/5口口去往去往PC1的帧的帧去往去往PC1的帧的帧生成树协议和链路聚合技术的提出主要链路正常时,断主要链路正常时,断主要链路正常时,断主要链路正常时,断开备份链路开备份链路开备份链路开备份链路主要链路出故障时主要链路出故障时主要链路出故障时主要链路出故障时, , , ,自自自自动启用备份链路动启用备份链路动启用备份链路动启用备份链路生成树协议和链路聚合技术的提出环路问题的解决(临时关闭一条链路)环路问题的解决(临时关闭一条链路)生成树协议原理生成树协议概述生成树协议概述生成树协议(spanning-tree protocol)由IEEE 802.1d标准定义生成树协议的作用是为了提供冗余链路,解决网络环路问题生成树协议通过SPA(生成树算法)生成一个没有环路的网络,当主要链路出现故障时,能够自动切换到备份链路,保证网络的正常通信生成树协议原理生成树算法原理生成树算法原理 生成树算法利用了一个来自图论的基本结论;对于那些由许多节点以及连接节点的边组成的连通图,存在一棵“生成树”,它保证了图的连通性,同时又没有一个闭合环。
a) 带环图(b) 对应的生成树生成树协议原理生成树协议基本思想生成树协议基本思想 交换机之间通过交换网桥协议数据单元(BPDU)理解彼此的存在生成树算法利用BPDU中的信息来消除冗余链路BPDU包含足够的信息做以下工作:包含足够的信息做以下工作:从网络中的所有网桥中,选出一个作为根网桥(从网络中的所有网桥中,选出一个作为根网桥(RootRoot))计算本网桥到根网桥的最短路径计算本网桥到根网桥的最短路径对每个对每个LANLAN,选出离根桥最近的那个网桥作为指定网桥,负责所,选出离根桥最近的那个网桥作为指定网桥,负责所在在LANLAN上的数据转发上的数据转发网桥选择一个根端口,该端口给出的路径是此网桥到根桥的最佳网桥选择一个根端口,该端口给出的路径是此网桥到根桥的最佳路径路径选择除根端口之外的包含于生成树上的端口(指定端口)选择除根端口之外的包含于生成树上的端口(指定端口)BPDU(网桥协议数据单元) Root ID: 根交换机根交换机根交换机根交换机 ID IDCost of Path::到达根的路径开销到达根的路径开销到达根的路径开销到达根的路径开销Maximum Time: 当一段时间未收到任何当一段时间未收到任何当一段时间未收到任何当一段时间未收到任何BPDUBPDUBPDUBPDU,生存,生存,生存,生存期达到期达到期达到期达到Max AgeMax AgeMax AgeMax Age时,网桥则认为该端口连接的链路发生时,网桥则认为该端口连接的链路发生时,网桥则认为该端口连接的链路发生时,网桥则认为该端口连接的链路发生故障。
默认故障默认故障默认故障默认20202020秒秒秒秒Hello Time: 发送发送发送发送BPDUBPDUBPDUBPDU的周期的周期的周期的周期, , , ,默认默认默认默认2 2 2 2秒秒秒秒Port ID: 发送发送发送发送BPDUBPDU的端口的端口的端口的端口ID=ID=端口优先级端口优先级端口优先级端口优先级+ +端口编号端口编号端口编号端口编号Bridge ID::交换机交换机交换机交换机ID=ID=交换机优先级交换机优先级交换机优先级交换机优先级+ +交换机交换机交换机交换机MACMAC地址地址地址地址生成树协议原理生成树协议避免环路生成树协议避免环路--BPDU --BPDU 的机制的机制1.网络中选择了一个交换机为根交换机(Root Bridge);2.除根交换机外的每个交换机都有一个根口(Root Port),即提供最短路径到Root Bridge的端口;3.每个交换机都计算出了到根交换机(Root Bridge)的最短路径;4.每个LAN都有了指定交换机(Designated Bridge),位于该LAN与根交换机之间的最短路径中指定交换机和LAN相连的端口称为指定端口(Designated port);5.根口(Root port)和指定端口(Designated port)进入转发Forwarding状态;其他的冗余端口就处于阻塞状态。
生成树协议如何避免环路生成树协议如何避免环路交换网络中所有交换机共同选举一台设备为根交换机(Root Bridge)switchAswitchCswitchBA A为根交换机为根交换机生成树协议原理生成树协议如何避免环路生成树协议如何避免环路所有非根交换机选择一条到达根交换机的最短路径生成树协议原理switchAswitchCswitchBA A为根交换机为根交换机此为最短路径此为最短路径此为最短路径此为最短路径生成树协议如何避免环路生成树协议如何避免环路所有非根交换机产生一个到达根交换机的端口—根端口(Root Port)生成树协议原理switchAswitchCswitchBA A为根交换机为根交换机根端口根端口根端口根端口switchAswitchCswitchB指定端口指定端口指定端口指定端口A A为根交换机为根交换机根端口根端口根端口根端口生成树协议原理生成树协议如何避免环路生成树协议如何避免环路每个LAN都会选择一台设备为指定交换机,通过该设备的端口连接到根,该端口为指定端口switchAswitchCswitchBA A为根交换机为根交换机RPRPDPDP生成树协议原理生成树协议如何避免环路生成树协议如何避免环路将交换网络中所有设备的根端口(RP)和指定端口(DP)设为转发状态(Forwarding),将其他端口设为阻塞状态(Blocking)生成树协议原理根交换机的选择原则:根交换机的选择原则:所有交换机首先认为自己是根全网选举Bridge ID最小的交换机为根交换机Bridge ID:每个交换机唯一的桥ID,由交换机优先级和Mac地址组合而成交换机优先级和Mac地址越小则Bridge ID就越小默认优先级为32768生成树协议原理最短路径选择最短路径选择1、比较开销选择路径比较本交换机到达根交换机路径的开销,选择开销最小的路径带宽带宽IEEE802.1dIEEE802.1dIEEE802.1tIEEE802.1t10Mbps1002000000100Mbps192000001000Mbps42000010Gbps12000生成树协议原理最短路径选择最短路径选择1、比较开销选择路径比较本交换机到达根交换机路径的开销,选择开销最小的路径假设假设SwASwA为根交换机,通过比较开销,选择为根交换机,通过比较开销,选择E->D->AE->D->A为最短路径为最短路径1191919SwBSwASwCSwDSwE1001938100生成树协议原理最短路径选择最短路径选择2、通过Bridge ID选择最短路径 如果路径开销相同,则比较发送BPDU交换机的Bridge IDMac:00d0f80000f1Sw CSw BSw DSw ARoot BridgeMac:00d0f80000f2生成树协议原理最短路径选择最短路径选择3、比较发送者port ID选择最短路径如果发送者Bridge ID相同,即同一台交换,则比较发 送者交换机的port IDPort ID:端口信息由1字节端口优先级和1字节端口ID组成Port ID默认优先级为128Mac:00d0f80000f1Sw CSw BSw DSw AMac:00d0f80000d1f0/1f0/2Root Bridge生成树协议原理最短路径选择最短路径选择4、比较接收者的Port ID如不同链路发送者的Bridge ID一致(即同一台交换机),那比较接收者的Port ID7 Mac:00d0f80000f16 1 2Sw CSw BSw DSw AHUBMac:00d0f80000d18Root Bridge生成树协议原理生成树端口的四种状态生成树端口的四种状态Blocking 接收BPDU,不学习MAC地址,不转发数据帧Listening 接收BPDU,不学习MAC地址,不转发数据帧,但交换机向其他交换机通告该端口,参与选举根端口或指定端口Learning接收BPDU,学习MAC地址,不转发数据帧Forwarding正常转发数据帧生成树协议原理BlockListeninglearningForwarding20秒最大生存时间秒最大生存时间15秒转发延时秒转发延时15秒转发延时秒转发延时 生成树经过一段时间(默认值是生成树经过一段时间(默认值是5050秒左右)稳定之后,秒左右)稳定之后,所有端口要么进入转发状态,要么进入阻塞状态。
所有端口要么进入转发状态,要么进入阻塞状态 拓扑改变通知消息拓扑改变通知消息拓扑改变通知消息拓扑改变通知消息拓扑改变应答消息拓扑改变应答消息拓扑改变应答消息拓扑改变应答消息拓扑改变消息拓扑改变消息拓扑改变消息拓扑改变消息1 13 32 25 55 56 66 6在一个大中型网络中要等整个网络拓朴稳定为一个树型在一个大中型网络中要等整个网络拓朴稳定为一个树型结构就大约需要结构就大约需要50 50 秒,这样的时间是无法忍受的!秒,这样的时间是无法忍受的!4 4ROOT生成树协议原理拓扑变化机制拓扑变化机制快速生成树协议RSTP(Rapid Spannning Tree Protocol)由 IEEE 802.1w 标准定义,快速生成树具备生成树的所有功能;RSTP协议在STP协议基础上做了改进,使得收敛速度快得多(最快1秒以内)快速生成树协议链路聚合技术 链路聚合(又称为端口聚合链路聚合(又称为端口聚合) ),,将交换机上的多个端口将交换机上的多个端口在物理上连接起来,在逻辑上捆绑在一起,形成一个拥有较在物理上连接起来,在逻辑上捆绑在一起,形成一个拥有较大宽带的端口,可以实现负载分担,并提供冗余链路。
大宽带的端口,可以实现负载分担,并提供冗余链路链路聚合技术IEEE802.3adIEEE802.3ad定义了以太网端口聚合的标准定义了以太网端口聚合的标准注意:注意: 锐捷交换机最多支持8个物理端口组成一个聚合端口组 不同设备支持的最多聚合端口组不定如S2126G支持6组链路聚合技术链路聚合的流量平衡:链路聚合的流量平衡:Aggregate port(AG)可以根据报文的源MAC地址、目的MAC地址或IP地址进行流量平衡,即把流量平均地分配到AG组成员链路中去源源MAC流量分配流量分配目的目的MAC流量分配流量分配生成树协议的配置开启生成树协议开启生成树协议Switch(config)# Spanning-tree关闭生成树协议关闭生成树协议Switch(config)# no Spanning-tree配置生成树协议的类型配置生成树协议的类型Switch(config)# Spanning-tree mode stp/rstp锐捷全系列交换机默认使用MSTP协议生成树协议的配置配置交换机优先级配置交换机优先级Switch(config)# spanning-tree priority <0-61440> (“0”或“4096”的倍数、共16个、缺省32768)恢复到缺省值恢复到缺省值Switch(config)# nospanning-tree priority配置交换机端口的优先级配置交换机端口的优先级Switch(config)#interface interface-type interface-numberSwitch(config-if)#spanning-tree port-priority number<0-240> (“0”或“16”的倍数、共16个、缺省128) 如果要恢复到缺省值,可用 no spanning-tree port-priority接口配置命令进行设置。
Spanning Tree Spanning Tree 的缺省配置:的缺省配置:关闭STPSTP Priority 是32768STP port Priority 是128STP port cost 根据端口速率自动判断Hello Time 2秒Forward-delay Time 15秒Max-age Time 20秒可通过spanning-tree reset 命令让spanning tree参数恢复到缺省配置生成树协议的配置查看生成树协议配置显示生成树状态显示生成树状态Switch# show spanning-tree显示端口生成树协议的状态显示端口生成树协议的状态Switch# show spanning-tree interface fastethernet <0-2/1-24>配置聚合端口(aggregate port,AP) 将接口加入一个将接口加入一个APAPSwitch(config) # interface interface-type interface-id Switch(config-if-range)# port-group port-group-number如果这个如果这个APAP不存在,可自动创建不存在,可自动创建AGAG端口端口查看端口聚合的配置查看聚合端口的汇总信息查看聚合端口的汇总信息Switch# show aggregateport summary查看聚合端口的流量平衡方式查看聚合端口的流量平衡方式Switch# show aggregateport load-balance配置聚合端口的注意事项链路聚合的注意事项链路聚合的注意事项组端口的速度必须一致组端口必须属于同一个VLAN组端口使用的传输介质相同组端口必须属于同一层次,并与AP也要在同一层次WkShPdMaJ7F4C1z)w&s!pYmUjRgOcL9H6E3B+y(v%r#oWlTiQeNbK8G5D1A-x*t$qZnVkSgPdMaI7F4C0z)w&s!pXmUjRfOcL9H6E2B+y(u%r#oWlThQeNbJ8G5D1A-w*t$qYnVkSgPdLaI7F3C0z)v&s#pXmUiRfOcK9H5E2B+x(u%rZoWlThQeMbJ8G4D1A-w*t!qYnVjSgPdLaI6F3C0y)v&s#pXlUiRfNcK9H5E2A+x(u$rZoWkThPeMbJ7G4D1z-w&t!qYmVjSgOdL9I6F3B0y)v%s#pXlUiQfNcK8H5E2A+x*u$rZnWkThPeMaJ7G4C1z-w&t!pYmVjRgOdL9I6E3B0y(v%s#oXlTiQfNbK8H5D2A-WkShPdMaJ7F4C1z)w&s!pYmUjRgOcL9H6E3B+y(v%r#oWlTiQeNbK8G5D1A-x*t$qZnVkSgPdMaI7F4C0z)w&s!pXmUjRfOcL9H6E2B+y(u%r#oWlThQeNbJ8G5D1A-w*t$qYnVkSgPdLaI7F3C0z)v&s#pXmUiRfOcK9H5E2B+x(u%rZoWlThQeMbJ8G4D1A-w*t!qYnVjSgPdLaI6F3C0y)v&s#pXlUiRfNcK9H5E2A+x(u$rZoWkThPeMbJ7G4D1z-w&t!qYmVjSgOdL9I6F3B0y)v%s#pXlUiQfNcK8H5E2A+x*u$rZnWkThPeMaJ7G4C1z-w&t!pYmVjRgOdL9I6E3B0y(v%s#oXlTiQfNbK8H5D2A-x*u$qZnWkShPeMaJ7F4C1z)w&t!pYmUjRgOcL9I6E3B+y(v%r#oXlTiQeNbK8G5D2A-x*t$qZnVkShPdMaI7F4C0z)w&s!pXmUjRfOcL9H6E3B+y(qZnWTiQeNbK8G5D1A-x*t$qZnVkShPdMaI7F4C0z)w&s!pXmUjRfOcL9H6E2B+y(u%r#oWlThQeNbJ8G5D1A-w*t$qYnVkSgPdLaI7F3C0z)v&s#pXmUiRfOcK9H5E2B+x(u%rZoWlThQeMbJ8G4D1A-w*t!qYnVjSgPdLaI6F3C0y)v&s#pXlUiRfNcK9H5E2A+x(u$rZoWkThPeMbJ7G4D1z-w&t!qYmVjSgOdLaI6Fx(ufNcK9H5E2A+x(u$rZoWkThPeMbJ7G4D1z-x*u$qZnWkShPeMaJ7F4C1z)w&t!pYmUjRgOcL9I6E3B+y(v%r#oXlTiQeNbK8G5D2A-x*t$qZnVkShPdMaI7F4C0z)w&s!pXmUjRfOcL9H6E3B+y(qZnWTiQeNbK8G5D1A-x*t$qZnVkShPdMaI7F4C0z)w&s!pXmUjRfOcL9H6E2B+y(u%r#oWlThQeNbJ8G5D1A-w*t$qYnVkSgPdLaI7F3C0z)v&s#pXmUiRfOcK9H5E2B+x(u%rZoWlThQeMbJ8G4D1A-w*t!qYnVjSgPdLaI6F3C0y)v&s#pXlUiRfNcK9H5E2A+x(u$rZoWkThPeMbJ7G4D1z-w&t!qYmVjSgOdLaI6Fx(ufNcK9H5E2A+x(u$rZoWkThPeMbJ7G4D1z-w&t!qYmVjSgOdLaI6F3B0y)v%s#pXlUiQfNcK8H5E2A+x*u$rZnWkThPeMaJ7G4C1z-w&t!pYmVjRgOdL9I6E3B0y(v%s#oXlTiQfNbK8H5D2A-x*u$qZnWkShPeMaJ7F4C1z)w&t!pYmUjRgOcL9I6E3B+y(v%r#oXlTiQeNbK8G5D2A-x*t$qZnVkShPdMaI7F4C0z)w&s!pXmUjRfOcL9H6E3B+y(u%r#oWlTiQeNbJ8G5D1A-x*t$qYnVkSgPdMaI7F3C0z)v&s!pXmUiRfOcK9H6E2B+x(u%rZoWlThQeMbJ8G4D1A-w*t$qYnVjSgPdLaI7F3C0y)v&s#pXmUiRfNcK9H5E2B+x(u$rZoWkThQeMbJ7G4D1z-w&t!qYmVjSgOdLaI6F3B0y)v%s#pXlUiQfNcK8H5E2A+x*u$rZnWkThPeMaJ7G4C1z-w&t!pYmVjRgOdL9I6E3B0y(v%s#oXlTiQfNbK8H5D2A-x*u$qZnWkShPeMaJ7F4C1z)w&t!pYmUjRgOcL9I6E3B+y(v%r#oXlTiQeNbK8G5D2A-x*t$qZnVkShPdMaI7F4C0z)w&s!pXmUjRfOcL9H6E3B+y(u%r#oWlTiQeNbJ8G5D1A-x*t$qYnVkSgPdMaI7F3C0z)v&s!pXmUiRfOcK9H6E2B+x(u%rZoWlThQeMbJ8G4D1A-w*t$qYnVjSgPdLaI7F3C0y)v&s#pXmUiRfNcK9H5E2B+x(u$rZoWkThQeMbJ7G4D1z-w*t!qYmVjSgOdLaI6F3B0y)v%s#pXlUiQfNcK8H5E2A+x(u$rZnWkThPeMbJ7G4C1z-w&t!qYmVjRgOdL92B+x(u$rZoWkThQeMbJ7G4D1z-w*t!qYmVjSgOdLaI6F3C0y)v%s#pXlUiRfNcK8H5E2A+x(u$rZnWkThPeMbJ7G4C1z-w&t!qYmVjRgOdL9I6F3B0y(v%s#oXlUiQfNbK8H5D2A+x*u$qZnWkShPeMaJ7G4C1z)w&t!pYmVjRgOcL9I6E3B0y(v%r#oXlTiQfNbK8G5D2A-x*u$qZnVkShPdMaJ7F4C0z)w&s!pYmUjRfOcL9H6E3B+y(v%r#oWlTiQeNbK8G5D1A-w*t!qYmVjSgOdLaI6F3B0y)v%s#pXlUiQfNcK8H5E2A+x(u$rZnWkThPeMbJ7G4C1z-w&t!qYmVjRgOdL92B+x(u$rZoWkThQeMbJ7G4D1z-w*t!qYmVjSgOdLaI6F3C0y)v%s#pXlUiRfNcK8H5E2A+x(u$rZnWkThPeMbJ7G4C1z-w&t!qYmVjRgOdL9I6F3B0y(v%s#oXlUiQfNbK8H5D2A+x*u$qZnWkShPeMaJ7G4C1z)w&t!pYmVjRgOcL9I6E3B0y(v%r#oXlTiQfNbK8G5D2A-x*u$qZnVkShPdMaJ7F4C0z)w&s!pYmUjRfOcL9H6E3B+y(v%r#oWlTiQeNbK8G5D1A-x*t$qZnVkSgPdMaI7F4C0z)v&s!pXmUjRfOcK9H6E2B+y(u%rZoWlThQeNbF4C0z)w&s!pYmUjRgOcL9H6E3B+y(v%r#oWlTiQeNbK8G5D1A-x*t$qZnVkSgPdMaI7F4C0z)v&s!pXmUjRfOcK9H6E2B+y(u%rZoWlThQeNbJ8G5D1A-w*t$qYnVkSgPdLaI7F3C0z)v&s#pXmUiRfOcK9H5E2B+x(u%rZoWkThQeMbJ8G4D1z-w*t!qYnVjSgOdLaI6F3C0y)v&s#pXlUiRfNcK9H5E2A+x(u$rZoWkThPeMbJ7G4D1z-w&t!qYmVjSgOdL9I6F3B0y)v%s#oXlUiQfNcK8H5D2A+x*u$rZnWkShPeMaJ7G4C1z-w&t!pYmVjRgOdL9I6E3B0y(v%s#oXlTiQfNbK8H5D2A-x*t$qZnVkSgPdMaI7F4C0z)v&s!pXmUjRfOcK9H6E2B+y(u%rZoWlThQeNbF4C0z)w&s!pYmUjRgOcL9H6E3B+y(v%r#oWlTiQeNbK8G5D1A-x*t$qZnVkSgPdMaI7F4C0z)v&s!pXmUjRfOcK9H6E2B+y(u%rZoWlThQeNbJ8G5D1A-w*t$qYnVkSgPdLaI7F3C0z)v&s#pXmUiRfOcK9H5E2B+x(u%rZoWkThQeMbJ8G4D1z-w*t!qYnVjSgOdLaI6F3C0y)v&s#pXlUiRfNcK9H5E2A+x(u$rZoWkThPeMbJ7G4D1z-w&t!qYmVjSgOdL9I6F3B0y)v%s#oXlUiQfNcK8H5D2A+x*u$rZnWkShPeMaJ7G4C1z-w&t!pYmVjRgOdL9I6E3B0y(v%s#oXlTiQfNbK8H5D2A-x*u$qZnWkShPdMaJ7F4C1z)w&s!pYmUjRgOcL9H6E3B+y(v%r#oXlTeMaJ7G4C1z-w&t!pYmVjRgOdL9I6E3B0y(v%s#oXlTiQfNbK8H5D2A-x*u$qZnWkShPdMaJ7F4C1z)w&s!pYmUjRgOcL9I6E3B+y(v%r#oXlTiQeNbK8G5D2A-x*t$qZnVkShPdMaI7F4C0z)w&s!pXmUjRfOcL9H6E2B+y(u%r#oWlThQeNbJ8G5D1A-x*t$qYnVkSgPdMaI7F3C0z)v&s!pXmUiRfOcK9H6E2B+x(u%rZoWlThQeMbJ8G4D1A-w*t!qYnVjSgPdLaI6F3C0y)v&s#pXmeNbJ8G5D1A-x*t$qYnVkSgPdMaI7F3C0z)v&s!pXmUiRfOcK9H6E2B+x(u%rZoWlThQeMbJ8G4D1A-x*u$qZnWkShPdMaJ7F4C1z)w&s!pYmUjRgOcL9H6E3B+y(v%r#oXlTeMaJ7G4C1z-w&t!pYmVjRgOdL9I6E3B0y(v%s#oXlTiQfNbK8H5D2A-x*u$qZnWkShPdMaJ7F4C1z)w&s!pYmUjRgOcL9I6E3B+y(v%r#oXlTiQeNbK8G5D2A-x*t$qZnVkShPdMaI7F4C0z)w&s!pXmUjRfOcL9H6E2B+y(u%r#oWlThQeNbJ8G5D1A-x*t$qYnVkSgPdMaI7F3C0z)v&s!pXmUiRfOcK9H6E2B+x(u%rZoWlThQeMbJ8G4D1A-w*t!qYnVjSgPdLaI6F3C0y)v&s#pXmeNbJ8G5D1A-x*t$qYnVkSgPdMaI7F3C0z)v&s!pXmUiRfOcK9H6E2B+x(u%rZoWlThQeMbJ8G4D1A-w*t!qYnVjSgPdLaI7F3C0y)v&s#pXmUiRfNcK9H5E2B+x(u$rZoWkThQeMbJ7G4D1z-w*t!qYmVjSgOdLaI6F3B0y)v%s#pXlUiQfNcK8H5E2A+x(u$rZnWkThPeMbJ7G4C1z-w&t!qYmVjRgO9H5E2B+x(u$rZoWkThQeMbJ7G4D1z-w*t!qYmVjSgOdLaI6F3B0y)v%s#pXlUiRfNcK8H5E2A+x(u$rZnWkThPeMbJ7G4C1z-w&t!qYmVjRgOdL9I6F3B0y(v%s#oXlUiQfNbK8H5D2A+x*u$qZnWkShPeMaJ7G4C1z)w&t!pYmVjRgOcL9I6E3B0y(v%r#oXlTiQfNbK8G5D2A-w*t!qYnVjSgPdLaI7F3C0y)v&s#pXmUiRfNcK9H5E2B+x(u$rZoWkThQeMbJ7G4D1z-w*t!qYmVjSgOdLaI6F3B0y)v%s#pXlUiQfNcK8H5E2A+x(u$rZnWkThPeMbJ7G4C1z-w&t!qYmVjRgO9H5E2B+x(u$rZoWkThQeMbJ7G4D1z-w*t!qYmVjSgOdLaI6F3B0y)v%s#pXlUiRfNcK8H5E2A+x(u$rZnWkThPeMbJ7G4C1z-w&t!qYmVjRgOdL9I6F3B0y(v%s#oXlUiQfNbK8H5D2A+x*u$qZnWkShPeMaJ7G4C1z)w&t!pYmVjRgOcL9I6E3B0y(v%r#oXlTiQfNbK8G5D2A-x*u$qZnVkShPdMaJ7F4C0nVkSgPdMaI7F4C0z)v&s!pXmUjRfOcK9H6E2B+y(u%rZoWlThQeNbJ8G4D1A-w*t$qYnVjSgPdLaI7F3C0y)v&s#pXmUiRfNcK9H5E2B+x(u$rZoWkThQeM7F4C0z)v&s!pXmUjRfOcK9H6E2B+y(u%rZoWlThQeNbJ8G4D1A-w*t$qYnVjSgPdLaI7F3C0y)v&s#pXmUiRfOcK9H5E2B+x(u%rZoWkThQeMbJ8G4D1z-w*t!qYnVjSgOdLaI6F3C0y)v%s#pXlUiRfNcK8H5E2A+x(u$rZnWkThPeMbJ7G4C1z-x*u$qZnVkShPdMaJ7F4C0nVkSgPdMaI7F4C0z)v&s!pXmUjRfOcK9H6E2B+y(u%rZoWlThQeNbJ8G4D1A-w*t$qYnVjSgPdLaI7F3C0y)v&s#pXmUiRfNcK9H5E2B+x(u$rZoWkThQeM7F4C0z)v&s!pXmUjRfOcK9H6E2B+y(u%rZoWlThQeNbJ8G4D1A-w*t$qYnVjSgPdLaI7F3C0y)v&s#pXmUiRfOcK9H5E2B+x(u%rZoWkThQeMbJ8G4D1z-w*t!qYnVjSgOdLaI6F3C0y)v%s#pXlUiRfNcK8H5E2A+x(u$rZnWkThPeMbJ7G4C1z-w&t!qYmVjSgOdL9I6F3B0y)v%s#oXlUiQfNcK8H5D2A+x*u$rZnWkShPeMaJ7G4C1z)w&t!pYmVjRcK8H5E2A+x(u$rZoWkThPeMbJ7G4D1z-w&t!qYmVjSgOdL9I6F3B0y)v%s#oXlUiQfNcK8H5D2A+x*u$rZnWkShPeMaJ7G4C1z)w&t!pYmVjRgOcL9I6E3B0y(v%s#oXlTiQfNbK8H5D2A-x*u$qZnWkShPdMaJ7F4C1z)w&s!pYmUjRgOcL9H6E3B+y(v%r#oWlTiQeNbK8G5D1A-x*t$qZnVkShPdMaI7F4C0z)w&s!pXmUjRfOcL9H6E2B+y(u%r#oWlThQeNbJ8G5D1A-w&t!qYmVjSgOdL9I6F3B0y)v%s#oXlUiQfNcK8H5D2A+x*u$rZnWkShPeMaJ7G4C1z)w&t!pYmVjRcK8H5E2A+x(u$rZoWkThPeMbJ7G4D1z-w&t!qYmVjSgOdL9I6F3B0y)v%s#oXlUiQfNcK8H5D2A+x*u$rZnWkShPeMaJ7G4C1z)w&t!pYmVjRgOcL9I6E3B0y(v%s#oXlTiQfNbK8H5D2A-x*u$qZnWkShPdMaJ7F4C1z)w&s!pYmUjRgOcL9H6E3B+y(v%r#oWlTiQeNbK8G5D1A-x*t$qZnVkShPdMaI7F4C0z)w&s!pXmUjRfOcL9H6E2B+y(u%r#oWlThQeNbJ8G5D1A-w*t$qYnVkSgPdLaI7F3C0z)v&s#pXmUiRfOcK9H6E2*t$qZnVkShPdMaI7F4C0z)w&s!pXmUjRfOcL9H6E2B+y(u%r#oWlThQeNbJ8G5D1A-w*t$qYnVkSgPdLaI7F3C0z)v&s!pXmUiRfOcK9H6E2B+x(u%rZoWlThQeMbJ8G4D1A-w*t!qYnVjSgPdLaI6F3C0y)v&s#pXlUiRfNcK9H5E2A+x(u$rZoWkThQeMbJ7G4D1z-w*t!qYmVjSgOdLaI6F3B0y)v%s#pXlUiQfNcK8H5E2A+x*u$rZnWkThPeMaJ7G4y)v&s#pXlUiRfNcK9H5E2B+x(u$rZoWkThQeMbJ7G4D1z-w*t!qYmVjSgOdLaI6F3B0y)v%s#pXlUiQfNcK8H5E2A+x*u$rZnWkThPeMaJ7G4C1z-w*t$qYnVkSgPdLaI7F3C0z)v&s#pXmUiRfOcK9H6E2*t$qZnVkShPdMaI7F4C0z)w&s!pXmUjRfOcL9H6E2B+y(u%r#oWlThQeNbJ8G5D1A-w*t$qYnVkSgPdLaI7F3C0z)v&s!pXmUiRfOcK9H6E2B+x(u%rZoWlThQeMbJ8G4D1A-w*t!qYnVjSgPdLaI6F3C0y)v&s#pXlUiRfNcK9H5E2A+x(u$rZoWkThQeMbJ7G4D1z-w*t!qYmVjSgOdLaI6F3B0y)v%s#pXlUiQfNcK8H5E2A+x*u$rZnWkThPeMaJ7G4y)v&s#pXlUiRfNcK9H5E2B+x(u$rZoWkThQeMbJ7G4D1z-w*t!qYmVjSgOdLaI6F3B0y)v%s#pXlUiQfNcK8H5E2A+x*u$rZnWkThPeMaJ7G4C1z-w&t!qYmVjRgOdL9I6F3B0y(v%s#oXlUiQfNbK8H5D2A+x*u$qZnWkShPeMaJ7F4C1z)w&t!pYmUjRgOcL9I6E3B+y(v%r#oXlTiQeNbK8G5D2A-x*u$qZnVkShPdMaJ7F4C0z)w&s!pYmUjRfOcL9H6E3B+y(u%r#oWlTiQeNbJ8G5D1A-x*t$qYnVOcL9I6E3B0y(v%r#oXlTiQfNbK8G5D2A-x*u$qZnVkShPdMaJ7F4C0z)w&s!pYmUjRfOcL9H6E3B+y(u%r#oWlTiQeNbJ8G5D1A-x*t$qZnVkSgPdMaI7F4C0z)v&s!pXmUjRfOcK9H6E2B+y(u%rZoWhPdMaJ7F4C0z)w&s!pYmUjRfOcL9H6E3B+y(u%r#oWlTiQeNbK8G5D1A-w&t!qYmVjRgOdL9I6F3B0y(v%s#oXlUiQfNbK8H5D2A+x*u$qZnWkShPeMaJ7F4C1z)w&t!pYmUjRgOcL9I6E3B+y(v%r#oXlTiQeNbK8G5D2A-x*u$qZnVkShPdMaJ7F4C0z)w&s!pYmUjRfOcL9H6E3B+y(u%r#oWlTiQeNbJ8G5D1A-x*t$qYnVOcL9I6E3B0y(v%r#oXlTiQfNbK8G5D2A-x*u$qZnVkShPdMaJ7F4C0z)w&s!pYmUjRfOcL9H6E3B+y(u%r#oWlTiQeNbJ8G5D1A-x*t$qZnVkSgPdMaI7F4C0z)v&s!pXmUjRfOcK9H6E2B+y(u%rZoWhPdMaJ7F4C0z)w&s!pYmUjRfOcL9H6E3B+y(u%r#oWlTiQeNbK8G5D1A-x*t$qZnVkSgPdMaI7F4C0z)v&s!pXmUjRfOcK9H6E2B+y(u%rZoWlThQeNbJ8G4D1A-wpYmUjRfOcL9H6E3B+y(v%r#oWlTiQeNbK8G5D1A-x*t$qZnVkSgPdMaI7F4C0z)v&s!pXmUjRfOcK9H6E2B+y(u%rZoWlThQeNbJ8G4D1A-w*t$qYnVkSgPdLaI7F3C0z)v&s#p#pXmUiRfOcK9H5E2B+x(u%rZoWkThQeMbJ8G4D1z-w*t!qYnVjSgOdLWlTiQeNbK8G5D1A-x*t$qZnVkSgPdMaI7F4C0z)v&s!pXmUjRfOcK9H6E2B+y(u%rZoWlThQeNbJ8G4D1A-w*t$qYnVkSgPdLaI7F3C0z)v&s#pXmUiRfOcK9H5E2B+x(u%rZoWkThQeMbJ8G4D1z-x*t$qZnVkSgPdMaI7F4C0z)v&s!pXmUjRfOcK9H6E2B+y(u%rZoWlThQeNbJ8G4D1A-wpYmUjRfOcL9H6E3B+y(v%r#oWlTiQeNbK8G5D1A-x*t$qZnVkSgPdMaI7F4C0z)v&s!pXmUjRfOcK9H6E2B+y(u%rZoWlThQeNbJ8G4D1A-w*t$qYnVkSgPdLaI7F3C0z)v&s#p#pXmUiRfOcK9H5E2B+x(u%rZoWkThQeMbJ8G4D1z-w*t!qYnVjSgOdLWlTiQeNbK8G5D1A-x*t$qZnVkSgPdMaI7F4C0z)v&s!pXmUjRfOcK9H6E2B+y(u%rZoWlThQeNbJ8G4D1A-w*t$qYnVkSgPdLaI7F3C0z)v&s#pXmUiRfOcK9H5E2B+x(u%rZoWkThQeMbJ8G4D1z-w*t!qYnVjSgOdL6E2B+y(u%r#oWlThQeNbJ8G5D1A-w*t$qYnVkSgPdLaI7F3C0z)v&s#pXmUiRfOcK9H5E2B+x(u%rZoWkThQeMbJ8G4D1z-w*t!qYnVjSgOdLaI6F3C0y)v&s#pXlUiRfNcK9H5E2At$qYnVkSgPdLaI7F3C0z)v&s#pXmUiRfOcK9H5E2B+x(u%rZoWkThQeMbJ8G4D1A-w*t!qYnVjSgPdLaI6F3C0y)v&s#pXlUiRfNcK9H5E2A+x(u$rZoWkThPeMbJ7G4D1z-w&t!qYmVjSgOdL9I6F3B0y)v%s#oXlUiQfNcK8H5E2A+x*u$rZnWkThPeMaJ7G4C1z-w&t!pQeNbJ8G5D1A-w*t$UjRgOcL9I6E3B+y(v%r#oXlTiQeNbK8G5D2A-x*t$qZnw*t!qYnVjSgOdL6E2B+y(u%r#oWlThQeNbJ8G5D1A-w*t$qYnVkSgPdLaI7F3C0z)v&s#pXmUiRfOcK9H5E2B+x(u%rZoWkThQeMbJ8G4D1z-w*t!qYnVjSgOdLaI6F3C0y)v&s#pXlUiRfNcK9H5E2At$qYnVkSgPdLaI7F3C0z)v&s#pXmUiRfOcK9H5E2B+x(u%rZoWkThQeMbJ8G4D1A-w*t!qYnVjSgPdLaI6F3C0y)v&s#pXlUiRfNcK9H5E2A+x(u$rZoWkThPeMbJ7G4D1z-w&t!qYmVjSgOdL9I6F3B0y)v%s#oXlUiQfNcK8H5E2A+x*u$rZnWkThPeMaJ7G4C1z-w&t!pQeNbJ8G5D1A-w*t$UjRgOcL9I6E3B+y(v%r#oXlTiQeNbK8G5D2A-x*t$qZn。
