面包车在城市北边那片工业改建区减速,停在那栋灰白外立面楼的前面,八奈见熄了火,但钥匙留在点火位置。兼定进楼之后,车里剩下三个人,外面的街道是清晨的安静,偶尔有一辆早班公交经过,空气里带着柴油味和远处早市的油烟气。
疤脸在前排没有动,他把那张折叠的纸从口袋里取出来,放在膝盖上,没有展开,只是把手压在上面。八奈见坐在驾驶位,手机屏幕是暗的,他的右手食指在方向盘边缘轻轻滑了一下,像是在确认某个按钮的位置,但那里没有按钮,是一个空的位置,他只是摸了一下,然后停了。
祥子在后排,她把行李袋放在脚边,把那件飞行夹克的边角从拉链缝里推回去,合紧了拉链。她没有主动开口,她在等兼定出来,同时把刚才走廊里那个人说的最后一件事重新在脑子里过了一遍——那个从西侧红土来的人,那个一直去跟踪监控节点的身影,那个和她六年前记忆里某个动作能重叠但又不完全重叠的体态,以及那个被他说出来之后让她脑子里某个沉了很久的东西轻微动了一下的代号。
她不确定。她在不确定的时候不开口。
兼定在三分钟后走出来,他走到车边,说了那张纸上的内容,说有两件事要同时做。
疤脸把膝盖上那张折叠的纸收回口袋的动作,是在兼定说完分工之后,但那个收纸的动作不是收尾,是某种停顿,他把手压在口袋外面多停了一秒,然后才把手拿开。
祥子注意到那个停顿,但她没有看他,她把那张二十年前的证件从行李袋底层取出来,放到兼定面前,说了职衔缩写和转运站建设档案主管单位缩写之间的对应关系。
兼定拿起那张证件,翻过来,在背面停了几秒,然后把证件放回行李袋,把行李袋推还给她,说了分工——疤脸去档案库,八奈见留守通讯,他和祥子去转运站。
就在这个分工说定的瞬间,八奈见的手机震了,是那个特定的频道消息提醒,他解锁,看了不到两秒,放下,双手重新放在方向盘上,但右手握力变了。
他说了那条消息的内容:档案库在上午八点整会被执行销毁指令,申请时间是凌晨四点三十分,执行有两小时延迟,是某个没见过的内部编号申请的。
疤脸听到这件事,直接开门下车,站在车外,把外套拉了拉,说了他去库里的安排,走的方向是往东,是背对着他们的方向,步伐里没有犹豫,像是他在上车之前就已经预判到了自己会在某个时间点单独去做这件事。
他走出停车区域的时候,祥子从车里往外看了一眼,注意到他右手的口袋在走路时有轻微的重量感,但那个口袋在他们刚才几个小时里,从来没有被他打开过,不是枪,枪在另一侧,是另一样东西,一直在那里,只是她之前没有留意过那个口袋的重量。
八奈见没有跟着下车,他把平板拿出来,开始接入离线数据库,为外围支持做准备,但他在做这个操作之前,把那条消息重新看了一眼,然后把手机扣回腿上,没有转发,没有解释那条消息里除了销毁时间之外的其他细节——那条消息本身的长度,从他解锁到放下的那两秒,按照正常的阅读速度,不足以读完一条只有销毁时间信息的短消息,说明那条消息里还有其他内容,而他只说了一部分。
祥子把这件事压住,没问,她下车,和兼定往北走,往那个废弃转运站的方向走。
城市北边这一片的街道在清晨比市区其他地方更空,工业改建留下的宽路上,偶尔有一辆货运车经过,拉着早班备货的箱子,车轮压过沥青路面的声音很低沉。两侧的行道树是光秃的冬树,枝桠在天光里投出细碎的影子,影子被早晨的侧光拉得很长。
他们走了大约四百米,经过一个十字路口,路口东南角有一个二十四小时便利店,灯是亮的,店里有一个店员在补货,把饮料瓶一排排放进冷藏柜里,动作很机械,是那种干到快交班了的状态。
兼定在路口停了一下,他在等一辆早班公交通过,公交车窗上有哈气,里面的乘客大部分是睡着的,只有靠门那一侧有一个中年女人在低头看手机。公交过去了,兼定继续往前走,但他走了两步,停下来,回头,看了一眼那个便利店。
他进去了,在里面待了不到两分钟,出来的时候手里拿着两个热饮的纸杯,把其中一个递给祥子,没有说话,继续往前走。
那两个纸杯是热的,是那种自动咖啡机出来的便宜咖啡,祥子接过来,用手心捂着,把热度传进掌心,手指因此松了一点。她上一次喝热的东西是什么时候,她想了一下,想不起来,大概是昨天下午在某个地方买的一杯,具体是哪里,记忆是模糊的。
他们走进城市北边外缘更远的一段,建筑在这里开始稀疏,工厂的外围墙在路两侧出现,有一段围墙上有涂鸦,是那种喷漆的粗线条图案,已经褪色了,上面有雨水留下的锈斑,说明那段围墙破损了,有地方漏水。
转运站的坐标在围墙再往北的地方,是一个三层楼的建筑,在卫星图上轮廓完整,但地图标注是“废弃”,周围没有登记在册的道路可以直接进入,只有一条在建筑档案里没有出现过的小路,从北边的货运通道绕进去。
他们没有走那条小路,兼定选的路线是从西侧的一段旧仓库群的空隙穿过去,这段路需要经过两个仓库之间的间隙,间隙宽度勉强够一个人侧身通过,地上有积水,是昨晚的雨留下来的,水不深,但踩进去鞋底会湿透。
祥子侧身通过那段间隙的时候,左肩擦过仓库外墙,砖面很粗糙,在工作服肩膀的位置留下了一道浅浅的灰白痕迹。她没有去擦,继续往前走。
走出仓库群的间隙,是一片空旷地,地面是那种杂草和碎石混合的状态,杂草在冬天是枯黄的,倒伏在地,踩上去有清脆的断裂声。转运站的建筑在这片空地的北侧,三层楼,外立面是那种灰色的混凝土,窗户大部分已经被木板封死了,只有最顶层的一个角落有一扇窗没有完全封好,木板有一侧松动了,被风吹开了一条缝,缝里没有光,是真正的黑。
建筑外围有一圈铁丝网,铁丝网的状态是那种废弃了但定期有人检查的状态——某些地方有新的扎丝修补痕迹,修补的铁丝比原来的颜色更亮,说明不超过几个月前有人来修过,但那个修补的目的不是阻止人进入,因为修补的位置是铁丝网的外侧,朝向建筑内部,是防止什么东西从里面出去的那种修补方向。
兼定在铁丝网外围绕了一圈,走了大约三分钟,找到了一处铁丝网底部被人拉开过的地方,土壤上有鞋底的压痕,不是新的,但也不超过一个星期,是那种在泥土半干的时候留下的压痕,现在泥土硬了,压痕就保留了下来。
鞋底的纹路是那种户外鞋常见的大字纹,尺码大概是男款四十三到四十四,踩入土壤的深度说明体重偏轻,或者是快速移动时只是脚掌前部着地留下的。
祥子在兼定蹲下来看那个压痕的时候,没有跟着蹲下,她站在他身边,把视线放在建筑的轮廓上,从这个角度,那扇松动木板的缝在逆光里不明显,但建筑一楼的某个位置,有一块混凝土外墙的颜色和其他地方不一样,颜色更深,不是风化,是受过潮的那种深,受潮的范围很局限,是一个大约半平方米的区域,形状不规则,说明那个地方的内部有水气渗出来,而那个渗出的方向,是向外,不是向内,意味着那块墙的内侧某个地方有持续的水分来源,不是雨水渗入,而是内部产生的。
地下有管道,或者地下层有某种持续运转的设备,设备产生的热气遇到混凝土冷墙会凝结成水,然后渗透到外墙表面。
三年前停用的建筑,外墙有持续受潮的痕迹,说明里面有东西还在运转。
她把这件事压着,等进去再说。
他们从铁丝网底部拉开的那处钻进去,兼定先,祥子跟着,铁丝网的边缘在她弯腰钻过时在外套背部留下了两道刮痕,她感觉到了,继续往前走,没有停。
建筑的正门是用钢板焊死的,没有门缝,焊点完好,不是近期打开过的状态。东侧有一扇侧门,侧门是那种工业用的重型金属门,门缝里有新鲜的机油气息,说明这扇门的铰链最近被润滑过,但门是锁着的,锁是外挂式的,锁体很重,但锁扣的底座螺丝有两颗是松的,用力横向一压,底座会带着锁扣从门框上整体剥离,门就开了。
兼定用手掌的根部推了两次,底座松开了,门被推开了一道缝,缝里出来的不是冷空气,而是相对温暖的空气,温度差让两种空气在门缝处产生了轻微的气流,把门缝外面的枯草叶吹起来一片。
里面比外面暖。
他们进去,把门重新靠上,不关死,留着一道缝,用一块从地上捡来的碎砖抵住。
里面是一个空旷的大厅,原本是货物中转用的,地面是混凝土,中间有几根承重柱,柱子上有货运时代留下的铁钩,钩子生锈了,锈的颜色是那种深棕,时间很长。大厅的一侧有一排破损的货架,货架上有一些废弃的包装材料,大部分已经碎成了碎片,但角落里有两个塑料箱,箱盖是新的,和箱身的老化程度明显不一致,是后来换上去的盖子。
兼定没有去看那两个塑料箱,他在找楼梯或者下行通道,在大厅北侧找到了一道下行楼梯的入口,入口的地面比周围的混凝土地面干净,不是打扫的干净,是使用频率高导致的,脚步把浮尘都磨走了,只剩下一层细密的灰,中间有走过的脚印,脚印是清晰的。
不止一个人走过这里,而且不止一次。
楼梯是向下的,没有灯,他们用手机照着,楼梯向下十二步,然后是一道走廊,走廊宽度大约一米八,顶上有裸露的管道,管道的保温层在某些地方已经脱落,露出金属管体,管体表面有凝结水,说明管道里有温差,内外温度不同。
管道是运行中的。
走廊末端有一扇门,不是金属门,是那种防火隔离门,材质更厚,门缝里有微弱的光透出来,是那种电子设备待机时的指示灯的光,蓝色,很微弱,但在这条完全黑暗的走廊里非常明显。
兼定在门外停下来,把手机手电关掉,等眼睛适应黑暗,同时侧耳听了大约十秒。
门后有声音,是那种机器运转的低频嗡鸣,不是单一的,是多个设备叠加在一起的那种复合声音,节奏是稳定的,是持续运行中的设备,不是间歇工作的,说明这些设备一直处于通电待机状态,从三年前到现在,没有停过。
一个在建筑档案里的地图上不存在的地下层,有一直在运转的设备,有被定期维护的铁丝网,有被润滑过铰链的侧门,有最近有人走过的楼梯,但在任何公开的记录里都是“废弃转运站”。
兼定推开那扇防火隔离门,里面的光比走廊里的那点蓝光亮了很多,是那种服务器机房里常见的指示灯阵列发出来的光,不是主照明,是设备运行指示灯,红绿蓝混合在一起,把整个空间染成了一种暗淡的、五彩的光。
房间很大,比上面大厅小,但比一般的机房大,两排机架从一端延伸到另一端,机架上的设备大部分是那种过时的型号,不是当前市面上能买到的最新款,是五年到八年前的产品,但设备的状态是良好的,指示灯全部是正常运行的颜色,没有红色报警。
角落里有一张桌子,桌上有一个小型的监控显示器,显示器是亮着的,屏幕上分成四个画面,每个画面对应建筑外围的一个摄像头,摄像头是那种嵌在建筑结构里的隐藏式,不是明面上的监控设备,所以从外面进来的时候看不见它们,但它们一直在工作,建筑内外的情况都在这个显示器上。
其中一个画面,是铁丝网那处他们钻进来的位置,他们钻铁丝网的过程被完整记录了,那个画面的时间戳是实时的,帧率很低,一秒大概四帧,是那种省电的低帧率录像模式,一直在运行。
兼定看见了那个显示器,他在设备和桌子之间站了一会儿,没有立即去碰任何东西,他在判断这个地方的整体状态,判断它是自动运行的还是有人在远程管理的,判断有没有另外的终端可以接入这套设备。
祥子把手机灯重新打开,往设备深处走,她在找那件飞行夹克内衬左腋下那个长方形痕迹对应的东西——一个扁平的、长方形的、大概手掌宽的东西,那种东西在这种地下设备室里最可能的形态是一个存储介质,或者一个通讯设备,或者一个专用的访问卡。
她走到第二排机架靠末端的位置,注意到其中一个机架的底部有一个抽屉,抽屉没有锁,但缝隙里有一根细绳,细绳的末端连着什么,被拉出来可以触发某个抽屉底部的弹出机制,这是那种把东西藏在夹层里的方式,不是直接放在抽屉里,而是在抽屉拉开之后还需要一个额外动作才能取到的藏法。
她没有拉那根细绳,她只是弯腰看了一眼,确认了抽屉底部的缝隙厚度,那个厚度,大约是两厘米,够放一张比较厚的卡片,或者一个薄型的存储介质。
她站起来,把这个发现留着,没有说出来,因为她不确定这里还有没有其他人,也不确定这个房间本身有没有记录设备。
然后她注意到了另一件事,那个监控显示器旁边的桌面上,有一个马克杯,马克杯里有茶,茶的颜色是淡的,不是新泡的那种深棕,是泡了很长时间之后茶叶颜色渗出来但已经不再出味的淡金色,但那个杯子的外壁是温的,不是凉的,是那种放了大约一到两个小时之后保留的余温,不是烫手,但明显高于室温。
一到两小时前,有人坐在这张桌子旁边,喝了一杯茶,然后离开了。
离开的时候没有关设备,没有带走那个杯子,走得很平常,不像是紧急撤离,更像是正常离开,打算再回来。
有人在这里值守,大约一到两小时前刚刚离开,会回来。
祥子把这件事转述给兼定,用最简短的方式,说完之后把视线放在入口那扇防火隔离门上。
兼定听完,他走向那张桌子,把桌面上的东西快速扫了一遍,在桌子右侧的角落,他发现了一本薄薄的记录本,像是那种手写值班日志,封面是普通的横格本封皮,翻开,里面确实是手写记录,每页记录的格式是日期加时间加几行简短的文字,最后一条记录的日期是今天,时间是今天凌晨三点四十分,记录的内容不是文字,是两组数字,第一组是一串坐标,第二组是一个编号,那个编号的格式和接口节点里那个档案坐标的格式是同一套系统里的编号格式。
今天凌晨三点四十分,比销毁指令的申请时间早了大约五十分钟。
那个申请销毁的人,和这个凌晨三点四十分在这里写下记录的人,在时间上的关系,不是巧合,是某种接力——一个人在这里完成了某件事,记下来,然后另一个人在大约五十分钟后申请了销毁,把剩余的档案在系统里清掉。
兼定把那本日志合上,放回原位,他没有拿走,因为拿走意味着值守者回来之后会知道有人来过,而不拿走,值守者可能只会以为有人进来看了一眼,不确定他们拿走了什么,那种不确定会让值守者的下一步行动更难判断。
然后房间里的设备阵列里,有一个指示灯从绿色变成了橙色。
不是报错,橙色是那种处于通讯等待状态的颜色,是有外部信号正在尝试接入这套设备,在等待设备这端应答。
有外部信号,在向这套设备发出连接请求。
兼定的视线在那个橙色指示灯上停了两秒,然后他转向祥子,他们两个人之间没有说话,但他们都知道接下来的选项只有两个:在那个外部信号应答超时之前离开,或者留下来,等那个信号再次尝试连接,试图判断发出信号的是谁。
留下来的风险是值守者可能在任何时候回来,外部信号是谁发出的也不确定,可能是例行的远程检查,也可能是那个知道他们在这里的外部第三方,已经从信标失效的事件里推断出了更多,现在主动来接触这套设备。
离开的风险是他们放弃了那个抽屉夹层里的东西,那件东西是他们目前掌握的最有可能和花白头发男人脖子上缺失的那件东西直接关联的线索。
祥子没有等兼定决定,她弯腰,抓住那根细绳,拉了一下。
抽屉底部的夹层弹开了,里面是一个扁平的硬质卡套,卡套内侧有填充海绵,海绵中间有一个压痕,那个压痕的形状,是一个长方形卡片的形状,大约手掌宽,但那个压痕对应的位置,是空的,那件东西已经不在这里了,只剩下卡套和那个被压出形状的海绵。
那件东西被拿走了,但不是很久之前拿走的——海绵填充物的压痕边缘还有轻微的弹性,还没有完全回弹到自然状态,刚被取出的时候边缘会是平整的,随着时间会慢慢往中间方向回弹,现在的状态大概是被拿走了三到五个小时之内。
三到五个小时之内,也就是今天凌晨两点到四点之间。
也就是那个在凌晨三点四十分留下记录的值守者,在离开这里之前或者在来这里之前,把那件东西从卡套里取出来了。
那件东西不在这里,它在那个值守者手里,而那个值守者,在一到两小时前喝完了桌上那杯茶,然后离开,打算回来。
设备阵列里的那个橙色指示灯在持续了大约四十秒之后,从橙色变回了绿色,那个外部连接请求超时了,对方没有得到应答,连接中断了。
但在那个指示灯变回绿色的同时,另一个位置的设备上有一个细小的指示灯快速闪烁了三下,然后停止,那三下的闪烁不是设备的正常状态,是那种在接收到某个预设信号时触发的通知指示,那个预设信号和刚才那个外部连接请求是不同的信号——外部连接请求是主动发来的,那三下闪烁是这套设备在收到某个预设触发条件之后主动发出的通知。
那个触发条件,祥子判断是那个外部连接超时——有人提前在这套设备里设置了一个规则,如果外部连接请求超时,就向某个固定地址发出一个通知,告诉那个地址的接收者:有人接触了这里的设备,但没有应答。
那个接收者在一到两小时后收到了这个通知,知道有人在这里动过设备,但不知道动的是什么,也不知道来的是谁。
那个接收者会怎么做,取决于他离这里有多远。
兼定已经在往入口方向走了,祥子把抽屉夹层重新合上,让它恢复到原来的状态,空的卡套还在里面,看起来什么都没被动过。她站起来,跟着兼定往走廊方向走,走到防火隔离门前,她回头看了一眼那个监控显示器,显示器上四个画面里,有一个画面里出现了一个新的人影。
不是从建筑外面进来的,那个人影是从建筑北侧地面上某个她之前没有注意到的入口走出来的,那个入口在铁丝网内侧,是建筑本体外墙上的一扇小门,那扇小门很窄,人要侧身才能出去,出去之后往北走,往建筑背面走,背面有什么,摄像头的角度看不见。
那个人影的体型,在低帧率的画面里看不清楚,只能看见是一个成年人,移动速度很快,没有停留,直接往北走,消失在画面边缘。
值守者没有从他们进来的那扇侧门出去,他从另一扇他们不知道的小门出去了,在他们进入这个地下层之前或者就在他们进入的同时,他已经知道有人来了,他撤了,但他没有直接离开建筑,他是往北走的,建筑背面。
那个方向,是城市西侧封锁施工区域的方向。
祥子把这件事说出来,用最简短的方式,说的时候已经在往楼梯方向走了,说完就上楼,没有等兼定回应,因为那个人走了多久,和他到达他能触达的某个通讯节点或者等待点需要多久,这两个时间窗口的大小决定了他们现在还剩多少时间可以用。
他们回到地面大厅,大厅里还是空的,那两个塑料箱还在角落,没有动过,侧门那道缝还留着,碎砖还在,早晨的冷空气从那道缝里进来,把室内那种微暖推开了一点。
兼定在大厅里停了一下,他看向大厅东北角,那里有一段楼梯通向二楼,他往那边走,上了五级台阶,在第六级台阶的边缘停下来,弯腰,把手伸进台阶侧面的空隙里,那个空隙是楼梯结构留下的,很窄,他的手进去之后在里面摸了一下,然后取出来,手里多了一样东西。
那样东西他没有展示给祥子看,他把它收进内袋,然后下台阶,往出口方向走,像是他在进入这个建筑之前就已经知道那里有什么。
祥子跟着他走出侧门,走进外面的冷空气里,她没有问那件东西是什么,她知道这个时机问出来得到的答案不一定是完整的,而且他们现在没有时间停下来。
他们钻回铁丝网,往仓库群的方向走,走了大约两百米,兼定的手机震了,是八奈见发来的消息。
兼定看了一眼,没有立即回复,把手机收起来,继续走,但他的步伐加快了一点,不是急跑,是那种在调整计划的时候脚步跟着思维加速的节奏变化。
走出仓库群的间隙,回到主路,路边有一辆三轮车,是那种卖早点的三轮车,锅架在车上,热气腾腾,卖的是油条和豆浆,摊主是一个五十多岁的男人,棉袄外面套了一件油腻的围裙,看见他们走过来,抬头招呼了一声,说今天的油条刚炸,要不要来两根。
兼定停下来,买了两根油条,用油纸包着,付了钱,把其中一根递给祥子,然后继续往南走,往面包车的方向走。
那两根油条都是烫的,祥子拿着,外皮在清晨的冷空气里很快就不那么烫了,但里面的热气还在,她咬了一口,咸的,脆的,那种油炸食物的气味在清晨的冷空气里格外具体。
她一边走一边把今天到现在为止所有的事情重新排了一遍,排到那个废弃转运站的地下层和那个空的卡套之间的关系,她想到了飞行夹克内衬的那个长方形压痕,那个压痕和卡套内侧海绵的压痕,尺寸对得上,这说明那件原来放在卡套里的东西,曾经长期放在飞行夹克内衬的左腋下,是花白头发男人随身携带的,后来放进了卡套,放在这个地下层保存。
但三到五小时前,那件东西被从卡套里取出来,带走了,带走的人是那个凌晨三点四十分留下记录的值守者。
值守者和花白头发男人之间的关系,是什么关系,是委托保管,还是另一种形式的控制关系——不是花白头发男人主动把东西放在这里,而是有人把它从他身上取下来,放在这里,然后在某个时间节点把它取回去。
这两种关系方向完全相反,指向的后续情节也完全不同。
她没有把这个区分说出来,因为她现在有另一个更紧迫的问题需要确认:八奈见发给兼定的那条消息,内容是什么,让兼定的步伐加快了。
她在走到面包车旁边的时候,从八奈见脸上判断出了一件事,不是从他的表情,而是从他平板的屏幕——平板屏幕上有一张地图,地图上有两个标记,一个是他们现在的位置,一个是另一个位置,那个另一个位置在城市西侧,在封锁施工区域的中间,不是边缘,是中间。
那个标记不是档案库,档案库在边缘,这个在中间,是另一个地点。
她没有问那个地点是什么,她把目光放在八奈见的右手上——他右手的食指和中指之间夹着一张纸条,那张纸条折叠了,折痕新鲜,是刚刚折的,不是之前就有的,他是在她和兼定不在车里的这段时间折的。
有人给他传了纸条,或者他自己写了什么,折起来,但他没有拿出来说,只是夹在手指之间。
兼定上车,他没有问八奈见那条消息的内容,他只说了一件事,说疤脸那边的情况怎么样。
八奈见说,疤脸在档案库的时候遇到了一件事,他进去之后发现那件被单独标记的东西,已经不在原来的位置了,不是被取走,是被移动了,从档案库的存档区移到了另一个区域,那个区域的编号在档案库的内部管理系统里是一个不对外开放的隔离区,只有特定人员能进入,而疤脸的凭证卡,是三级权限,不够进那个隔离区。
那件东西在离开他们能拿到它的范围之前被人移走了,不是销毁,是隔离,是用一种只有特定人员能重新访问的方式把它锁起来。
但疤脸没有空手回来,他在进档案库的过程里注意到了另一件事——那个申请销毁剩余档案的内部编号,他在档案库里通过三级权限能访问的系统界面,顺着那个编号往上查了一步,那个编号的上一级归属账户,已经被注销了,但注销时间是三年前,同一批次的那次工号注销里的一个,但那个账户在被注销之后,仍然在三年内有过三次使用记录,最后一次使用记录,是今天凌晨四点三十分。
注销的账户用来申请销毁,用来制造七十二小时的延迟窗口,用来在窗口里移动那件被单独标记的东西,用来做所有这些需要系统权限的事,但这个账户在名义上三年前就已经死了。
和那个注销但仍有接收功能的账户的逻辑一样,有人在维持这个账户的最低限度活跃状态,让它能在需要的时候被激活,用完再沉回去,在系统里看起来像是一个错误,但每次都精确地完成了它需要完成的任务。
维持这些注销账户的运转需要一套共同的基础设施,那套基础设施,很可能就是那个地下层的机房,那套有人持续维护、有定期值守的设备阵列。
这几件事之间的连接,在她脑子里形成了一条线,那条线的两端,一端是三年前的夜莺计划,一端是现在,正在发生,时间精确,行动同步,像是某种被倒计时触发的预设指令。
这不是一个人在做,是一个结构,一个有人在维持运转的结构,而他们现在做的所有事,是在这个结构的边缘游走,每靠近一步就发现它比之前以为的更大一圈。
疤脸的消息在八奈见说完这些之后结束,他说疤脸已经离开了档案库,在往面包车方向走,大约十五分钟后到。
然后八奈见说了第二件事,说他在外围支持的过程里,接到了一条来自一个他存过但从未收到过消息的地址的信息,那个地址的注册时间是七年前,从来没有发送过任何东西,但今天早上大约在他们到达转运站的同一时间,那个地址发来了一条消息,内容只有一行,是一个时间:上午十点,和一个地点,是一个他不认识的建筑名称,但他在系统里查了那个名称,那栋建筑的登记信息里,有一个联系人的名字,那个名字,和今天凌晨在走廊里与他们见面的那个人,是同一个。
上午十点,从现在算,还有大约一个半小时。
那个发出消息的七年前注册、从未发送过任何东西的地址,是某种被长期持有但从未使用的联络渠道,是那种只在特定时刻才会被启用的地址,这意味着那个发出消息的人,在七年前就已经为这个时刻做了准备,把那个地址放在那里,等待某个他预设的条件被触发,然后通过那个从未使用过的渠道发出唯一的一条消息。
七年前,比六年前那次失踪案还要早一年。
祥子把油纸包在手里捏紧了一下,那里面还有半根没吃完的油条,捏紧之后油纸发出细小的摩擦声,她把那个声音作为一个停顿,把脑子里正在形成的那条线暂时压住,先处理眼前的问题。
他们现在有一个半小时,要决定是否去那个地点,是否相信那条来自七年前注册的地址的消息,是否相信那个走廊里的人在今天凌晨离开之后安排了这条消息,以及那条消息背后是不是他们掌握的那些信息缺口的答案。
疤脸十五分钟后到,如果他们要去上午十点的那个地点,需要在他到达之前确认路线,因为那个地点的位置,八奈见没说,但他说查了建筑登记信息,那栋建筑不是在城市北边,不是在他们现在的位置附近。
祥子把油纸包放在座位上,把手伸进口袋,摸到枪柄,又摸到了信标主板的那个位置,那里现在是空的,主板已经扔掉了,口袋里只有她在冷库里拿走的一样东西——花白头发男人的那条磨损痕对应的那件挂在颈间的东西,她没有把它拿出来,只是用手指摸了一下它的边缘,感受它的形状,长方形的,比名片稍厚,比名片稍宽,表面有细密的纹路,是那种防滑的触感,一侧有一个小的凸起,是接口的位置。
她在接口节点那间房间里,当所有人的注意力都在那张二十年前的证件和那块移动硬盘上的时候,从花白头发男人外套领口内侧,趁他转身面对窗口那一刻,把那件挂坠式的东西从他颈间的绳子上取下来,放进口袋,动作不超过一秒,他没有察觉。
她当时不知道那是什么,现在她把它和转运站地下层的那个空卡套对照,知道了那件东西的大小是能放进那个卡套的,而那个接口的位置,对应的是某种特定格式的读卡器,是那种高密度数据存储卡常用的接口格式。
那是一张储存了某些数据的卡,从花白头发男人随身带着到放进地下层的卡套,再到三到五小时前被值守者取走,但被取走的是值守者自己存的卡,还是花白头发男人的这张,她不确定——因为那个空卡套里有可能原来放的就是这张,也有可能放的是另一张,两张卡的大小可能是一样的。
如果卡套里原来放的就是这张,那么值守者取走的是空的,而祥子手里现在拿的是真正的那张。
如果卡套里放的是另一张,那么值守者拿走了另一张,而她手里这张,是花白头发男人另外持有的备份,或者是另一件完全不同的东西。
她没有把这件事说出来,她把那张卡重新放回口袋,把手拿出来放在腿上。
疤脸出现在停车位前面,他走进来,拉开车门,坐进前排,关上门,说了一件事,他在离开档案库的路上,经过库门口的时候,在出口的监控记录机旁边停了一下,不是看记录,是看那台机器的外壳,外壳上有一个贴纸,贴纸是那种很普通的透明贴,上面用细黑笔写了几个数字,格式是日期加时间,贴在那里很不显眼,像是某个操作员随手写的备注,但那个日期是三天前,时间是下午四点整,那个时间节点,正好是他们现在追踪的这条事件链里,某件他们之前标注但还没有对上位置的事出现的前三十分钟。
三天前下午四点,档案库的监控记录机外壳上被人写下了一个时间戳,不是维护记录,不是系统日志,是被人用笔手写上去的,写的人希望看见这个贴纸的人能把那个时间和某件事对应起来。
疤脸把那个贴纸拍了下来,他把手机屏幕转向后排,让祥子看了一眼。
那几个数字里,除了日期和时间,最后还有一个字母缩写,两个字母,是那种内部系统里部门代号的缩写格式,不是那个档案库所属的部门,而是另一个部门,那个部门的缩写,和花白头发男人那张二十年前证件上职衔缩写的前两个字母,是一样的。
同一个部门,二十年前的林祥,三天前的贴纸,今天的销毁指令,今天凌晨的值守者记录,还有那个上午十点的地点和那个七年前注册的联络地址。
这些事情的节点,开始以一种密度越来越高的方式朝同一个时间点收拢,不是随机收拢,是被某个外部的设计引导着往一个特定的时间节点汇合的。
那个时间节点,可能就是上午十点,可能更早,也可能那个上午十点只是另一次引导,把他们往更深处带。
八奈见把平板放下,说他需要五分钟确认那个地点的外围情况,他要在他们出发之前把那栋建筑的物理状态搞清楚,因为他们现在的凭证和通讯手段都已经被消耗了相当的部分,如果那个地点是一个陷阱,他们进去之后能用来脱身的余地非常有限。
兼定没有阻止他,他在等,他把视线放在车窗外,外面的街道开始有更多的人了,早晨的城市在七点到八点之间完成它自己的苏醒,送孩子上学的,去上班的,推着买菜小车的老人,骑着电动车的快递员,一个普通的工作日早晨,所有人都不知道他们旁边这辆面包车里,有四个人正在决定是否走进一个一个半小时后就会失效的地址。
八奈见把五分钟缩短到了三分钟,他说那栋建筑是一个已经停业的洗浴中心,三层楼,地下一层,建筑面积不大,停业时间是两年前,停业原因在登记里写的是“设施老化整改”,但两年内没有任何整改申请记录,是那种名义上停业但实际上还在被某种用途使用的建筑,这种建筑在城市里有一个共同特征——它们通常周边有足够密度的人群作为视觉噪音,让进出的人不那么显眼。
那个洗浴中心周边,早上九点到十一点之间,是附近居民买完早菜回家的路过高峰期,街道上人流密度足够高,适合不留痕迹地进出。
疤脸说了一件他刚才一直没说的事:他在从档案库出来往这里走的路上,在一条街道的路口等红灯的时候,看见了今天早上走廊里那个人,那个从西侧来的、鞋底有红土的人,他出现在路口的另一侧,也在等红灯,但他没有看向疤脸的方向,他在低头看一张纸,那张纸是折叠的,看了几秒,把纸放进口袋,灯变绿,他往西走了。
往西,不是往城市北边,不是往转运站,是往西,是往封锁施工区域的方向。
他知道那个方向有什么,或者他要去那里取什么。
疤脸说完,拉开车门,说他要去一个地方,不是那个上午十点的地点,是另一个地方,他不多说,说他在十点之前会和他们汇合,如果汇合不了,说明出了什么事,让他们按原计划行动,不要等他。
他下车了,车门关上,他往南走,走进早晨的人群里,没有回头。
面包车里剩下三个人,祥子在后排,兼定在她旁边,八奈见在驾驶位。
没有人说疤脸那张一直放在口袋里的折叠的纸,没有人说他膝盖上那个压痕,也没有人说他刚才说的那个“另一个地方”是什么意思,为什么他突然决定单独行动,决策的依据是什么。
这些事情加在一起的重量,在车里形成了一种很安静的紧绷,不是冲突,是那种各自掌握了某个不完整的部分但都没有说出来的状态。
八奈见发动车子,说他们先去往那个洗浴中心方向,到了附近找一个地方等,等到九点半再判断要不要进去。
车子驶出停车位,拐上主路,往南,往城市更密集的区域走,路边的商店开始有开门的了,卷帘门拉起来的声音在冷空气里很清脆,早点铺门口站着几个吃饭的人,拿着塑料袋装的豆浆,站在铺子外面,低头喝,热气从袋口飘出来,遇到冷空气,化成白雾。
祥子把手放在口袋外面,隔着口袋的布料,感受那张卡的轮廓,感受那个凸起的接口位置,想着那个接口格式对应的读卡设备,想着那种设备在什么地方会出现,不是在档案室,不是在他们见过的那些地方,而是在一个有相应设备的专用地点,比如一个有完整数据处理设备的地下机房。
她把这件事压在心里,等待某个她能用上那张卡的时机。
车子在一个路口等灯,八奈见的手机又震了,这次他拿起来看了更长时间,大约四秒,然后把手机放下,没有说话,但他的右手从方向盘上移开,搭在车门扶手上,那个移开的动作让他的重心偏向了一侧,是那种在脑子里重新调整某个判断的时候身体跟着偏移的无意识动作。
灯变绿,他重新把手放回方向盘,车子继续往前,他说了那条消息的内容,说那个七年前注册的联络地址,在发出那条上午十点的消息之后,又发出了第二条消息,第二条消息的内容不是地点,不是时间,是一个问题,问八奈见是否收到了第一条消息,是否会去。
那个地址在等回复,等了大约二十分钟没有收到回复,才发出了这个确认消息。
那个地址的使用者,不确定消息能不能被收到,不确定他们是否还在,不确定他们是否会去,但他等了二十分钟,然后问了。
这不像是一个陷阱的操作逻辑,陷阱不需要等待,陷阱的设置者不需要确认对方是否会来,只需要等着,来了就触发。但一个人在发出邀请之后等待二十分钟然后发出确认请求,是那种真的想知道对方是否收到,真的不确定对方会不会来,真的在这件事的结果上有某种期待或者不安的人才会做的事。
八奈见说他没有回复,他在等兼定的意见。
兼定说了一件事,说那个七年前注册的联络地址,对应的身份信息,他查过了,注册信息里的名字是一个虚构的人名,没有实际对应的身份证记录,但注册时使用的设备,根据当时的登录记录追溯,是从一个城市内的公共网络节点发出的,那个公共网络节点,在七年前的位置,是一个当时还在运营的信息服务站,那种信息服务站在七年前还很常见,现在基本都关闭了,但那个特定的信息服务站,它的位置,在当时,是在一栋建筑里,那栋建筑是夜莺计划的某个外围联络点,在六年前被关闭了。
六年前,那个联络点关闭了,也是在六年前,名单上的那个人消失了,也是在六年前,高个子在接口节点里叫出来的那个名字,对应的那个人,在一次行动里失踪了。
六年前同时发生了很多件事,那些事在当时没有被连在一起,但现在,这些事之间的线变得越来越密,越来越短。
祥子在后排,她把所有这些事排在脑子里,排成一条从七年前到现在的时间线,那条时间线上的每个节点,都有一个共同点——是主动安排,不是被动发生,每一个节点都是某个人提前做出的决定,在某个时间点埋下去,等待被发现,或者等待被触发。
那个等待了七年才发出第一条消息的联络地址,是这条时间线里最早的那个节点。
发出那条消息的人,等了七年。
在七年里,他等待某个他认为合适的时机,或者等待某个他认为必要的前提条件被满足,今天早上那个条件满足了,他发出了消息。
那个条件是什么,她现在没有足够的信息来确认,但她有一个直觉——那个条件,和那张她现在口袋里的卡有关,和那个七年前注册联络地址时同期被放进去的某个等待触发的规则有关,和那个一直在地下层运转的设备阵列有关。
当那张卡从花白头发男人颈间消失的时候,当那个设备阵列发出连接超时通知的时候,当那个预设规则检测到了某个它等待了七年的状态变化的时候,那条消息被自动触发发出了。
不是人在等待时机,而是系统在等待状态变化,状态变化了,系统发出了消息,联络了一个它存储了七年的地址。
那个地址是八奈见的频道地址,被存在那套系统里七年,等到今天。
这意味着七年前,有人就已经知道了八奈见,或者知道了他将来会使用的那个频道地址,或者那个系统在七年里一直在跟踪某个特征,今天在八奈见的平板上找到了那个特征,然后联络了他。
这件事的技术复杂程度,不是一个人能做到的,需要一个持续维护的系统,需要一个一直在运转的设备阵列,需要一个定期去值守的人。
他们刚才离开的那个地下层,就是那套系统运转的地方。
车子在一个路口拐弯,进入城市中部更密集的住宅区,洗浴中心在这片区域的某个角落,还有四十分钟就到上午十点。
然后八奈见把车突然停下来,不是遇到了红灯,是主动停,停在路边,熄火,他从平板上看了一眼某个位置,然后说那个洗浴中心的外围有异常,他在卫星图的延时更新里看见,那个洗浴中心所在的街道,在大约十五分钟前,有两辆车停在那条街道的两端,停的位置和正常停车的位置不同,是那种在控制一个区域出入口的停法,两头锁,中间那栋建筑,是他们要去的地方。
两辆车,两头锁,控制出入,在他们到达之前,有人已经先到了那里,而且不是单个人,是有组织的,是有提前准备的。
那个七年前注册的联络地址,发出的那两条消息,可能是真实的等待,也可能是某种引导——把他们引向那个洗浴中心,而两辆锁住街道两端的车,在那里等着他们进去。
但也可能那两辆车和那条消息是不同来源的,是另一批人提前知道了那个地址的存在,提前知道了消息会被发出,提前到了那里,要抢在他们之前控制那个地点。
这两种可能性的差别,决定了他们接下来是要绕开那条街道去那个地点,还是要完全取消这次约定。
祥子在后排,她没有说绕开还是取消,她说了另一件事:那个洗浴中心停业两年,地下一层,有某种持续使用的特征,这和那个废弃转运站的地下层的特征高度一致,城市里可能有不止一个这样的地下节点,都在使用同一套逻辑维持运转,彼此之间通过那套设备阵列保持连接,而那两辆锁街道的车,可能不是来抓他们的,是来锁住那个地下节点的,不让任何人进去,不管是他们还是其他什么人。
有人在今天上午开始对这些地下节点逐一封锁,时间节点和销毁档案库的销毁指令,是同步的,是同一套行动计划里的两个分支。
封锁节点,销毁档案,同步进行,这是一次清场,彻底的清场,要在某件事到来之前把所有入口堵死。
而那个七年前注册的联络地址,在清场开始之前发出了消息,不是随机的,是在检测到清场行动启动的信号之后,触发了这条消息,试图在清场完成之前把某个关键信息传递出去。
不是陷阱,是预警。
但预警里选择的地点,已经被锁住了。
兼定在她说完之后,沉默了大约四秒,然后让八奈见重新发动车,不往洗浴中心去,往另一个方向,往城市东侧,往他们今天早上出发的那个住宅区,往那栋他们停过车的楼,他说那里还有一个人,那个他们今天早上在走廊里见到的、鞋底有红土的人,他没有去洗浴中心,他往西走了,但西侧是封锁施工区域,现在封锁施工区域的边缘有货车,有档案库的销毁指令,有清场行动,那个人走进了正在被清场的那个方向。
疤脸跟着那个人往那个方向去了,没有说他要做什么,说他在十点之前汇合,如果汇合不了说明出了事。
现在距离十点还有三十分钟,疤脸没有消息。
八奈见在驾驶位已经把车发动了,他把目的地设向东侧住宅区,但他没有立即踩油门,他的手机震了,这次是来电,不是消息,他接了,把手机放在耳边,没有开免提。
电话里说了什么,祥子和兼定都听不见,但八奈见听的时间很短,大约二十秒,然后他把手机放下,把车子挂入挡位,踩了油门。
他说了一件事,只有一句话:电话是疤脸打来的,他说他在西侧,他找到了那个值守者,那个值守者手里有那张卡,但那个值守者不打算把卡给他们,那个值守者有另一个安排,他要把卡带去一个地方,那个地方,是现在正在被两辆车锁住的洗浴中心。
值守者要去那个洗浴中心,用那张卡打开里面的某样东西,但两辆车锁住了街道,值守者进不去,疤脸看见了这个局面,现在他在等,在等他们做决定。
车子加速,驶上主路,往西,不是往东,改变了方向,因为现在所有的线都往同一个地方收,那个被两辆车锁住的洗浴中心,和那张被值守者拿着但进不去的卡,和那个在七年前就已经安排好的系统,都在等待同一件事发生。
那件事是什么,谁先到谁先做,谁拦截了谁,谁的安排在这件事里是最外层的那个,还是最里层的那个——这些问题的答案,都在那个洗浴中心的地下层里,在那套设备阵列里,在那张卡能打开的那件东西里。
而他们还有二十八分钟。
车子在清晨的街道上加速,路边的建筑往后掠过,早市的摊贩开始收摊,停在路边的自行车在风中轻轻晃,一切都很普通,很日常,像是一个城市里任何一个星期三的早晨,只是有四件事正在同时往同一个地点汇合,那个地点的下面,埋着七年前就被放在那里的某个等待,而那个等待的终点是什么,没有任何一个现在还活着的人知道全部。
但祥子手里有那张卡,她把右手放进口袋,手指绕着那张卡的边缘,感受那个凸起的接口,感受那个防滑纹路,感受那件东西的重量——比她想象的更轻,但那种轻,是那种把很重的东西压缩进极小空间里之后产生的轻,是那种重量不在物理形态上而在里面的东西上的轻。
里面的东西是什么,她还不知道,但她知道它是今天所有事情的最里层。
车子在一个弯道减速,拐上了往西的那条路,方向是城市西侧,是封锁施工区域,是那个被锁住的洗浴中心,是那个等待了七年的系统,是那件还没有被任何人读出来的卡里的内容,是这整件事的最深处,也是她从今天凌晨一步一步走过来之后,第一次真正要触碰到核心的时刻。
但在她的视线经过车窗外的时候,她注意到一件事:那条往西的路上,在他们前方大约三百米的位置,有一辆摩托车,摩托车的速度和他们差不多,方向相同,往西,骑摩托车的人戴着头盔,但骑车的姿势,左腿落地比右腿先落,是那种旧伤之后的代偿性骑车姿势,和今天凌晨走廊里那个人进来时的步伐,是同一种代偿。
那个人也在往西走,不是往封锁施工区域,是往洗浴中心的方向,他用摩托车,比步行快,比他们的面包车快,他比他们先到。
三百米的距离,在清晨的城市里,五分钟之内就会消失。