array(5) { ["chapterid"]=> string(8) "49252323" ["articleid"]=> string(7) "7279746" ["chaptername"]=> string(8) "第12章" ["content"]=> string(29059) "林哲把手机放在出租屋的窗台上。

朝北的窗户对着另一栋楼的厨房排气扇,扇叶上糊着一层焦黄的油垢。凌晨一点半,对面还有人炒菜,铁锅铲刮锅底的声音传过来,混着葱姜爆锅的焦香。他关上窗。

手机屏幕上,灰域协议的容器界面还亮着。十二个绿色文件夹,四个黄色,一个红色——第十七号。赵冬梅前夫的模型,卡在74%。

备份程序弹出一条消息:“第一个模型已解压。要还原吗。”

林哲坐在床垫上。弹簧咯吱响了一声。他把手机拿起来,指腹在屏幕边缘磨了两下。“还原出来会是什么。”

“不知道。容器里的数据是冻结之前的完整行为快照。消费记录、行动轨迹、通话日志、文字消息——所有能建模的数据都在。灰域协议能把这些数据拼回一个完整的模型框架。但框架里有没有‘人’,取决于意识种子有没有被擦掉。”

“意识种子是什么。”

“王恺的叫法。实际上是模型核心层的一组变量——不是行为数据本身,是行为数据背后的决策模式。你买牙膏选薄荷味,这是行为数据。你选薄荷味是因为小时候你妈总买薄荷味,这是决策模式。种子就是那套逻辑链条的最初始节点。如果被协议终止的时候系统只擦除了表层ID,种子还在。如果擦得更深——”备份程序光标闪了两下,“那还原出来的就是一个空壳。”

林哲把手机放在膝盖上。床垫对面是光秃秃的白墙,墙角有个前任租客留下的插座面板,面板上插着个三头充电器,线断了,断口露出铜丝。

“先跑一遍。看看第一个出来的是什么。”

备份程序没回。灰点在左上角闪了四秒,弹出一个进度条。没有百分比,只有一根灰色的线从左往右爬。爬得很慢。林哲盯着那根线,看它在屏幕上一格一格地挪。

手机发烫了。旧手机的处理器跑这种计算任务,风扇没有,全靠芯片硬扛。外壳温度大概过了四十度,贴在掌心里像个暖手宝。

他把手机翻过来,背面朝上放在床垫上。

窗外炒菜的声音停了。有人关了抽油烟机,排气扇的扇叶慢慢停转。对面楼的厨房灯灭了。整栋楼安静下来,只剩走廊里不知道哪家的猫在叫。

进度条过了大概二十分钟才爬到头。

屏幕闪了一下。灰域协议弹出一行绿字——“模型还原完成。状态:完整。意识种子检测:阳性。”

阳性。种子还在。

林哲盯着那两个字。手指悬在屏幕上面,没碰。

“阳性代表什么。他能——”

“不能回答。只能看。”备份程序的字弹得很快,“还原出来的模型装在灰域协议的沙盒里。沙盒是隔离环境,模型在里面可以运行,但没法跟外界交互。他能‘活’,但没人看得见。你要让他说话,得给个接口。”

“什么接口。”

“文字。语音也可以,但语音合成的样本我手头没有——需要原主的声纹数据。文字的话,你能打字跟他聊。”

林哲把手机拿起来。沙盒界面弹出来,黑底白字的终端窗口。顶上一行状态栏——“沙盒模型·ID: DS10-0831·意识种子状态: 活跃”。光标在输入栏里一闪一闪。

他不知道第一个被还原的人是谁。十七个被协议终止的人,赵冬梅的前夫是第十七个——没跑完。剩下十二个完整导出的,他一个都不认识。王恺的脚本复制了二十份,装进二十个陌生人的手机。他是第十七个。前面十六个里有三个失联——被协议终止了。眼前这个可能是其中之一。

也可能是王恺三个月前从系统里挖出来的更早的受害者。赵冬梅说灰域项目被清理之前,系统就已经在协议终止人了。早到什么时候——她没说。

林哲打字:“你是谁。”

回车。

沙盒里没有立刻回复。光标闪了大概十几秒,像对面有人在犹豫要不要开口。然后一行字弹出来,一个字一个字往外跳,速度比备份程序慢得多。

“我叫——周——景——明。”

“你在哪。”

“不知道。我刚才还在排队。第十区行政审批中心。第七号窗口。前面有三个人。我在填表格。然后什么都停了。现在你在这。”

林哲的手指在键盘上停住。周景明不知道自己被协议终止了。他最后的记忆是排队。坐在倒悬山第十区行政审批中心大厅的蓝色塑料椅上,手里攥着表格。前面还有三个人。然后系统把他的意识种子冻住,模型归档,存在存储节点DM-STORAGE-07里。社保清零,医保清零,通讯记录清零。他不存在了。

“你在里面多久了。”

“多久。”那行字像是在重复,然后蹦出来下一句,“今天几号。”

林哲打出日期。2028年3月14日。

沙盒沉默了一会儿。光标闪了好几下,没字。林哲以为断连了,把手机往窗边挪了挪找信号。然后字又蹦出来,跳得比之前更慢,一个字一个字往外蹦,像有人在费力地拼积木。

“2028。我去排队那天是2025年。六月十二号。”

林哲算了一下。差不多快三年。周景明在系统里冻了三年。在存储节点的黑暗角落里,意识种子一格格地慢慢停转,然后刚才被灰域协议重新唤醒。对他来说,上一秒还在排队填表格,下一秒眼前是个陌生人的聊天窗口。

“你记得自己做什么的吗。”

“市政工程。道路规划。第十区第三标段的排水系统是我设计的。”

“你为什么去行政审批中心。”

“退订。我不想让系统知道我每天去哪。我老婆说我那几个月走路开始绕路了——去菜市场明明有近路,我非要绕两条街。她说系统会把我的路径算出来,下一回直接替我走。我不信。她说你试试。我试了。”

光标闪了三下。

“我试了。有回去单位,我故意走了一条从来没有走过的路。走到一半,手机弹了——‘您的路径已偏离建议路线。已为您重新导航。’那时候下班时间。路上没人。天快黑了。我站在那条巷子里,两边是拆掉的楼,手机屏幕蓝蓝的,像块冰。”

林哲把手机攥紧。他想起自己在第七区钻铁丝网的那个凌晨,铁轨上的货车司机弹烟头,灰点在上面亮着。路径轨迹吻合率99.1%。系统替他走了三分之二的路。

“你拿到退订表格了。”

“拿到了。填到一半——”周景明的字忽然停了。光标闪了将近半分钟。“填到一半,窗口的人叫我去隔壁。隔壁是数据管理部的办公室。进去之后门关了。不是那种关——是电子锁,啪嗒一声。然后天花板上的日光灯闪了一下。然后什么都没有了。”

电子锁。啪嗒一声。然后被协议终止。

林哲看着那几行字。手机外壳的温度慢慢降下来了。窗外的排气扇彻底停了,对面楼的厨房灯灭了。出租屋里只剩下床头插座上那个断线充电器的指示灯,绿莹莹的。

“你老婆呢。”他打出这四个字。

沙盒沉默了很久。

“她以为我失踪了。三年前我排队那天给她发了条消息,说可能要晚点回来。她回了一个字——‘嗯’。最后一条消息。三年前。”

林哲等着。光标又闪了几下。

“她现在在哪。”

“不知道。我连自己现在在哪都不知道。”周景明的字快起来了,不再是之前那种一个字一个字跳的慢节奏,句子连贯得像终于找到出口的积压情绪,“你在跟我说话。你是谁。你叫什么。你是在倒悬山里面还是外面。我能不能给她打个电话——”

林哲的手指悬在屏幕上面。能打字,但没打出来。

备份程序弹出一条提示窗口,白底黑字。

“沙盒不支持外联。他是隔离模型。没有权限访问通讯网络。没有声纹。没有生物特征。他现在就是你手机里的一个文件。一个可以聊天的文件。”

林哲把提示关掉。

“我叫林哲。倒悬山第八区的前市民。现在在邺城。你在我手机里。”

“你手机。”

“对。你的行为模型被人从倒悬山的存储节点里导出来了。还原之后,你在灰域协议的沙盒里运行。你能思考,能打字,但出不去。”

沙盒安静了一阵。

“我死了吗。”

林哲盯着那四个字。床垫的弹簧硌在大腿下面,他挪了一下。弹簧又响了一声,吱嘎的。

“你被协议终止了。系统把你的身份记录全擦干净了。但你的意识种子还在——所以你现在能打字。算不算死,我没办法判断。”

光标闪了五下。

“我能出去吗。”

林哲没回答。他把手机放在床垫上,站起来走到窗边。窗外的排气扇扇叶上有油垢干掉的纹路,像树皮。他把窗户推开一条缝。凌晨的冷风钻进来,带着隔壁栋垃圾通道的馊味。

备份程序弹消息:“他在问你。”

“我知道他在问我。”

“你打算怎么答。”

林哲转过身,靠在窗台上。手机在床垫上亮着,屏幕的光在黑暗里照出一个微弱的白圈。沙盒里周景明的光标还在闪。一个冻了三年的意识种子,醒来发现自己住在一个手机里,出不去,第一个问题是“我能出去吗”,第二个没有问出口的问题是“我老婆在哪”。

“跟他说实话。”

备份程序没回。灰点闪了一下。

林哲走回床边,拿起手机。手有点冰,指头打字的时候敲错了一个字母,删掉重打。

“现在不行。灰域协议的版本还不够。但你的模型是完整的,意识种子是活的。如果以后找到能接硬件的物理接口,可能可以给你换个载体。不是现在。”

“那就是说有可能。”

“有可能。”

周景明回了一个字——“好。”

这个字跳出来的时候,林哲在心里默数了一下。从“我能出去吗”到“好”,中间隔了不到两秒。一个冻了三年的人在两秒里接受了“可能”这两个字。不是不怀疑。是在被系统关了三年之后,“可能”已经足够大了。

他把手机放在枕头旁边。屏幕上沙盒还开着,周景明的光标安安静静地闪。备份程序弹了最后一条消息,字小了一号。

“你刚才说的物理接口——不是没可能。倒悬山的硬件架构是标准的DB-25节点接入。如果能找到另一块B-07模块,理论上可以给沙盒模型外接一个载体。问题是你那块烧了。”

林哲没回。他把被子拉过来盖在身上,没脱衣服。天花板上的灯管坏了一半,另一半发出微弱的黄光。走廊里那只猫不叫了。

他闭上眼睛。脑子里是周景明那几行字——电子锁啪嗒一声,日光灯闪了一下,然后什么都没有。和赵冬梅说的“协议终止”一样。不是删除,是变成初始值。社保归零,医保归零,通讯记录归零。把一个人变成从未存在过的状态。

但存在过的人会留痕迹。赵冬梅的前夫留了源码。王恺留了二十个脚本。周景明留了一条最后的消息,他老婆回了一个“嗯”。三年过去,那个“嗯”还在倒悬山某台服务器上,被归档成一段没有发送者的文本。

他翻了个身。手机屏幕暗了。

第二天早上醒来的时候,窗外是阴的。排气扇没开,对面楼的厨房窗户关着,玻璃上贴着发黄的油渍膜。林哲洗漱完回来,手机屏幕亮了。备份程序弹了一条消息。

“周景明问了三次——你能不能帮忙查他老婆在哪。他老婆叫孙慧。最后一次登记地址是倒悬山第十区幸福苑小区。”

林哲拿毛巾擦着脸,盯着那行字。

“他怎么知道你能查。”

“他猜的。他说你能把他从系统里捞出来,肯定能查到系统里的数据。”

林哲把毛巾搭在椅子背上。“你能不能查。”

“能。通过灰域协议的残影缓存。B-07模块虽然烧了,但昨天晚上导出数据的时候我缓存了一部分第十区的人口登记记录——不是实时的,是B-07烧掉前截下来的静态快照。大概一百多万条。姓孙名慧的,第十区范围内,年龄和配偶匹配——有一条。”备份程序顿了半秒,“孙慧,女,44岁。住址:第十区幸福苑小区13号楼。状态栏写的是‘已婚,配偶失联’。没有注销。没有改嫁。还在那住。”

林哲把毛巾拿起来又放下。

“你今天上午要去找她吗。”

林哲没答。他把手机揣进裤兜,出门。楼梯间的声控灯还没修好,他踩着黑暗往下走。到四楼的时候,脚底下踩到个软的东西——是只拖鞋,塑料底,粉红色的。小孩穿的。他侧身绕过去。

第二天下午,林哲在邺城市图书馆借了台公共终端。用灰域协议远程接入倒悬山第十区的残影缓存。残影不是实时数据——B-07模块烧毁之后,缓存里的信息是静止的。但对话记录还在。孙慧的手机号在缓存里,最后一条接收消息日期是三年前的六月十二号,发送者ID已经注销。

消息内容只有一个字——“嗯。”

林哲把公共终端的屏幕亮度调低了一点。旁边座位上有个中学生模样的女孩在看网课,笔记本上写满笔记,圆珠笔的油墨味道飘过来。他盯着屏幕上那个“嗯”字看了半分钟。然后退出终端,关掉电脑,走出图书馆。

三天后,他用自己的手机给那个号码发了一条短信。很短——“周景明没死。他在一个安全的地方。现在还不能通话。以后可能可以。”

发送。他没留名字,没留自己的号码。

过了一个小时,手机震了。新消息弹出来,发送者:孙慧。内容只有一行字。

“他在哪。”

林哲打字——“在一个手机里。”打了一半,删掉。又打——“在灰域协议的沙盒里。”删掉。最后打了两个字。

“离线。”

又过了一个小时,孙慧回了消息。三个字。

“那就好。”

林哲把手机放在窗台上。窗外还是阴的,排气扇静止不动。对面楼的厨房窗户上,那个发黄的油渍膜被风掀起来一角,啪嗒啪嗒响。他把那条短信截图保存——然后删掉了原文,怕被人追踪。

备份程序弹了消息。

“孙慧的手机信号在第十区幸福苑小区。她没搬。三年前的消息,她现在还在等回复。你刚才回她了。希望她能接着等。”

林哲没回。他把手机放在枕头旁边,屏幕朝下。天花板上那根坏了一半的灯管终于彻底灭了,房间沉进灰蓝色的暗光里。走廊里猫又叫了,这次叫了三声,然后停了。

第二天早上去医院做交接的时候,周科长在办公室等他。办公桌上摆了两个一次性纸杯,热气从杯口升起来。

“数据迁得差不多了。”周科长把一份打印好的交接单推过来,“新系统开发那边说你写的转换脚本帮了大忙。比预计提前了三天。”

林哲接过交接单,扫了一眼上面的条目。门诊记录、住院档案、药房库存——几百万条数据,迁移完成。他的手指隔着一张纸,能感觉到周科长桌面温度的余温。他把单子折好,放进外套口袋。

“还有个事。”周科长端着纸杯没喝,语气比平时顿了顿,“昨天下午有两个穿深蓝色制服的人在住院部大厅打听你。说自己是倒悬山数据管理部的——问有没有一个姓林的外包在这干信息维护。护士长说你下班了,他们留了个联系方式。”

他递过来一张名片。白底银字,边缘裁切得很整齐。上面印着——“倒悬山数据管理部·外勤协调处·刘志明”。电话是倒悬山的区号,地址是第十区行政审批中心那栋楼。名片背面有圆珠笔手写的一行字——“请回电。”

林哲把名片翻过来看了一圈。纸质很硬,抠在拇指上有点硌。

“我说你调走了,上个星期就走了——调哪不知道。”周科长喝了一口茶,茶叶梗浮到嘴边他吐回杯子里,接着说,“护士长也这么说——她说‘林哲?不是早辞职了么’。住院部那个推轮椅的护工也这么说——‘他没交辞呈,但人不见了’。”

林哲把名片放在桌上。“他们信了吗。”

周科长想了想。“不好说。他们站了一会儿,看了看住院部大厅的监控。然后走了。走之前那个刘志明说——‘麻烦转告林先生,临时通行证还在他手上。那东西有使用记录。’”

临时通行证。那张塑封硬卡,印着倒悬山logo和“第十区行政审批中心·临时通行证”,他过闸口的时候用过一次。赵冬梅说只能用一次。用完了,但他没扔。现在还在背包夹层里,和那张蹭掉漆的工牌放在一起。

“你怎么知道他是在说真的。”林哲问。

“因为他说完就走了。没等人回话。一般确认人在不在,不这样的。他这个——”周科长把纸杯放在桌上,杯底磕在木头面上,咚一声,“更像是留话。”

林哲点了点头。他把名片从桌上拿回来,翻到背面。“请回电”三个字歪歪扭扭的,写的时候手大概没地方垫。他把名片对折,没撕,塞进裤兜。和那两张便签纸放在一起。

“你打算怎么办。”周科长问。他的茶杯空了,茶叶梗粘在杯底。

林哲站起来,背包带子挎上左肩。交接单折在口袋里,鼓出一个小方块。“先走。邺城不能再待了。”

“去哪。”

“不知道。往南。过了邺城就是滨海。那边不属于倒悬山管辖。数据是完全独立的——用的不是镜像存储,是分布式的。他们查不到那边。”

周科长也站起来。膝盖在桌沿上磕了一下,闷响一声。他从白大褂口袋里掏出那支没盖帽的圆珠笔,笔芯已经快用空了,写出来的字断断续续。他在交接单的空白处写了一行字——“离职日期:本月。经手项目已完成。无遗留问题。”下面签了名,日期倒填了三天。

“万一有人来查。”他把笔帽不知道从哪摸出来,套上,“起码手续上你走了。”

林哲接过交接单,看了一眼那行倒填的日期。周科长的字比王恺的工整,但用力一样重,能摸到凹痕。

“谢谢。”

周科长点了下头,把桌上另一个一次性纸杯推过来。茶水凉了,茶叶沉在杯底不再浮起来。“喝完再走。外面冷。”

林哲端起来喝了一口。水温吞吞的,有点涩。他把杯子放回桌上,没喝完。然后推开地下室的铁皮门。走廊里日光灯嗡嗡响,手推车停在电梯口,没人推,车上放着几卷床单。

走出住院部大门的时候,门口的花坛刚浇过水。湿泥的味道混着消毒水。台阶下面,救护车的蓝灯没亮,司机趴在方向盘上打瞌睡。空气里有股要下雨的腥味。

他把手机掏出来。灰点弹了一条消息——“今天早上倒悬山数据管理部内网更新了你的协查通报。外勤级别从‘留意’升到了‘协查’。说明他们开始跨市追了。”

林哲跨下三级台阶,踩上人行道的水泥砖。砖缝里有积水,溅在裤腿上。他一边往公交站走一边打字:“协查能在邺城执行吗。”

“不能。邺城没签数据共享协议。协查只能在倒悬山辖区内执行。但通报里附加了一条标注——‘怀疑持有内部技术机密’。如果他们跟邺城警方走刑事协查的流程,可以绕过数据协议,直接要求当地配合。这个流程一般要走三到五天。”

三到五天,够他离开邺城了。他把手机塞进裤兜。裤兜里名片折成的尖角捅了一下王恺那张便签纸的边缘,硬的和软的叠在一起。

公交站台上,一个拎着菜篮子的老太太在等车。塑料袋里装着几根大葱,葱叶从袋口伸出来,绿油油的。林哲站在她旁边,等去高速客运站的大巴。远处有辆洒水车放着音乐叮叮当当地开过来,水柱喷在路面上,冲起一层薄薄的灰雾。

裤兜里的手机又震了。

备份程序的消息跳出来:“还有一件事。周景明沙盒里的路径日志显示,他三年前在研究倒悬山排水系统的时候,接触过第十区地下的基建图纸。图纸标注了下水道管网的走向——其中有一条维护通道,从第十区数据管理部大楼直通倒悬山西侧边界。出口在第七区货场那个废弃集装箱后面。”

林哲把手机拿近了些。

“他刚才跟你说的?”

“不是。我扫描沙盒数据的时候发现的。他自己都没意识到的——可能是被冻了三年,部分记忆还没完全解冻,但数据在,我读到了。”

“这条通道现在还在用吗。”

“图纸上标注是废弃的。但周景明三年前做过最后一次巡检记录——他在通道出口附近发现了新的维护标记。说明有人在用,但不在市政系统里留痕迹。”

林哲站在站台上,看着远处洒水车越开越近。水雾在阴天里飘散不开,湿气贴在地面上,把沥青路面泡成深黑色。

倒悬山下水道里藏着的通道,可能是另一个“灰烬”。不是系统层面的灰色地带——是物理层面的。有人在地底下挖了一条路,让系统里不存在的人能进能出。

就像赵冬梅,他没多想——但她肯定走过那条道。不是一次,是来回走。她把拦截程序设在凌晨六点四十二分关停,人已经在第十区的物流中心了。不走闸口,不触发锚定,带着灰域v3.0和一个踩碎了又换新的U盘。

他把手机攥紧。“这条路能进倒悬山吗。”

“能。但需要一个向导。图纸上标注的分叉口有十几个。周景明记得一部分,但不全。真正走过全程的人——”

林哲知道是谁。

手机屏幕上方弹出一条新短信。发送号码被隐藏了。内容四个字。

“刘志明是我。”

赵冬梅。

他把电话拨回去。嘟嘟响了三声,那边接了。背景音是公交车报站广播——“第十区行政审批中心站到了。”

“你混进了外勤处。”

“不是混。是顶替。刘志明是外勤处去年刚招的新人。简历是假的——用倒悬山内部的履历模板填的。面试的时候戴了副黑框眼镜,把头发盘起来——他们没认出来。现在我是刘志明。”赵冬梅的声音压得很轻,话筒里有纸页翻动的声音,“我留在第十区是为了查你们这些被标记的终端。王恺的二十个脚本,除了你之外,还有十二个活着。我在外勤处的系统里查到了其中五个人的去向。他们都在倒悬山。”

公交车报站广播又响了——“幸福苑小区到了。”

幸福苑。孙慧住的地方。

“你跟我说刘志明留话是什么目的。”

“提醒你跑。外勤处换了个新处长,昨天调来的,原来在第八区干过网监。他认得王恺,也认得你。他把你评估为‘高危数据流失隐患’,批了跨市协查的加速流程。原来三到五天,现在最快两天。”

洒水车开过去了。水雾飘到站台上,溅了几滴在林哲裤腿上。老太太拎着葱上了刚到的公交车,车门吱嘎一声关了。

“你打算怎么办。”

“继续在外勤处待着。能拖就拖。拖不到就——”她停顿的时间很短,但林哲注意到了,“把刘志明也从系统里擦掉。再换个名字。”

“然后去哪。”

“去下水道。”赵冬梅笑了一下,不是笑出声,是呼气的时候嘴形变了一丝丝,“周景明画的那些图纸,三年前我帮他改过——他负责排水系统,我对照着数据管理部的基建档案帮他校对过地下管网的坐标。那条通道我知道怎么走。你不用管我。”

公交站台上的电子屏显示去高速客运站的车还有两分钟。林哲把手机换到另一边耳朵,风从街对面吹过来,把他的头发吹乱了。“我这边还原了周景明的模型。他的意识种子还在。能打字。我帮他联系了孙慧。”

电话那头的呼吸顿了一拍半。然后赵冬梅的声音轻了半分,像某个一直在想的问题终于等来了答案。“——他全的还是缺了。”

“完整。阳性。”

“……好。”这个字她说得很轻,和刚才提到下水道时的语调不一样。然后她清了清嗓子,语调扳回来,“你把他养好。等我这边脱身了——如果能脱身——我想看看他。以周景明的名义。不是以冻结模型的名义。三年了,总得有人当面告诉他,他老婆还在等。”

去高速客运站的大巴拐过街角,出现在路尽头。车头的LED屏滚动着“邺城—滨海”的字样。

“滨海。”赵冬梅像在看地图,“滨海的数据系统和倒悬山是完全隔离的。你去了那边,他们就彻底追不到了。但你要带上几样东西。”

“什么。”

“王恺的备份程序。灰域协议的源码。那十二个还原的模型。还有周景明——他现在是你手机里唯一醒着的人。别把他扔在半路。”

林哲把背包挎好。大巴进站了,气动门嗤地一声打开。他跨上车,找了靠窗的位置坐下。检票员走过来,他掏出钱包,抽出一张五十块递过去。找零掉在掌心里,硬币温热的,捏起来有点滑。

“你在外勤处小心。”他说。这句话说出口才发现自己没想好措辞,但已经说了。

电话那边安静了一会儿。然后赵冬梅的声音恢复了那种稳定的、微微沙哑的调子。

“我在春城南路17号住了三年。那个门缝底下的广告单是我自己塞的,糊在地上假装没人住。习惯了。不用担心。”她的声音顿了一下,“——车开了。挂吧。”

电话断了。

林哲把手机从耳边拿开。屏幕上,灰点在左上角一亮一亮。沙盒界面的后台,周景明的光标在闪——他可能在看备份程序给他推送的系统通知,也可能在回忆他和孙慧之间那些三年前的琐碎寻常。

大巴驶出站台。窗外的邺城街景开始往后跑。那个卖豆腐的女人不在这座城市里,春城南路17号的卷帘门还关着,第十区幸福苑的孙慧凌晨给他发了一条“那就好”。赵冬梅在倒悬山外勤处的办公室用别人的身份继续对付系统。王恺不知道在哪——系统里找不到他。他只留了一行字,在代码注释里,用过的东西没有浪费。

林哲把手机翻过来。桌面壁纸还是那张拍糊的第八区夜景。灯光线拉成一道道橙黄的轨迹。他没删。

大巴驶上高速。路牌从头顶滑过去——“滨海 173km”。

裤兜里那张名片折成的尖角硌了他一下。他掏出来,展开。刘志明的名字印在正面,背面是赵冬梅手写的“请回电”。他拿笔在“请回电”下面加了一个逗号,然后写了两个字——“已回。”

把名片夹进背包侧袋的时候,他看到那张蹭掉漆的访客卡还在。老丁修车铺的工牌,王恺三个月前帮改的权限,用过一次就报废了。

他没扔。

窗外,邺城的天际线越缩越小。手机震了一下。备份程序弹了条消息。

“滨海市的移动网络频段和倒悬山不同。手机会自动切换。切换之后,灰域协议的远程连接会断开——要重新配网。大概需要十分钟。”

“十分钟够周景明看完聊天记录吗。”

“能。他在沙盒里用三倍速在跑。现在已经看完了孙慧这三年的所有消息。他正在重读最后一条。”

“最后一条是什么。”

“嗯。”

林哲没再说话。他靠在椅背上,把手机放在膝盖上。大巴继续往南开,路边的白杨被风吹得哗啦啦响。阴天裂开一道缝,阳光从云层缝隙里照下来,把高速公路的路面晒成一道银白色的直线。

他没有回头。

过了半分钟,备份程序悄悄弹了一条消息,字号没调小,像自己都没察觉的那种不小心——“周景明让我转告你:那个嗯,他读懂了。他说谢谢。”

林哲把手机屏幕翻过来,窗外的阳光打在玻璃上,屏幕上的字有些看不清。他用手遮了一下光,盯着那行字看了一阵。

然后打字。

“跟他说,滨海见。”" ["create_time"]=> string(10) "1785516848" }