凌晨两点十七分。 余晚在后座上醒过来的时候,脖子僵得像是被人从两边各拧了半圈。她的脊椎从颈椎到腰椎发出一连串细碎的咔咔声,每转一下头那声音就往下一个节段移一段,像一扇很久没开过的百叶窗被人一格一格地往上推。她用手掌揉了揉后颈,掌心的温度贴上去的时候那一片肌肉又酸又涨,指腹按下去能摸到斜方肌上两条绷紧的硬棱。 她不知道自己什么时候睡过去的。记忆里最后一幕是车窗外那座沉默的厂房轮廓,屋顶那片黑色在月光下纹丝不动,她盯着它看了不知道多久,眼皮越来越沉,后来就没了知觉。她低头看了一眼膝盖上的摄像机,机器还在待机状态,屏幕是黑的,电源指示灯有一粒绿豆大的蓝光幽幽地亮着。她按了一下录制键,屏幕亮起来,取景框里画面晃动了两下,她对焦到远处的厂房上,屋顶那片黑色还在那里,跟几个小时前完全一样。 她看了一眼手腕上的表。表盘上荧光指针的刻度在黑暗里泛着淡淡的绿光,分针指在十七分的位置,时针在二和三之间——凌晨两点十七。她睡了大概一个半小时。 副驾驶座是空的。沈渡不在车里。 余晚猛地坐直了身体,动作太快,安全带勒了一下她的锁骨,金属扣弹开的时候啪地响了一声。她转头往后看,小武在后座蜷着身子,头歪在车窗玻璃上,嘴唇微微张着,呼吸又深又慢,还睡着。她推开车门,脚踩到地面上的时候鞋底碾到碎石子的声音在寂静的夜里格外清晰。夜风扑面而来,温度比几个小时前又低了几度,带着厂房区特有的那种铁锈和机油混在一起的气味,还有更远处工业废水沟散发出来的淡淡的化学甜味。 她的眼睛往厂房的方向扫了一圈。厂区正面没人。她绕到车头前面,手扶着引擎盖的边沿,探身往厂房侧面看。那边的空地上堆着几摞生锈的铁管和废旧设备,在月色下扭曲成古怪的形状。然后她看见了沈渡。 他站在厂房侧面的一个缺口处,那个缺口原来应该是一扇侧门,门板已经不见了,只剩下门框的轮廓嵌在墙壁里。沈渡背对着她,站在门框前面大约一步的地方,一只手扶着门框的边沿,另一只手垂在身侧。他的姿势很放松,甚至可以说有点慵懒,像一个人站在自家的窗前看院子里的树。他的头微微仰着,目光落在厂房顶上那片黑压压的鸦群上,从余晚的角度看过去,只能看见他后脑勺花白的头发被夜风撩起来又落下去,几缕发丝贴在他的后颈上。 余晚没有叫他。她放轻脚步走过去,鞋底小心地避开地面上那些碎石和铁屑,落地的时候尽量把重量从脚跟移到脚掌的前半部分。她走到离他大约三米的地方停住了,那刚好是一个既不用喊话也能正常交谈的距离。 她说,你什么时候出来的。 沈渡没有回头。他说话的声音在夜风里被吹得有点散,但每个字还是清晰地传了过来。大约半个小时前。我在车里坐不住。 余晚往前走了两步,走到他身边。她站在他右侧半步的位置,顺着他的视线抬头看向厂房屋顶。从这个角度她能看到更多细节——屋顶的瓦片大部分已经破碎脱落了,剩下的是光秃秃的混凝土板面,上面那层黑色的覆盖物在月光下呈现出一种起伏的、像是活物胸腔在呼吸一样的细微律动。 她说,你在看什么。 沈渡说,我在数。 余晚说,数什么。 沈渡说,数它们中间有多少只处于边缘位置。从刚才我站在这里开始到现在,屋顶外沿的鸦群整体向中心方向移动了大约两米的距离。它们的空间密度在均匀化,像是在为某件事做预备。 余晚的目光在屋顶上扫了一圈。她努力分辨那些黑色的轮廓和它们之间的间隙,但隔得太远,她的肉眼只能看见一片均匀的黑色涂层。她说,我看不出来。 沈渡说,你看不出来正常。我练了五年才把这种空间感知力练出来。他在黑暗里轻轻动了动右手,手指从门框边沿抬起来,在空气中比划了一下。最初那两年我每晚都站在野外看鸦群,看它们从停歇到飞走全过程的变化。十几次之后就形成了某种肌肉记忆,眼睛能捕捉到别人看不到的细节。 余晚盯着他比划的那只手看了一会儿。那只手悬在空气里,指腹上的老茧在月光下隐约可见,指尖在画出一个不太规则的弧形。她忽然想起墙上的地图,那张地图上从金融中心牵往城东工业区的铅笔弧线。 她说,你的模型到底是怎么跑通的。 沈渡把手放了下来,重新扶回门框边沿。他的动作很慢,像是每做一个动作之前都要先想清楚关节怎么弯、肌肉怎么用力。他说,本质上是在做一个路径回溯。乌鸦的静默集群是一个信号,它指向某个即将发生的事件。我做的事情是把信号和事件之间的关联建立起来,然后用已经发生过的数据去训练这个关联的逻辑。每次新的集群出现,我就拿它跟往期数据比对,看它的各项参数最接近哪一次的集群,然后推断出后续事件的类型、地点和大致时间。 余晚说,所以你今天下午给我发的明德路爆炸的时间和地点…… 沈渡说,是比对出来的。金融中心那群鸦的参数跟我记录里的第三十四次静默集群高度重合——第三十四次发生在去年十二月,地点是明德路旁边另一栋楼,那次集群之后十二小时,那栋楼的地下停车场发生了水管爆裂,整个地下室被淹了,虽然没有人员伤亡,但损坏了楼体的地基结构。我根据这次集群的参数差别,对事件类型做了修正预测,然后得出了燃气爆炸的结论。 余晚的脑子在飞速运转。她说,你比对的是哪些参数。 沈渡说,集群规模、静默时长、决策个体的位置分布、喙的朝向角度、翅膀收拢的对称性,还有风。风向和风速的变量在我模型里的权重很高,因为它们会影响起飞后的气流走向,从而改变起飞瞬间对结构负荷的冲击角度。 余晚沉默了一会儿。夜风从厂房的方向吹过来,夹带着一股干枯的木屑味和尘土味。她张了张嘴,想再问点什么,但嗓子忽然有点干,话到嘴边拐了个弯变成了一声咳嗽。她清了清嗓子,说,你觉得这次也会跟去年一样吗。厂房会塌。 沈渡没有立刻回答。他的目光还落在那片黑色的覆盖物上,眉心微微皱着,像是在用眼睛丈量某种比空间更复杂的维度。过了大概十几秒他才开口,声音比之前更低了。他说,我昨天晚上重新跑了一遍模型,发现了一个之前忽略了的东西。 余晚说,什么。 沈渡说,厂房周围的环境温度在持续下降。从今天傍晚到凌晨,这个区域的降温幅度比周边城区平均快了大约一点三度。这种局部温差会影响空气的垂直对流强度,而乌鸦在起飞时依赖的是上升气流来减少翅膀的能量消耗。如果气流条件不理想,它们的起飞时间会延迟,起飞时的振翅频率会增高。频率增高了,结构的共振效应会被放大。 余晚的心跳在胸腔里敲了一下。她说,所以你之前推断的五到六点起飞窗口可能不准。 沈渡说,不一定。也有可能它们会提前起飞,在温度差异达到某个临界值的时候。我现在不能确定。他把视线从厂房顶收了回来,转头看向余晚。他的眼睛在月光下反射着一点微光,周围的皱纹被侧光照成一道道细浅的沟壑。他说,我唯一能确定的是,这场飞行一定会发生。时间上的误差最多不会超过两个小时。 余晚说,那我们能做什么。 沈渡看了她一眼,那眼神里有一种很薄的东西在闪,像是冰面下面的水动了。他说,你能做的是把摄像机架好,拍到它们起飞的全过程。然后…… 他停顿了一下。风灌进门框的缺口里,吹得他夹克的下摆微微翻卷起来。他说,然后你要决定,你拍下来的这些东西,你会怎么用。 余晚没有说话。她把摄像机从肩上抬起来,镜头对准厂房顶,右手拇指按在录制键上,按下去的时候屏幕的边角弹出一个红色的圆点,REC亮起来了。取景框里那片黑色的覆盖物被清晰地框进了画面中央,她调了一下焦距,让画面推得更近一些,近到能看见那些乌鸦彼此之间细微的距离变化。 她举着机器站在那里,手臂因为姿势的关系开始发酸,但她没有放下。她的呼吸在夜风里凝成白色的水汽,每一次呼出来都迅速散进空气里,像一小团模糊的雾被风扯碎了。 沈渡在她旁边站着,两只手都插进了夹克的口袋里。他说,还有一个问题。 余晚透过取景框看着屋顶,声音压得很低。你说。 沈渡说,刚才我出来的时候,在厂房背面的铁路路基上看到了一些脚印。鞋印的方向是从北往南走的,在路基上停了大概一两分钟,然后折返回去了。鞋底纹路是那种工装靴的花纹,沟壑很深,不是偶然路过的。 余晚的左手从机身下面抬起来,大拇指和食指旋动了一下调焦环,把画面推得更近。她说,你的意思是,有人在我们之前来过这里。 沈渡说,我刚说过,去年城南那件事之后有人来找过我。我确定有人在跟踪我的行踪。他说话的语气一直很平,但余晚能听出他话尾那一点点收紧的力度,像是弦被拧紧了一小格。 她把摄像机放低了一点,从取景框后面露出半张脸看着他。她说,他们知道你的研究吗。 沈渡说,不一定知道全部,但一定知道我在做什么方向的东西。他顿了一下,又说,但他们不知道我找到了你。 余晚愣了一下。她花了大约两秒钟才消化这句话里的意思。她在沈渡的认知里不是一个偶然找上门的记者,而是一个被他选择的人。他说"他们不知道我找到了你"——这个说法的主动方向跟她想象的不一样。她以为是她找到了他,但现在听他的语气,更像是他一直在等一个能够把信息传递出去的人,而她恰好出现了。 她说,你怎么知道我可以。 沈渡看着她。月光把他脸上的阴影斜切了一道,他有一半脸在亮处,一半脸在暗处。他说,你在金融中心广场上扛着机器站了四个小时。几千只乌鸦在头顶上,旁边的人全都在跑,你没有跑。你蹲在那里把焦点调准了。 余晚的喉头动了一下。她没说什么。 沈渡把视线从她脸上移开,重新落回厂房顶。他说,风在加速。他抬起右手,手掌摊开朝向厂房的方向,像是在感受空气流过手背的压强和速度。他说,风向从偏东风转成了东南风,风速比半小时前快了大概三级。气流条件在变化。 余晚重新把摄像机举起来,镜头对焦到屋顶边缘。取景框里,那片黑色覆盖物的外沿确实在变,之前那种紧密排列的、几乎像一整块固体一样的形态开始出现裂缝,黑色的表面上有了一些细微的褶皱和起伏,像一锅即将煮沸的水在达到临界点之前水面下的那种暗涌。 她说,它们要动了。 沈渡说,快了。 他们站在那里,一个举着摄像机,一个垂着手,并肩面对着那座在夜色里沉默着的巨兽厂房。厂房顶上的黑色覆盖物在风里微微颤动着,越来越频繁,越来越密集。远处城区的灯光在天际线上晕染出一层暗淡的橘色光晕,那些灯光里睡着的人还不知道,在这座城市边缘的废墟顶上,有一万多只黑色的眼睛正在从合拢的状态中缓缓睁开。 余晚的右手拇指悬在录制键的上方,皮肤能感受到按键表面那一层细微的、温热的摩擦阻力。她没有按下去,她在等那个准确的一瞬间,等那片黑色真正动起来的那一刻。 她的手机在口袋里震了一下。 余晚没动。她的眼睛还在取景框后面,瞳孔里倒映着那片即将爆裂的黑色。震动持续了大约三四秒,停了。过了五六秒,又震了一次,比第一次更长。 她把摄像机从肩上放下来,单手握着机身,另一只手伸进口袋掏出手机。屏幕亮着,微信上有一条新消息,来自一个没有备注的号码。她点开那条消息的时候,手指在屏幕上划了一下,因为夜风的缘故指尖有点凉,触控的反应稍微迟钝了一瞬。 消息内容只有六个字,字与字之间没有标点: "纺织厂 五点十一分" 余晚把手机屏幕转向沈渡。沈渡低下头看了一眼那行字,他的眉毛先是往上抬了一下,然后沉了下来。他抬起头,看了一眼厂房顶,然后低头又看了一眼手机屏幕。他说,比我的模型晚了十二分钟。 余晚说,这个人是谁。 沈渡说,我不知道。 余晚说,他怎么会知道。 沈渡说,他跟我一样,在观察这些乌鸦。但他观察的时间比我久。他说完这句话之后又沉默了大概两秒钟,然后补充了一句,他的结论和我模型的偏差在十五分钟以内。这个人要么是拥有比我更完善的数据集,要么是根本不需要数据集。 余晚把手机屏幕按灭了。她重新把摄像机举起来,镜头对准厂房顶,拇指压在录制键上。她说,不管他是谁,他给的时间是五点十一分。如果他说的是真的,我们还有不到三个小时。 远处厂房顶的黑色表面在微弱的月光下泛起一阵涟漪,从中心向外围扩散开去,持续了大约三秒钟,然后恢复了静止。那是第一次有规模的、可观测的波动。余晚的拇指在录制键上按了下去,屏幕右上角的REC指示灯由蓝变红,红点闪起来,稳定地、持续地闪起来。 风在加速。东南风把厂房旁边那些废弃的铁管吹得发出低沉的呜呜声,像某种大型动物在喉咙深处滚动的喘息。厂房顶上那片黑色的覆盖物又开始波动了,这次比刚才更明显,幅度更大,持续的时间更长。乌鸦们在里面移动着,调整着位置,一整套精密得难以想象的编队重组正在那片黑暗的内部悄然进行。 沈渡把双手从口袋里抽出来,交叠在胸前。他的站姿没变,但余晚余光里能看见他的肩膀比之前绷紧了一点。他看着厂房顶那片黑色的波动,嘴唇微微动了一下,像是说了句什么,但声音被风声盖过了,余晚没有听清。 她说,什么。 沈渡没有重复。他只是把交叠的手臂放了下来,重新垂在身侧。他说,把焦距对准屋顶东南角。那个位置的鸦群密度在增大,它们正在往同一个方向聚拢,那是起飞前的信号。 余晚把镜头推过去。取景框里,屋顶东南角那片黑色确实更厚了,边缘的线条变得更紧凑、更密实,像一块磁铁把周围的铁屑全部吸向自己。她能看见那些乌鸦彼此之间的空隙在缩窄,它们的身体挤在一起,翅膀的边缘互相触碰着,整个形态正在从松散的覆盖层变成了一个紧绷的、随时准备弹射出去的固体块。 风又变大了。东南风把厂房墙壁上松动的铁皮吹得哐当哐当响,余晚的头发被吹起来扑在脸上,她用左手把挡住眼睛的那一缕别到耳朵后面去,右手稳稳地托着摄像机。她的手臂肌肉在发酸,但这种酸痛她已经习惯了,以前跑突发新闻的时候一站就是七八个小时,她扛着二十斤的设备在暴雨里蹲过四个钟头。这点酸不算什么。 她说,还有多久。 沈渡说,它们的预激发态已经进入了第三阶段。 余晚说,你之前说过几个阶段。 沈渡说,五个阶段。第三阶段意味着起飞窗口已经打开,时间误差在正负四十分钟以内。 余晚的拇指按着录制键没有松开。她透过取景框盯着屋顶东南角那片正在不断收紧的黑色团块,看着它的轮廓从模糊变得清晰,再从清晰变得模糊——因为它在收缩,每一寸都在往内部收紧,密度越来越高,黑色越来越浓,浓到在月光底下呈现出一种近乎光滑的、像液态金属一样的反射效果。 小武的声音突然从后面传过来。晚姐?余晚的耳朵捕捉到了那声呼唤,但她没回头。小武的脚步声从车那边往她这边小跑过来,鞋底碾碎石子的声音越来越近。他在她身后两米的地方停住了,喘着气说,刚才我手机响了,有一条陌生短信。 余晚说,什么内容。 小武说,就一句话——"五点十一分,曙光纺织厂,屋顶会塌。" 余晚的呼吸停了一拍。她把摄像机稍微放低了一点,从取景框后面露出眼睛看向小武。小武站在月光下,脸上还带着刚睡醒的模糊和困倦,但眼神是清醒的。他把手机屏幕朝向她,那行字在屏幕的正中央,白底黑字,工工整整。 余晚把目光重新转回厂房顶。她说,他刚才也给我发了。 小武说,谁。 余晚说,不知道。她和沈渡对看了一眼。沈渡的表情在月光底下没有太大的变化,但余晚注意到他嘴角的线条收紧了一点点,像是牙齿在里面咬了一下。 厂房顶那团黑色忽然停止了波动。 所有的移动、调整、密度的变化,在那一瞬间全部停止了。整个屋顶沉寂下来,静得像一幅被钉在画框里的油画。那种静止比之前三十多个小时的静默更彻底,更深,像一台机器在运行到最高转速的时候突然被人拔掉了电源插头。 然后,屋顶东南角的那团黑色裂开了一条缝。 一条白灰色的光带从裂缝里透出来,那是东方的天空正在泛白。天快亮了。余晚的取景框里,那条光带从鸦群之间的缝隙中穿过去,像一把细长的刀刃把那团黑色的固体从内部切开。光带的宽度在快速扩大,东方的地平线上一层层浅灰色的光正在往上推,把夜空从深蓝逼成了靛青,从靛青逼成了灰白。 而她同时也听见了另一种声音。 很低沉的,从厂房内部传出来的,像是混凝土和钢筋在承受某种超出极限的应力时发出的那种闷响。那声音从地基往上爬,穿过墙壁和楼板,从屋顶那些裂缝和缺口里挤出来,在空气里凝聚成一个持续的、低频的、几乎让胸腔跟着一起振动的嗡鸣。 沈渡的声音在她身边响起来,冷静得像一块冰。它们要起飞了。 余晚的拇指压在录制键上纹丝不动。取景框里,屋顶那片黑色的固体再一次波动了,幅度比之前任何一次都大,整个覆盖层的表面像被一只手从底部猛地往上推了一把,凸起,裂开,然后—— 一万两千只乌鸦同时张开了翅膀。 那个瞬间没有声音。所有翅膀展开时产生的空气振动被压缩在一个极短的时序里,短到人类的听觉系统来不及把它识别为声音,余晚只感觉到胸口被什么东西狠狠撞了一下,像一记无声的重拳砸在她的横膈膜上。她的肺部在那半秒钟里完全空了,吸气来不及,呼气也已经结束,她就那么僵在那里,嘴巴微微张着,看着取景框里的画面变成了一整片翻卷的黑色。 然后声音来了。像一堵墙倒下来之前先压过来的那股气压,先到的是空气的冲击,然后才是音波——那一声轰鸣厚重得不像翅膀能发出来的,像是整座厂房的地基在那一瞬间被连根拔起,混凝土在断裂,钢筋在扭曲,屋顶上的瓦片和碎渣被那股同时升空的涡旋卷起来甩向四周。 黑色的潮水从屋顶上升腾起来了,比金融中心那次大了三倍,浓了三倍,密了三倍。晨光被那片黑幕完全遮住,周围的一切暗下去,只剩取景框里那片翻卷的、涌动的、像要把天空本身也拽下来的黑色。 余晚听见了自己在说话,声音从她喉咙里挤出来的时候完全是失控的,她甚至不记得自己要说什么。她说,塌了。它塌了。 厂房顶在乌鸦全部离开之后的那两三秒里,先是整个屋顶平面往下沉了大约半米,像一个深呼吸之后胸腔的塌陷。然后是主承重柱断裂的声音,从内部传出来,沉闷而坚硬,咔嚓咔嚓地往上传递,最后整栋四层建筑的西南角开始往内倾斜,倾斜的角度越来越大,混凝土墙体从中间崩裂出一条竖直的裂缝,裂缝迅速蔓延,像一道闪电被慢放了十倍。 余晚的取景框稳住了。她的手臂在抖,但她把机身的重量完全靠在了右肩上,用肩膀和脖子的夹角卡住了摄像机的重心,确保画面没有晃。她拍到了厂房坍塌的全过程,从第一道裂缝出现到整面墙体崩溃成碎石和尘埃,只用了一分多钟。那一分多钟里她一次都没有眨眼,她忘了眨眼。 尘埃卷起来,灰白色的浓雾从废墟上升腾,把晨光彻底糊成了一片混浊的乳白。余晚把摄像机放下来的时候,她的右臂从肩膀到手肘整条都在发颤,肌肉像被抽空了力气,软得几乎托不住机身。她用左手接了一下,两台手抱着摄像机蹲了下去。 沈渡蹲在她旁边。他伸手从口袋里掏出手机,看了一眼时间。五点零七分。短信上写的是五点十一分。比预测早了四分钟。 余晚蹲在地上,胸腔里还残留着刚才那声轰鸣的余震,她的耳膜在嗡嗡响,世界听起来隔了一层水。她说,提前了。 沈渡说,对。提前了。模型误差三分钟。 余晚抬起头。晨光正从东边涌过来,把废墟上的尘埃染成一层淡金色,那些飘浮的微粒在光线里缓缓旋转着下落。远处有乌鸦的鸣叫声传来,稀稀拉拉的,已经散得很远了。 沈渡看着她,阳光第一次照到他的脸上,把那些皱纹和眼下的阴影全照亮了。他说,下一次,我可能也会错。 余晚举着摄像机站了起来。尘埃落在她的头发上、肩膀上、摄像机的机身上,薄薄一层灰白色。她看着沈渡,说,那我们一起错。