@prosopo/provider 4.15.17 → 5.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build$colon$cjs.log +102 -101
- package/.turbo/turbo-build$colon$tsc.log +24 -24
- package/.turbo/turbo-build.log +103 -102
- package/CHANGELOG.md +137 -0
- package/dist/api/admin/apiAdminRoutesProvider.d.ts.map +1 -1
- package/dist/api/admin/apiAdminRoutesProvider.js +3 -5
- package/dist/api/admin/apiAdminRoutesProvider.js.map +1 -1
- package/dist/api/admin/apiReplaceDetectorPoolEndpoint.d.ts +11 -0
- package/dist/api/admin/apiReplaceDetectorPoolEndpoint.d.ts.map +1 -0
- package/dist/api/admin/apiReplaceDetectorPoolEndpoint.js +56 -0
- package/dist/api/admin/apiReplaceDetectorPoolEndpoint.js.map +1 -0
- package/dist/api/captcha/assignDetectorBundle.d.ts +6 -0
- package/dist/api/captcha/assignDetectorBundle.d.ts.map +1 -0
- package/dist/api/captcha/assignDetectorBundle.js +50 -0
- package/dist/api/captcha/assignDetectorBundle.js.map +1 -0
- package/dist/api/captcha/assignDetectorBundle.test.d.ts +2 -0
- package/dist/api/captcha/assignDetectorBundle.test.d.ts.map +1 -0
- package/dist/api/captcha/assignDetectorBundle.test.js +71 -0
- package/dist/api/captcha/assignDetectorBundle.test.js.map +1 -0
- package/dist/api/captcha/getFrictionlessCaptchaChallenge/constants.d.ts +3 -0
- package/dist/api/captcha/getFrictionlessCaptchaChallenge/constants.d.ts.map +1 -1
- package/dist/api/captcha/getFrictionlessCaptchaChallenge/constants.js.map +1 -1
- package/dist/api/captcha/getFrictionlessCaptchaChallenge/decisionMachine.d.ts +1 -0
- package/dist/api/captcha/getFrictionlessCaptchaChallenge/decisionMachine.d.ts.map +1 -1
- package/dist/api/captcha/getFrictionlessCaptchaChallenge/decisionMachine.js +59 -2
- package/dist/api/captcha/getFrictionlessCaptchaChallenge/decisionMachine.js.map +1 -1
- package/dist/api/captcha/getFrictionlessCaptchaChallenge/decryptSimdReadings.d.ts +1 -1
- package/dist/api/captcha/getFrictionlessCaptchaChallenge/decryptSimdReadings.d.ts.map +1 -1
- package/dist/api/captcha/getFrictionlessCaptchaChallenge/decryptSimdReadings.js +3 -3
- package/dist/api/captcha/getFrictionlessCaptchaChallenge/decryptSimdReadings.js.map +1 -1
- package/dist/api/captcha/getFrictionlessCaptchaChallenge/handler.d.ts.map +1 -1
- package/dist/api/captcha/getFrictionlessCaptchaChallenge/handler.js +16 -8
- package/dist/api/captcha/getFrictionlessCaptchaChallenge/handler.js.map +1 -1
- package/dist/api/captcha/getFrictionlessCaptchaChallenge/shortCircuit.d.ts +2 -0
- package/dist/api/captcha/getFrictionlessCaptchaChallenge/shortCircuit.d.ts.map +1 -1
- package/dist/api/captcha/getFrictionlessCaptchaChallenge/shortCircuit.js +45 -18
- package/dist/api/captcha/getFrictionlessCaptchaChallenge/shortCircuit.js.map +1 -1
- package/dist/api/captcha/getFrictionlessCaptchaChallenge/shortCircuit.powFallback.test.d.ts +2 -0
- package/dist/api/captcha/getFrictionlessCaptchaChallenge/shortCircuit.powFallback.test.d.ts.map +1 -0
- package/dist/api/captcha/getFrictionlessCaptchaChallenge/shortCircuit.powFallback.test.js +77 -0
- package/dist/api/captcha/getFrictionlessCaptchaChallenge/shortCircuit.powFallback.test.js.map +1 -0
- package/dist/api/captcha/submitPoWCaptchaSolution.d.ts.map +1 -1
- package/dist/api/captcha/submitPoWCaptchaSolution.js +1 -1
- package/dist/api/captcha/submitPoWCaptchaSolution.js.map +1 -1
- package/dist/api/captcha.d.ts.map +1 -1
- package/dist/api/captcha.js +6 -0
- package/dist/api/captcha.js.map +1 -1
- package/dist/api/startProviderApi.d.ts.map +1 -1
- package/dist/api/startProviderApi.js +50 -17
- package/dist/api/startProviderApi.js.map +1 -1
- package/dist/api/verify.d.ts.map +1 -1
- package/dist/api/verify.js +1 -1
- package/dist/api/verify.js.map +1 -1
- package/dist/cjs/api/admin/apiAdminRoutesProvider.cjs +3 -5
- package/dist/cjs/api/admin/apiReplaceDetectorPoolEndpoint.cjs +56 -0
- package/dist/cjs/api/captcha/assignDetectorBundle.cjs +50 -0
- package/dist/cjs/api/captcha/getFrictionlessCaptchaChallenge/decisionMachine.cjs +59 -2
- package/dist/cjs/api/captcha/getFrictionlessCaptchaChallenge/decryptSimdReadings.cjs +3 -3
- package/dist/cjs/api/captcha/getFrictionlessCaptchaChallenge/handler.cjs +15 -7
- package/dist/cjs/api/captcha/getFrictionlessCaptchaChallenge/shortCircuit.cjs +45 -17
- package/dist/cjs/api/captcha/submitPoWCaptchaSolution.cjs +1 -1
- package/dist/cjs/api/captcha.cjs +6 -0
- package/dist/cjs/api/startProviderApi.cjs +53 -19
- package/dist/cjs/api/verify.cjs +1 -1
- package/dist/cjs/tasks/captchaManager.cjs +76 -59
- package/dist/cjs/tasks/client/clientTasks.cjs +1 -29
- package/dist/cjs/tasks/detection/bundlePool.cjs +220 -0
- package/dist/cjs/tasks/detection/decodeBehavior.cjs +644 -362
- package/dist/cjs/tasks/detection/decodeBehavior.js +1 -1
- package/dist/cjs/tasks/detection/decodePayload.cjs +956 -617
- package/dist/cjs/tasks/detection/decodePayload.js +1 -1
- package/dist/cjs/tasks/detection/decodeSimd.cjs +723 -411
- package/dist/cjs/tasks/detection/decodeSimd.js +1 -1
- package/dist/cjs/tasks/detection/getBotScore.cjs +2 -2
- package/dist/cjs/tasks/frictionless/frictionlessTasks.cjs +35 -12
- package/dist/cjs/tasks/frictionless/frictionlessTasksUtils.cjs +1 -2
- package/dist/cjs/tasks/imgCaptcha/imgCaptchaTasks.cjs +37 -7
- package/dist/cjs/tasks/powCaptcha/powTasks.cjs +33 -3
- package/dist/cjs/tasks/puzzleCaptcha/puzzleTasks.cjs +36 -4
- package/dist/cjs/tasks/spam/evaluateEmailSpamRules.cjs +23 -0
- package/dist/tasks/captchaManager.d.ts +12 -4
- package/dist/tasks/captchaManager.d.ts.map +1 -1
- package/dist/tasks/captchaManager.js +76 -59
- package/dist/tasks/captchaManager.js.map +1 -1
- package/dist/tasks/client/clientTasks.d.ts +0 -2
- package/dist/tasks/client/clientTasks.d.ts.map +1 -1
- package/dist/tasks/client/clientTasks.js +1 -29
- package/dist/tasks/client/clientTasks.js.map +1 -1
- package/dist/tasks/detection/bundlePool.d.ts +32 -0
- package/dist/tasks/detection/bundlePool.d.ts.map +1 -0
- package/dist/tasks/detection/bundlePool.js +215 -0
- package/dist/tasks/detection/bundlePool.js.map +1 -0
- package/dist/tasks/detection/bundlePool.test.d.ts +2 -0
- package/dist/tasks/detection/bundlePool.test.d.ts.map +1 -0
- package/dist/tasks/detection/bundlePool.test.js +178 -0
- package/dist/tasks/detection/bundlePool.test.js.map +1 -0
- package/dist/tasks/detection/decodeBehavior.d.ts +2 -2
- package/dist/tasks/detection/decodeBehavior.d.ts.map +1 -1
- package/dist/tasks/detection/decodeBehavior.js +1 -1
- package/dist/tasks/detection/decodeBehavior.js.map +1 -1
- package/dist/tasks/detection/decodePayload.d.ts +2 -2
- package/dist/tasks/detection/decodePayload.d.ts.map +1 -1
- package/dist/tasks/detection/decodePayload.js +1 -1
- package/dist/tasks/detection/decodePayload.js.map +1 -1
- package/dist/tasks/detection/decodeSimd.d.ts +2 -2
- package/dist/tasks/detection/decodeSimd.d.ts.map +1 -1
- package/dist/tasks/detection/decodeSimd.js +1 -1
- package/dist/tasks/detection/decodeSimd.js.map +1 -1
- package/dist/tasks/detection/getBotScore.d.ts +1 -1
- package/dist/tasks/detection/getBotScore.d.ts.map +1 -1
- package/dist/tasks/detection/getBotScore.js +3 -3
- package/dist/tasks/detection/getBotScore.js.map +1 -1
- package/dist/tasks/frictionless/frictionlessTasks.d.ts +10 -2
- package/dist/tasks/frictionless/frictionlessTasks.d.ts.map +1 -1
- package/dist/tasks/frictionless/frictionlessTasks.js +35 -12
- package/dist/tasks/frictionless/frictionlessTasks.js.map +1 -1
- package/dist/tasks/frictionless/frictionlessTasksUtils.d.ts +1 -1
- package/dist/tasks/frictionless/frictionlessTasksUtils.d.ts.map +1 -1
- package/dist/tasks/frictionless/frictionlessTasksUtils.js +1 -2
- package/dist/tasks/frictionless/frictionlessTasksUtils.js.map +1 -1
- package/dist/tasks/imgCaptcha/imgCaptchaTasks.d.ts.map +1 -1
- package/dist/tasks/imgCaptcha/imgCaptchaTasks.js +38 -8
- package/dist/tasks/imgCaptcha/imgCaptchaTasks.js.map +1 -1
- package/dist/tasks/powCaptcha/powTasks.d.ts.map +1 -1
- package/dist/tasks/powCaptcha/powTasks.js +34 -4
- package/dist/tasks/powCaptcha/powTasks.js.map +1 -1
- package/dist/tasks/puzzleCaptcha/puzzleTasks.d.ts +2 -2
- package/dist/tasks/puzzleCaptcha/puzzleTasks.d.ts.map +1 -1
- package/dist/tasks/puzzleCaptcha/puzzleTasks.js +36 -4
- package/dist/tasks/puzzleCaptcha/puzzleTasks.js.map +1 -1
- package/dist/tasks/spam/evaluateEmailSpamRules.d.ts +1 -0
- package/dist/tasks/spam/evaluateEmailSpamRules.d.ts.map +1 -1
- package/dist/tasks/spam/evaluateEmailSpamRules.js +23 -1
- package/dist/tasks/spam/evaluateEmailSpamRules.js.map +1 -1
- package/dist/tests/integration/clientSettingsPersistence.integration.test.js +23 -1
- package/dist/tests/integration/clientSettingsPersistence.integration.test.js.map +1 -1
- package/dist/tests/integration/decisionMachines.integration.test.js +3 -56
- package/dist/tests/integration/decisionMachines.integration.test.js.map +1 -1
- package/dist/tests/integration/escalationPeekBeforeConsume.integration.test.js +2 -2
- package/dist/tests/integration/escalationPeekBeforeConsume.integration.test.js.map +1 -1
- package/dist/tests/integration/imgCaptcha.integration.test.js +3 -56
- package/dist/tests/integration/imgCaptcha.integration.test.js.map +1 -1
- package/dist/tests/integration/maintenanceModeAdmin.integration.test.js +2 -29
- package/dist/tests/integration/maintenanceModeAdmin.integration.test.js.map +1 -1
- package/dist/tests/integration/powCaptcha.integration.test.js +3 -56
- package/dist/tests/integration/powCaptcha.integration.test.js.map +1 -1
- package/dist/tests/integration/routingDecisionMachines.integration.test.js +2 -2
- package/dist/tests/integration/routingDecisionMachines.integration.test.js.map +1 -1
- package/dist/tests/integration/testUtils.d.ts +1 -0
- package/dist/tests/integration/testUtils.d.ts.map +1 -1
- package/dist/tests/integration/testUtils.js +14 -0
- package/dist/tests/integration/testUtils.js.map +1 -1
- package/dist/tests/integration/testUtils.unit.test.d.ts +2 -0
- package/dist/tests/integration/testUtils.unit.test.d.ts.map +1 -0
- package/dist/tests/integration/testUtils.unit.test.js +30 -0
- package/dist/tests/integration/testUtils.unit.test.js.map +1 -0
- package/dist/tests/unit/api/admin/apiRegisterSiteKeyEndpoint.unit.test.js +1 -0
- package/dist/tests/unit/api/admin/apiRegisterSiteKeyEndpoint.unit.test.js.map +1 -1
- package/dist/tests/unit/api/adminRoutes.unit.test.js +0 -46
- package/dist/tests/unit/api/adminRoutes.unit.test.js.map +1 -1
- package/dist/tests/unit/api/captcha/getFrictionlessCaptchaChallenge/decisionMachine.unit.test.js +101 -0
- package/dist/tests/unit/api/captcha/getFrictionlessCaptchaChallenge/decisionMachine.unit.test.js.map +1 -1
- package/dist/tests/unit/api/captcha/getFrictionlessCaptchaChallenge/decryptSimdReadings.unit.test.js +12 -12
- package/dist/tests/unit/api/captcha/getFrictionlessCaptchaChallenge/decryptSimdReadings.unit.test.js.map +1 -1
- package/dist/tests/unit/api/getFrictionlessCaptchaChallenge.unit.test.js +15 -1
- package/dist/tests/unit/api/getFrictionlessCaptchaChallenge.unit.test.js.map +1 -1
- package/dist/tests/unit/tasks/captchaManager.unit.test.js +14 -30
- package/dist/tests/unit/tasks/captchaManager.unit.test.js.map +1 -1
- package/dist/tests/unit/tasks/detection/getBotScore.unit.test.js +3 -3
- package/dist/tests/unit/tasks/detection/getBotScore.unit.test.js.map +1 -1
- package/dist/tests/unit/tasks/frictionless/decryptPayload.unit.test.js +25 -7
- package/dist/tests/unit/tasks/frictionless/decryptPayload.unit.test.js.map +1 -1
- package/dist/tests/unit/tasks/frictionless/frictionlessTasks.unit.test.js +0 -1
- package/dist/tests/unit/tasks/frictionless/frictionlessTasks.unit.test.js.map +1 -1
- package/dist/tests/unit/tasks/frictionless/frictionlessTasksUtils.unit.test.js +6 -14
- package/dist/tests/unit/tasks/frictionless/frictionlessTasksUtils.unit.test.js.map +1 -1
- package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasks.unit.test.js +99 -0
- package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasks.unit.test.js.map +1 -1
- package/dist/tests/unit/tasks/powCaptcha/powTasks.unit.test.js +108 -0
- package/dist/tests/unit/tasks/powCaptcha/powTasks.unit.test.js.map +1 -1
- package/dist/tests/unit/tasks/puzzleCaptcha/puzzleTasks.unit.test.js +102 -1
- package/dist/tests/unit/tasks/puzzleCaptcha/puzzleTasks.unit.test.js.map +1 -1
- package/dist/tests/unit/tasks/spam/evaluateEmailSpamRules.unit.test.js +37 -1
- package/dist/tests/unit/tasks/spam/evaluateEmailSpamRules.unit.test.js.map +1 -1
- package/dist/tests/unit/tasks/writeQueueIntegration.unit.test.js +0 -2
- package/dist/tests/unit/tasks/writeQueueIntegration.unit.test.js.map +1 -1
- package/fixtures/detector-pool/bundle-0.js +15 -0
- package/fixtures/detector-pool/bundle-0.json +1 -0
- package/package.json +19 -19
- package/dist/api/admin/apiRemoveDetectorKeyEndpoint.d.ts +0 -23
- package/dist/api/admin/apiRemoveDetectorKeyEndpoint.d.ts.map +0 -1
- package/dist/api/admin/apiRemoveDetectorKeyEndpoint.js +0 -32
- package/dist/api/admin/apiRemoveDetectorKeyEndpoint.js.map +0 -1
- package/dist/api/admin/apiUpdateDetectorKeyEndpoint.d.ts +0 -14
- package/dist/api/admin/apiUpdateDetectorKeyEndpoint.d.ts.map +0 -1
- package/dist/api/admin/apiUpdateDetectorKeyEndpoint.js +0 -39
- package/dist/api/admin/apiUpdateDetectorKeyEndpoint.js.map +0 -1
- package/dist/cjs/api/admin/apiRemoveDetectorKeyEndpoint.cjs +0 -32
- package/dist/cjs/api/admin/apiUpdateDetectorKeyEndpoint.cjs +0 -39
- package/dist/tasks/detection/getBehavioralData.d.ts +0 -4
- package/dist/tasks/detection/getBehavioralData.d.ts.map +0 -1
- package/dist/tasks/detection/getBehavioralData.js +0 -51
- package/dist/tasks/detection/getBehavioralData.js.map +0 -1
- package/dist/tests/unit/api/admin/apiRemoveDetectorKeyEndpoint.unit.test.d.ts +0 -2
- package/dist/tests/unit/api/admin/apiRemoveDetectorKeyEndpoint.unit.test.d.ts.map +0 -1
- package/dist/tests/unit/api/admin/apiRemoveDetectorKeyEndpoint.unit.test.js +0 -57
- package/dist/tests/unit/api/admin/apiRemoveDetectorKeyEndpoint.unit.test.js.map +0 -1
- package/dist/tests/unit/api/admin/apiUpdateDetectorKeyEndpoint.unit.test.d.ts +0 -2
- package/dist/tests/unit/api/admin/apiUpdateDetectorKeyEndpoint.unit.test.d.ts.map +0 -1
- package/dist/tests/unit/api/admin/apiUpdateDetectorKeyEndpoint.unit.test.js +0 -60
- package/dist/tests/unit/api/admin/apiUpdateDetectorKeyEndpoint.unit.test.js.map +0 -1
- package/dist/tests/unit/tasks/detection/getBehavioralData.unit.test.d.ts +0 -2
- package/dist/tests/unit/tasks/detection/getBehavioralData.unit.test.d.ts.map +0 -1
- package/dist/tests/unit/tasks/detection/getBehavioralData.unit.test.js +0 -109
- package/dist/tests/unit/tasks/detection/getBehavioralData.unit.test.js.map +0 -1
|
@@ -12,4 +12,4 @@
|
|
|
12
12
|
// See the License for the specific language governing permissions and
|
|
13
13
|
// limitations under the License.
|
|
14
14
|
// @ts-nocheck
|
|
15
|
-
import{RSA_PKCS1_OAEP_PADDING as GoYvnb}from'node:constants';import{privateDecrypt as NzHSAb,createDecipheriv as HMefcR}from'node:crypto';function k27YDO(){}var DODsAGh=Object['defineProperty'],XidFXcw,x_EBHjD,osVNKcv,FWICCz,UP1vg8l,JB5Yh6G,zLgcNNn,gVrCRm0,eQHvzuY,QjjL8rS,_HTxugc,iY0v8A,bCT8nLu,LnPKh9,IFRWZiP,cSyzuM,Xv8_Pg,GjYPKUW,ToLgffC,lizO6U,WGJh5zC,QkfQUlh,odHpUj,TCMuBC_;function XdV7Jll(GoYvnb){return TCMuBC_[GoYvnb<-0x26?GoYvnb+0x3a:GoYvnb-0x2b]}TCMuBC_=mJvs6q0();var DGMLx1=[],f4b_w8=['+Z^KF4a;','IILAp?F','+8&v&','{<)O','HuEvB*/6','IIgj4yYNx','uIzjX_6:=1','sBLV!!06','zu(v|','pD}p~C@jpM','@<Evhe5l`L[;YI','T<(vwd8cAEe,6','&iTpAHKa','hbKA]._a','~h:vK#F','bbTJfCJH31','_rF7}','@,{T{','F+Ex',';&;uLCrY*6nm!3p{K<9U"O8','=q6Tg(NG','**wLFpL=iY','jDml$u8','WW4Ml"8','D~9T3=ik[sA','E*Fx','p|QjF)l_TB}Ma{Vh+m@e_>Uy|Jk:20In_J~T#tHQ6}T>%%','W%:cQI?q)xuvAskMwIKx','Eg^k?3|@5g[8cMaGOgYeCbO@(DJ2hl6$','=xbmlsuQqvr+J8Xe`7R7^Js~[JhB&$[3gA_wc','M}EYcZ5*H0oYdSZ|Yn37F)YZc+Af#t7Q%+tk*34}A{)/Q%','"DAmrW)#:von4RZ$K]%','NAis]T(p#xonz2CE!INx','9gL`Qj3~ivUf4]XE||~>=XzK8,2RF#BOcA|`{De?&V','2h+mF@]B(CX@}{y1HD|?TMB~~/|e&%$r?1DTKYKmzU3','Qh|pz>3}A}=kPnZ.','g}ys[l1EgByg5','b]Kxa@0=CB8/KB>Xghl`]','nh`7>TA_#gW5mPteUDSb<IMqqKL=O<?6_~)cI827a{','GAwY:8xtw','4%K@qRsbM0BwLw=$v%ewHi(Ej;g/{y','PA^)#J889}:sl%','D&F?u=9','7goY*gkn>;2YdS','omdma#JqyJ7c}I#X+6qOUsH3tEP{XB@$^mLmmm`@yx','`M9g?<J*<,O$La_.A&u?qm2~a}fY@w','n_#71mubCh*l6sqXNu,gfv<*]/EshIBrSIce(*_5','YD.g<(6E,Jh|t8d','TJHf0#]B+}?$h{bN=}:xcq1Z=0U','R1Ybjt65nB,Vw{W82u$d)l??@0l;7MUrk5','U(Cxeq2b[,Fb|Bg./AwSlBh@>ljb_NxXHm3c/','7wJmDYJ*yg:sj]a|8u?e8qT?<J"2J#}','"OC)SsD}&KEBgMe_w_r`<NQcCT;09%7','Ir0dz>#kO/Mf[8XNsh!Y"is}.]+*Rs%19w~wF)8}PE',',|R7|3[B[x@*lNGr&A!bjifp`V','`bb`ozT5mgq>B2%M2ezRV8i4QB=e8$D*O{xm6','@A*?T|AKRx#{j#cQ|_)cxJwVmgOB[I8NlI4wY>(5','2%Lg1MZ*/geeDM".s]@dbNzmq{++DRe?O~2@@sl5','fugR<t6q<gWl4R#3/ugf%&s7;6}hBW}GoOudmPk5','wxef3fs}"B@','6}Q7C8=q(+u/1Nocx_sRXpb|Q0','<feO_N8c1lD2m%','~Ir?zTj}(l1+(sF83AUmB~5KZ04YSS5V','xR@k#89','"|m`NW(07Bkpnw3n!3A7','|{JmH<S"ZE',';R{@db:~7d;:5','^vpCx#<k+}.>/8!N[m9)&2.Zw,}BZaH:uuy',')}[=BB{kiKJYYs(XHCNOL><.r;^%Rw=|BGKfG','!MKw"(Lk~/{s?Mm|>UoY6Dl5','`31`mM3yV{{paq&G}I3$?','>lqx/Is@_BY=tvl_z6Ods#~BtEMdQ<pE+g2wbD9','01UgUBIt;l7u9:@O:KXx4t3y+xU*5','{vZIP<4@RVoa]N`r+9','6KSbysJKI0SMgRXNQGWk"I~VUB5po]`6qhBC','NDNx_IsbZ0*dMw','W|wi"i+BcVYVXP^O&GmC','4]U7WXt?igEe/s=$s&QcD|:@xB5$OlA6L&5','__X>u&]@M,QmB0lOF(3c.qV2?lw_v{]',']`gw!mj@yKn$/:+e$Mxj3g;=qCct(RKr','dIDO)Wo07T)DT]m|ku`$@m7B~/K~Xy3MX?:7','z]qRgXg~OlPYC:4|aD?k585EF]g>H8.e,_m?I#0=KKe@Mw','C~:$NUIm|{,nT2P|','MJK7f&wQ(+WlKPC','9*Yb12V8RVnTn&wNKghbEiz0%x','_uPCVJEkwE','/u3xk4#z6K6$Z&}hm7)7kbuQK=sRTBv*7R^O5vJ.H0{|.w','6Ieg]T_?yJIwv{H:0~tey8c8Rx|A9%?c`uf7','6}aR!M9','AfQR0i*kq{pUh{rNJ3ckBs6=]+F=M&NnAel`N3/5','Y_gkNf9','2gc@UB(ZxT.lL&Mn!}a7bv/k.Dr%^W.X~JoGNftpmxZvMw','n`.$O3}8lDd0|0u68Jy','<&ZbcI_=:+:&{y0','<ANO+8S=q/V$ZwYEKMQx:D7,7','FCV`d&q*s6sYs8}X/g]@1K[akT!w:IwV49','Au>i[<Lk6v]p/:o80K(T|Z9','Ix1?}N#*A}&tYwa|zhrm/','MmYG%DbB:vb=EyfVNAd?w49','vez@3U9','I7>i@YJKpAX','Sb*s3ai3(U2YAQh|BItbGfm?D{pR%2#XT3kxK=9','X&*?Asv~5VhMQ%wVWIck','mIobDz<?0]S_fQw6MJzfLN(Jx6If3$_3oOHxcaGylh','2&EbgBC8HAzCZw~XeJ1Y@PUaJ6YUVWo6Oh~etz^8aJQ','lDJgmU^Q+vY?5:AQ7wy','<XewXR2VChj=HlY$[A.cj&J5','eb|pJ=]QjCy7%P9Q@|2@cI]@mx$h`$|_iAY>Wsu~u0Q','Q`|smmY06JGBfQ%e$~FmOl[Qkh','OgObPJL6eV3','zhObg[Xp|gq*kG96~u/T8Z)?m,ysnRAM2D4wb#9','zAKR:Da~7','OIl?Xg<5y{!tml}hL&8d!K"JqC{|:%Merh[Gwb2u:+l','%gjxp<z.YVFY1NJ*z;1Yeg@cblPCINB.zmce5&+7~Caw12d','NbckE#2Bl;0ACXGr5v"wn@9','9K#mAz9','=&x7}4yQL68zFN#XM}jk&K:Cw0','9K(>aT)J:/dhJ&63t6y','KMSbPDI5uJt+pG5Q_A)pb#9','Iuef#J~yBl[?GS4*j2B=#<+B40~+_GY$f6%','$~3RmXn?e+J]Mwg3Jg=df#E#5{P5wXyVAM;s&[Oy','03>Gg=rcSB2YeG$OM?gO?','cupY+sdC>C','4A9$M3Vaw','E`C)q2.E6viUv<KMb;c@*pC8Rv||a$IeZ2"Oh3C2P}oa5','@I"@fJ2@%}=+>$`c:~_fs#Ipb]CpQ:E|TG2IimVQ#g)','TIJCw43V/g&QjRA6U9','8JGsK[fK}]Sg[IW6rMZkCbE*+JRt>%','me5g{<$q40J`3qx','z6KOMW9','5+NkmY0t<E!lS:l.kJ8e?@LzW=XT}{eMX_%','1MIOj>`}364#5:&$%JNO949','yR=d6<YK`}cebtGrNAEsO@>QSBZKB#:|2uHx','>UCgu~EtChL8fspG{KdsViE0#{','j(|pki;5','<|tT]T3V,VNt=wY$VmSk@PfkeV~+~0.n0I_w','du[?uzeExDcz<y9_OA(>?','_hHxBvJ0o,_%.saG','Uxex58wrkT+/5','$hOdzN@BnBz8z]1NBu.mn@hBw','81[S^@H3.B^APn:h"6%S_tAt*xuK5','Eg2@pb}~V{[v5',':~:mSbmkfD!6NnO*k}npusW??]','Pm[kfTa7%}?$o2V|dM2w+~G86vVtUl6h','smu=1MuBdA^mRv:Gxb^>83a7}DD@[{<.O_XR6','9?j@Y>OV`}lk!$]hx?T@lBJ?pAT;Qq1Xme{@$','5`*?8lYK?l#2GS','8IWTZ<SKw,Y512AQumcw=K7reK6p#s0X6~}TKvZ5','^I;sb#NyWC3e5:?6c?sR`fekN,wzm]{','?3u=P<r}v]2fr]Hr>9',')%K@C|@y',')&vYdiJ?ax+2aa:GmMyp_qXEQ0%0tw',')uYi`IImoviaPtJ_1bp?A[.KGDg]M&gOqIRm]iF|;AWVFt7','Kgv=RY8}e+JU:$Y$.}=bk4Z_(;oC2nU.P2imn<uQC6@k"y','6m/@=U0n8,gReG"?MxHR[I|@~K+YNW,_#U_)Gja3%,J]C%','/mtbOZCc,{mf4t$?','FXBm2i7~&v)$oNNV_5','Kl]T3gf.&VN','ZmWeiUfm&}+=8%%cG|J7}<}25JZY+2l?o6K>@B3QK{P;3%','||&f1U:~6{Pon:rGNx%','K&?OcW~}qCY5IB^.6JMOYTd@fD36EPh$aAf`DXhBEE(dWw','sA.pV<y,4,FShl58Jm&f3Kn.GlKw&<fe','`{UR3*X00/h7rnHrHr0TWX92BD`>Aw','De>i7&wBA}1aO$`6r1BC<lm5b6bnd#Sn)v3p:','=|UfZibB0DpU,<VODud$fD(*&}48p2q$Amy','dR=wnj.E+E5uT%8VTI.$:T4bA{X','Ym/bMqO8YU4oTPSM!m%','9{+m{<6tJ6P27S]$[O~>p<~@$6','aU=eqPLzn6S_?w=*"2Tx','K%KOP<Qy','CInmM3&3+v(fyiXM','SIOe8u|4P}FY|]fEM62@W&P|ZE~l:%seV}OYvv.Z0l?snw','bMu?oT!,ZE','FfQfIibQ80=','"f>GsTD7]V0c0[/3"A/>:Nr@lD/P$i,c8}oS','brp?{>hCWU0TTNXn','Mu<?%|r~s0w:J:&|"7d`}>U@5K&>q<L*)xZiTPQ,}]','[27evXl.1]pb:{JO','&|(eaJzk;D;sDR7Q','63Vp"ILJWl6c.:K865','R3zwHN=kuJ+nRs`_}b/ky8zJ|K97H<NVm3]eo=9'];odHpUj=(GoYvnb,NzHSAb,HMefcR,k27YDO,DODsAGh)=>{if(typeof k27YDO==='undefined'){k27YDO=x_vvy9}if(typeof DODsAGh===XdV7Jll(-0x3a)){DODsAGh=DGMLx1}if(HMefcR&&k27YDO!==x_vvy9){odHpUj=x_vvy9;return odHpUj(GoYvnb,-0x1,HMefcR,k27YDO,DODsAGh)}if(GoYvnb!==NzHSAb){return DODsAGh[GoYvnb]||(DODsAGh[GoYvnb]=k27YDO(f4b_w8[GoYvnb]))}if(HMefcR==k27YDO){return NzHSAb?GoYvnb[DODsAGh[NzHSAb]]:DGMLx1[GoYvnb]||(HMefcR=DODsAGh[GoYvnb]||k27YDO,DGMLx1[GoYvnb]=HMefcR(f4b_w8[GoYvnb]))}};function N97Q_Od(){return globalThis}function Qdfc6i(){return global}function PCiA5Wd(){return window}function IT5DIC(){return new Function('return this')()}function u5QXDdI(GoYvnb=[N97Q_Od,Qdfc6i,PCiA5Wd,IT5DIC],NzHSAb,HMefcR=[],DODsAGh=0x0,XidFXcw){NzHSAb=NzHSAb;try{k27YDO(NzHSAb=Object,HMefcR.push(''.__proto__.constructor.name))}catch(e){}vb9qjW:for(DODsAGh=DODsAGh;DODsAGh<GoYvnb.length;DODsAGh++)try{var x_EBHjD=R6licAj(GoYvnb=>{return TCMuBC_[GoYvnb>0x16?GoYvnb<0x2b?GoYvnb>0x16?GoYvnb<0x16?GoYvnb+0x46:GoYvnb-0x17:GoYvnb+0x12:GoYvnb-0x19:GoYvnb-0x4f]},0x1);NzHSAb=GoYvnb[DODsAGh]();for(XidFXcw=x_EBHjD(0x18);XidFXcw<HMefcR.length;XidFXcw++)if(typeof NzHSAb[HMefcR[XidFXcw]]===XdV7Jll(-0x3a)){continue vb9qjW}return NzHSAb}catch(e){}return NzHSAb||this}k27YDO(QkfQUlh=u5QXDdI()||{},WGJh5zC=QkfQUlh.TextDecoder,lizO6U=QkfQUlh.Uint8Array,ToLgffC=QkfQUlh.Buffer,GjYPKUW=QkfQUlh.String||String,Xv8_Pg=QkfQUlh.Array||Array,cSyzuM=R6licAj(()=>{var GoYvnb=new Xv8_Pg(0x80),NzHSAb,HMefcR;k27YDO(NzHSAb=GjYPKUW[XdV7Jll(-0x37)]||GjYPKUW.fromCharCode,HMefcR=[]);return R6licAj(DODsAGh=>{var XidFXcw,x_EBHjD;function osVNKcv(DODsAGh){return TCMuBC_[DODsAGh>0x2e?DODsAGh-0xe:DODsAGh>0x2e?DODsAGh-0x48:DODsAGh>0x19?DODsAGh-0x1a:DODsAGh-0x36]}var FWICCz,UP1vg8l;k27YDO(XidFXcw=DODsAGh.length,HMefcR.length=0x0);for(x_EBHjD=osVNKcv(0x1b);x_EBHjD<XidFXcw;){var JB5Yh6G=R6licAj(DODsAGh=>{return TCMuBC_[DODsAGh<-0x2c?DODsAGh<-0x41?DODsAGh+0x58:DODsAGh+0x40:DODsAGh+0x20]},0x1);UP1vg8l=DODsAGh[x_EBHjD++];if(UP1vg8l<=0x7f){FWICCz=UP1vg8l}else{if(UP1vg8l<=0xdf){var zLgcNNn=R6licAj(DODsAGh=>{return TCMuBC_[DODsAGh<0xd?DODsAGh+0x52:DODsAGh<0xd?DODsAGh-0xd:DODsAGh-0xe]},0x1);FWICCz=(UP1vg8l&0x1f)<<XdV7Jll(-0x35)|DODsAGh[x_EBHjD++]&zLgcNNn(0x10)}else{if(UP1vg8l<=0xef){var gVrCRm0=R6licAj(DODsAGh=>{return TCMuBC_[DODsAGh<-0x2a?DODsAGh-0x5b:DODsAGh+0x29]},0x1);FWICCz=(UP1vg8l&0xf)<<gVrCRm0(-0x25)|(DODsAGh[x_EBHjD++]&0x3f)<<0x6|DODsAGh[x_EBHjD++]&XdV7Jll(-0x38)}else{if(GjYPKUW[JB5Yh6G(-0x3d)]){var eQHvzuY=R6licAj(DODsAGh=>{return TCMuBC_[DODsAGh<0x5e?DODsAGh>0x49?DODsAGh<0x5e?DODsAGh-0x4a:DODsAGh-0x45:DODsAGh+0x3b:DODsAGh-0x2d]},0x1);FWICCz=(UP1vg8l&XdV7Jll(-0x2e))<<0x12|(DODsAGh[x_EBHjD++]&eQHvzuY(0x4c))<<XdV7Jll(-0x36)|(DODsAGh[x_EBHjD++]&JB5Yh6G(-0x3e))<<JB5Yh6G(-0x3b)|DODsAGh[x_EBHjD++]&osVNKcv(0x1c)}else{k27YDO(FWICCz=0x3f,x_EBHjD+=0x3)}}}}HMefcR.push(GoYvnb[FWICCz]||(GoYvnb[FWICCz]=NzHSAb(FWICCz)))}return HMefcR.join('')},0x1)})());function l5uqz9I(GoYvnb){var NzHSAb=R6licAj(GoYvnb=>{return TCMuBC_[GoYvnb<-0x1?GoYvnb+0x23:GoYvnb>-0x1?GoYvnb<-0x1?GoYvnb-0xc:GoYvnb-0x0:GoYvnb-0x4]},0x1);return typeof WGJh5zC!==NzHSAb(0x0)&&WGJh5zC?new WGJh5zC().decode(new lizO6U(GoYvnb)):typeof ToLgffC!==NzHSAb(0x0)&&ToLgffC?ToLgffC.from(GoYvnb).toString('utf-8'):cSyzuM(GoYvnb)}k27YDO(IFRWZiP=odHpUj(0xb1),LnPKh9=odHpUj(0x8c),bCT8nLu=odHpUj[XdV7Jll(-0x34)](void 0x0,[0x84]),iY0v8A=odHpUj.call(void 0x0,0x69),_HTxugc=odHpUj(0x4f),QjjL8rS=odHpUj(0x4e),eQHvzuY=odHpUj(0x4a),gVrCRm0=odHpUj[XdV7Jll(-0x30)](XdV7Jll(-0x33),0x47),zLgcNNn=odHpUj(0x32),JB5Yh6G=odHpUj(0x29),UP1vg8l=odHpUj(0x28),FWICCz=odHpUj(0x27),osVNKcv=[odHpUj(0x1d),odHpUj(0x21),odHpUj(0x3e),odHpUj(0x56),odHpUj(0x5d)],x_EBHjD={JRE5RU:odHpUj(0x1c),ET_D6Mx:odHpUj[XdV7Jll(-0x34)](XdV7Jll(-0x33),[0x23]),mjJHG7T:odHpUj(0x2d),u28dzh:odHpUj(0x35),KyIf9O:odHpUj[XdV7Jll(-0x34)](void 0x0,[0x46]),IzmZz8F:odHpUj(0x4d),sNAL0i:odHpUj(XdV7Jll(-0x2c)),MyaPpaM:odHpUj(0x62),TIi_1m:odHpUj.apply(XdV7Jll(-0x33),[0x6a]),KKo2sTn:odHpUj(0x6c),JoiXrg0:odHpUj(0x72),lDhWjH:odHpUj(0x77)});function nnZkjBy(...GoYvnb){var NzHSAb=(GoYvnb,HMefcR,k27YDO,XidFXcw,x_EBHjD)=>{if(typeof XidFXcw===XdV7Jll(-0x3a)){XidFXcw=DODsAGh}if(typeof x_EBHjD===XdV7Jll(-0x3a)){x_EBHjD=DGMLx1}if(GoYvnb!==HMefcR){return x_EBHjD[GoYvnb]||(x_EBHjD[GoYvnb]=XidFXcw(f4b_w8[GoYvnb]))}if(k27YDO&&XidFXcw!==DODsAGh){NzHSAb=DODsAGh;return NzHSAb(GoYvnb,-0x1,k27YDO,XidFXcw,x_EBHjD)}if(k27YDO==GoYvnb){return HMefcR[DGMLx1[k27YDO]]=NzHSAb(GoYvnb,HMefcR)}if(k27YDO==XidFXcw){return HMefcR?GoYvnb[x_EBHjD[HMefcR]]:DGMLx1[GoYvnb]||(k27YDO=x_EBHjD[GoYvnb]||XidFXcw,DGMLx1[GoYvnb]=k27YDO(f4b_w8[GoYvnb]))}},HMefcR;HMefcR=[NzHSAb.call(XdV7Jll(-0x33),0x0)];return GoYvnb[GoYvnb[HMefcR[0x0]]-0x1];function DODsAGh(GoYvnb,NzHSAb='(|;y$Cs?WBukzM7Z~=mQ^Sq+"Va>_}.hP:Y{`L5Do8TRdUej0NX)nEG@]<,p32b[&I%rlgA9Hwcx*KFi64!vfJt#O1/',HMefcR,DODsAGh,XidFXcw=[],x_EBHjD=0x0,osVNKcv,FWICCz,UP1vg8l,JB5Yh6G){var zLgcNNn=R6licAj(GoYvnb=>{return TCMuBC_[GoYvnb<0x40?GoYvnb+0x4c:GoYvnb>0x55?GoYvnb-0x4d:GoYvnb-0x41]},0x1);k27YDO(HMefcR=''+(GoYvnb||''),DODsAGh=HMefcR.length,osVNKcv=zLgcNNn(0x42),FWICCz=-XdV7Jll(-0x32));for(UP1vg8l=zLgcNNn(0x42);UP1vg8l<DODsAGh;UP1vg8l++){var gVrCRm0=R6licAj(GoYvnb=>{return TCMuBC_[GoYvnb>0x11?GoYvnb-0x12:GoYvnb+0x4a]},0x1);JB5Yh6G=NzHSAb.indexOf(HMefcR[UP1vg8l]);if(JB5Yh6G===-gVrCRm0(0x1a)){continue}if(FWICCz<0x0){FWICCz=JB5Yh6G}else{var eQHvzuY=R6licAj(GoYvnb=>{return TCMuBC_[GoYvnb<-0x11?GoYvnb-0x19:GoYvnb>0x4?GoYvnb+0x34:GoYvnb<-0x11?GoYvnb-0x18:GoYvnb<0x4?GoYvnb+0x10:GoYvnb+0x37]},0x1);k27YDO(FWICCz+=JB5Yh6G*0x5b,x_EBHjD|=FWICCz<<osVNKcv,osVNKcv+=(FWICCz&0x1fff)>eQHvzuY(0x1)?zLgcNNn(0x53):0xe);do{k27YDO(XidFXcw.push(x_EBHjD&zLgcNNn(0x4a)),x_EBHjD>>=gVrCRm0(0x21),osVNKcv-=0x8)}while(osVNKcv>0x7);FWICCz=-gVrCRm0(0x1a)}}if(FWICCz>-zLgcNNn(0x49)){XidFXcw.push((x_EBHjD|FWICCz<<osVNKcv)&zLgcNNn(0x4a))}return l5uqz9I(XidFXcw)}}function ukJTFl(GoYvnb,NzHSAb){switch(XidFXcw){case-0x1b:return-GoYvnb}}function xeS8oGq(GoYvnb){return nnZkjBy(GoYvnb=XidFXcw+(XidFXcw=GoYvnb,0x0),GoYvnb)}XidFXcw=XidFXcw;function ZusH6B(DODsAGh,x_EBHjD){var osVNKcv,FWICCz,UP1vg8l,JB5Yh6G,zLgcNNn,gVrCRm0,eQHvzuY;function QjjL8rS(DODsAGh){return TCMuBC_[DODsAGh<-0x9?DODsAGh>-0x9?DODsAGh-0x33:DODsAGh>-0x1e?DODsAGh+0x1d:DODsAGh-0x31:DODsAGh+0x38]}k27YDO(osVNKcv=(DODsAGh,x_EBHjD,FWICCz,UP1vg8l,JB5Yh6G)=>{var zLgcNNn=R6licAj(DODsAGh=>{return TCMuBC_[DODsAGh>0x13?DODsAGh+0x12:DODsAGh+0x1]},0x1);if(typeof UP1vg8l===XdV7Jll(-0x3a)){UP1vg8l=lizO6U}if(typeof JB5Yh6G===zLgcNNn(-0x1)){JB5Yh6G=DGMLx1}if(DODsAGh!==x_EBHjD){return JB5Yh6G[DODsAGh]||(JB5Yh6G[DODsAGh]=UP1vg8l(f4b_w8[DODsAGh]))}if(FWICCz==DODsAGh){return x_EBHjD[DGMLx1[FWICCz]]=osVNKcv(DODsAGh,x_EBHjD)}if(FWICCz&&UP1vg8l!==lizO6U){osVNKcv=lizO6U;return osVNKcv(DODsAGh,-0x1,FWICCz,UP1vg8l,JB5Yh6G)}if(UP1vg8l===osVNKcv){lizO6U=x_EBHjD;return lizO6U(FWICCz)}},FWICCz=osVNKcv(0x10),UP1vg8l=osVNKcv(0xb),JB5Yh6G=osVNKcv(0x9),zLgcNNn=osVNKcv[QjjL8rS(-0x17)](void 0x0,[0x4]),gVrCRm0={[XdV7Jll(-0x2f)]:osVNKcv(0x3),iDdjE9:osVNKcv(0x4),S3u4Hmz:osVNKcv[QjjL8rS(-0x13)](QjjL8rS(-0x16),0x8),FU0xf5U:osVNKcv(0x4)},eQHvzuY=[osVNKcv(XdV7Jll(-0x2d)),osVNKcv[QjjL8rS(-0x17)](XdV7Jll(-0x33),[0xa])]);const _HTxugc=JSON[osVNKcv[QjjL8rS(-0x13)](XdV7Jll(-0x33),0x1)](DODsAGh),iY0v8A=Buffer[eQHvzuY[XdV7Jll(-0x39)]](_HTxugc[gVrCRm0[XdV7Jll(-0x2f)]],gVrCRm0.iDdjE9),bCT8nLu=NzHSAb({[osVNKcv(0x3)]:x_EBHjD,[osVNKcv.apply(void 0x0,[0x5])]:GoYvnb,[osVNKcv(0x6)]:osVNKcv(QjjL8rS(-0x11))},iY0v8A),LnPKh9=Buffer[osVNKcv(0x2)](_HTxugc[gVrCRm0.S3u4Hmz],gVrCRm0.FU0xf5U),IFRWZiP=Buffer[osVNKcv(QjjL8rS(-0x10))](_HTxugc.iv,zLgcNNn),cSyzuM=LnPKh9[osVNKcv[XdV7Jll(-0x30)](void 0x0,0x9)](0x0,ukJTFl(0x10,XidFXcw=-0x1b)),Xv8_Pg=LnPKh9[JB5Yh6G](ukJTFl(0x10,xeS8oGq(-0x1b))),GjYPKUW=HMefcR(eQHvzuY[XdV7Jll(-0x32)],bCT8nLu,IFRWZiP);let ToLgffC=nnZkjBy(GjYPKUW[UP1vg8l](Xv8_Pg),GjYPKUW[osVNKcv(0xc)](cSyzuM));return nnZkjBy(ToLgffC=Buffer[osVNKcv(0xd)]([ToLgffC,GjYPKUW[osVNKcv(0xe)]()]),ToLgffC[osVNKcv(0xf)](FWICCz));function lizO6U(DODsAGh,x_EBHjD='F6auI^xJj7O4@/}<301:KM{B|$h&"ZTpv=leQ!*S~Nwb]ficP;_8LVo,kr2ED)n>Ut9(.+s?[Yyg#ARWCHdz5qX`Gm%',osVNKcv,FWICCz,UP1vg8l=[],JB5Yh6G=0x0,zLgcNNn,gVrCRm0,eQHvzuY=0x0,_HTxugc){var iY0v8A=R6licAj(DODsAGh=>{return TCMuBC_[DODsAGh<-0x28?DODsAGh+0x5c:DODsAGh<-0x28?DODsAGh-0x2:DODsAGh<-0x13?DODsAGh>-0x13?DODsAGh-0x1b:DODsAGh+0x27:DODsAGh+0x24]},0x1);k27YDO(osVNKcv=''+(DODsAGh||''),FWICCz=osVNKcv.length,zLgcNNn=XdV7Jll(-0x39),gVrCRm0=-iY0v8A(-0x1f));for(eQHvzuY=eQHvzuY;eQHvzuY<FWICCz;eQHvzuY++){_HTxugc=x_EBHjD.indexOf(osVNKcv[eQHvzuY]);if(_HTxugc===-iY0v8A(-0x1f)){continue}if(gVrCRm0<0x0){gVrCRm0=_HTxugc}else{var bCT8nLu=R6licAj(DODsAGh=>{return TCMuBC_[DODsAGh<-0x4a?DODsAGh+0xe:DODsAGh+0x49]},0x1);k27YDO(gVrCRm0+=_HTxugc*bCT8nLu(-0x3b),JB5Yh6G|=gVrCRm0<<zLgcNNn,zLgcNNn+=(gVrCRm0&QjjL8rS(-0xd))>0x58?0xd:0xe);do{var LnPKh9=R6licAj(DODsAGh=>{return TCMuBC_[DODsAGh<-0x2d?DODsAGh+0x26:DODsAGh>-0x2d?DODsAGh<-0x2d?DODsAGh+0x3d:DODsAGh+0x2c:DODsAGh-0x1]},0x1);k27YDO(UP1vg8l.push(JB5Yh6G&0xff),JB5Yh6G>>=LnPKh9(-0x1d),zLgcNNn-=0x8)}while(zLgcNNn>bCT8nLu(-0x3d));gVrCRm0=-iY0v8A(-0x1f)}}if(gVrCRm0>-0x1){UP1vg8l.push((JB5Yh6G|gVrCRm0<<zLgcNNn)&XdV7Jll(-0x31))}return l5uqz9I(UP1vg8l)}}const gDgt2d=async(GoYvnb,NzHSAb)=>{var HMefcR=(GoYvnb,NzHSAb,DODsAGh,XidFXcw,x_EBHjD)=>{if(typeof XidFXcw==='undefined'){XidFXcw=UP1vg8l}if(typeof x_EBHjD===XdV7Jll(-0x3a)){x_EBHjD=DGMLx1}if(DODsAGh&&XidFXcw!==UP1vg8l){HMefcR=UP1vg8l;return HMefcR(GoYvnb,-0x1,DODsAGh,XidFXcw,x_EBHjD)}if(GoYvnb!==NzHSAb){return x_EBHjD[GoYvnb]||(x_EBHjD[GoYvnb]=XidFXcw(f4b_w8[GoYvnb]))}if(DODsAGh==GoYvnb){return NzHSAb[DGMLx1[DODsAGh]]=HMefcR(GoYvnb,NzHSAb)}if(XidFXcw===XdV7Jll(-0x33)){HMefcR=x_EBHjD}},DODsAGh,XidFXcw;k27YDO(DODsAGh=[HMefcR[XdV7Jll(-0x30)](void 0x0,0x15),HMefcR(0x17)],XidFXcw=HMefcR(0x14));const x_EBHjD=Buffer[HMefcR(0x11)](NzHSAb||process[HMefcR(0x12)][HMefcR(0x13)]||'',XidFXcw)[DODsAGh[XdV7Jll(-0x39)]](HMefcR(0x16)),osVNKcv=ZusH6B(GoYvnb,x_EBHjD),FWICCz=JSON[DODsAGh[0x1]](osVNKcv);return{...FWICCz,[HMefcR(0x18)]:Date[HMefcR.call(XdV7Jll(-0x33),0x19)]()};function UP1vg8l(GoYvnb,NzHSAb='8GfqWaKLk]x9$N3hiJYs/[mgBH~{XUwlT:y%rE(Z+>&*vF2jCc#,4bDoA016).O_ReSPI@d"|7uV}M5zp=?^;t`!<Qn',HMefcR,DODsAGh,XidFXcw=[],x_EBHjD=0x0,osVNKcv,FWICCz,UP1vg8l,JB5Yh6G){var zLgcNNn=R6licAj(GoYvnb=>{return TCMuBC_[GoYvnb<0x22?GoYvnb<0x22?GoYvnb>0x22?GoYvnb-0x4a:GoYvnb<0xd?GoYvnb+0xf:GoYvnb-0xe:GoYvnb+0x26:GoYvnb-0x17]},0x1);k27YDO(HMefcR=''+(GoYvnb||''),DODsAGh=HMefcR.length,osVNKcv=zLgcNNn(0xf),FWICCz=-0x1);for(UP1vg8l=XdV7Jll(-0x39);UP1vg8l<DODsAGh;UP1vg8l++){JB5Yh6G=NzHSAb.indexOf(HMefcR[UP1vg8l]);if(JB5Yh6G===-0x1){continue}if(FWICCz<0x0){FWICCz=JB5Yh6G}else{var gVrCRm0=R6licAj(GoYvnb=>{return TCMuBC_[GoYvnb>-0xa?GoYvnb-0x5b:GoYvnb+0x1e]},0x1);k27YDO(FWICCz+=JB5Yh6G*0x5b,x_EBHjD|=FWICCz<<osVNKcv,osVNKcv+=(FWICCz&gVrCRm0(-0xe))>XdV7Jll(-0x29)?gVrCRm0(-0xc):XdV7Jll(-0x27));do{k27YDO(XidFXcw.push(x_EBHjD&zLgcNNn(0x17)),x_EBHjD>>=gVrCRm0(-0xf),osVNKcv-=0x8)}while(osVNKcv>XdV7Jll(-0x2e));FWICCz=-0x1}}if(FWICCz>-zLgcNNn(0x16)){XidFXcw.push((x_EBHjD|FWICCz<<osVNKcv)&0xff)}return l5uqz9I(XidFXcw)}};export{gDgt2d,gDgt2d as default};function x_vvy9(GoYvnb,NzHSAb='95y%wS7kCxd;}0]{:6VEh/^_QnG$O?ce`)|*8MNX3.r1!(~q&Rim@=gTUJBlvWDK,A+out2Isfbp>Yjza#P<[Z4"HLF',HMefcR,DODsAGh,XidFXcw=[],x_EBHjD=0x0,osVNKcv=0x0,FWICCz,UP1vg8l=0x0,JB5Yh6G){k27YDO(HMefcR=''+(GoYvnb||''),DODsAGh=HMefcR.length,FWICCz=-XdV7Jll(-0x32));for(UP1vg8l=UP1vg8l;UP1vg8l<DODsAGh;UP1vg8l++){JB5Yh6G=NzHSAb.indexOf(HMefcR[UP1vg8l]);if(JB5Yh6G===-XdV7Jll(-0x32)){continue}if(FWICCz<0x0){FWICCz=JB5Yh6G}else{var zLgcNNn=R6licAj(GoYvnb=>{return TCMuBC_[GoYvnb<0x2?GoYvnb-0x56:GoYvnb<0x2?GoYvnb+0x8:GoYvnb<0x2?GoYvnb+0xe:GoYvnb-0x3]},0x1);k27YDO(FWICCz+=JB5Yh6G*0x5b,x_EBHjD|=FWICCz<<osVNKcv,osVNKcv+=(FWICCz&zLgcNNn(0x13))>zLgcNNn(0x14)?XdV7Jll(-0x28):XdV7Jll(-0x27));do{k27YDO(XidFXcw.push(x_EBHjD&zLgcNNn(0xc)),x_EBHjD>>=0x8,osVNKcv-=0x8)}while(osVNKcv>0x7);FWICCz=-0x1}}if(FWICCz>-0x1){XidFXcw.push((x_EBHjD|FWICCz<<osVNKcv)&XdV7Jll(-0x31))}return l5uqz9I(XidFXcw)}function mJvs6q0(){return['undefined',0x0,0x3f,'fromCodePoint',0xc,0x6,'apply',void 0x0,0x1,0xff,'call','Vhy4yYk',0x7,0x2,0x5b,0x8,0x1fff,0x58,0xd,0xe]}function R6licAj(GoYvnb,NzHSAb=0x0){var HMefcR=function(){return GoYvnb(...arguments)};return DODsAGh(HMefcR,'length',{'value':NzHSAb,'configurable':true})}
|
|
15
|
+
import{RSA_PKCS1_OAEP_PADDING as lYgpQIu}from'node:constants';import{privateDecrypt as _tu9kNq,createDecipheriv as lrUmqp}from'node:crypto';function bh2X_2r(){}var s2vFhZS=Object['defineProperty'],ThARLh,flNmQt,RhNwyD,iYlcLvf,GBlDyc,x5cguDs,PqkurF,YKXyjaG,TwvCME9,JskwyQc,QeCB3C,cYbeftG,geovr3v;function UTJyAip(lYgpQIu){return geovr3v[lYgpQIu>-0x3e?lYgpQIu+0x53:lYgpQIu>-0x62?lYgpQIu<-0x62?lYgpQIu+0x6:lYgpQIu<-0x62?lYgpQIu-0x2d:lYgpQIu+0x61:lYgpQIu-0x5c]}geovr3v=zMuhST();var iiioNH=[],uzT0OvZ=['_7opc=V%','l.rRFKDg','bm#d)6]I','$OotA{SA','9eXh}7d?}KjqB7+Ch:EBRKlsT@x5n@193emHVtKU~3OOMG:"i:F5cNI*OZz`G+e:57dtg8dvg_cNaNh','Y@Z#`Rko','$Y=P&A[sy,J/z','G?X5Zy{s3h06l|(.=T','R{X}33ft{zE','f@|L','oFtyCtT','U:lpK17o','Y@Z#`Rko','Y@Z#`Rko','9aq9?NnH9W','Y@Z#`Rko','Akg_','Y@Z#`Rko','l@WL','Y@Z#`Rko','Y@Z#`Rko','G?.5UNjv(}x3Uwy?":~1U/34:Z','9aq9?NnH9W','l@WL','G?.5UNle2Z)D!tb?$_EH@{.R3hr62GaF_z','@@YyK1Zo',UTJyAip(-0x61),'Y@Z#`Rko',UTJyAip(-0x60),'U:lpK17o','Y@Z#`Rko','G?X5Zy{sg<*}L|Z?;H/$I;3U3h2=DXd?4z',UTJyAip(-0x61),'oFtyCtT',UTJyAip(-0x60),'U:lpK17o','ww=#9tT','RIO5Y"4z','S+,#;;xP','n@O5kFdv0=;G/w','l@m5j)EA#OFpz','C6l9#RZo','k:Z#cu<o',')}aEp5Y','::l]JN]R+%','<KT_q','^EC5C','J?iL','djd{]78%:O>f0qNCe!(Bt,T','RIO5Y"4z','::l]JN]R+%','A$f9n{T','ww=#9tT','$k(5qR+HW.D','i:JL','?}&w63)?Hp_Ev4~9AK)H',')EC{qp!v~a;54;DF(u^yibJz','K$+lCA]0,D%^bwDv4i25%,g6Mn!zwCt90ZP{S89Agn','yZA/Gu"2,DfSKG9B%3(LI[;n?Q~','LG0$3{Ebu$`6Bw',')Vq]JDw%NPYZU7os|7YG7G?8e.E%n&xk=?S/_a&z','6?py32j?7PPN!O,8nuc#P&(zmnW^&oXVYa_`S,iFy}IeAo','M,*$m6%s=.O5zd;%hnl=#K"8I','|_!GmP^EIg^*yOF9yT','pKNEpdmUd$senOVjBB~Ce^7=jq4Lz','pub9Bt,e)$gNOXlQGvT~X~Dl5awuV+;i1J5lJGtz','za$pp1oH`D}H6iZ?t9kE;p{[*}:=kR;"UQ:BGG4Ph','Y}P=C"E.w$M#y8dCI@WLn{qog@Cpoh}laun9o;xU<@I)dI','ye5/(X:41.FC)^x*B@.BW=mUG%G,z','Fi{5VNWBRnLYTtaljKo','T68{taWBX$q)aI','V@zCbtp484[1KG""',',769z&*Abg=WU;n','FijxC`v[}@RDf|z8"K&/."+Hn,fZDIQ&fEkx3aMl%3!#bsq','1,2BRyVl=gu/_;]%+K.5479x1gTCF)4Zm9F;%Kt]"27','S}gE}dVH>}/N9tVF8Br$J|@*}$gVoR!F|QM5*y&z','mEx{9Op]I$lZ+OgY}ek5$&T','U?_$48cgj,aDy@L"xD;/XXk{LqO','>}_x*y>,~37V#w4k*?O#n7slw','IW3V=69R4Og=C<Tj468L|E5gp4(;>*uQ,}&V3#lo7PPyDw','7KuhZ<vg6HrKU7#&Lz','9i#kp3`?cQ<%sAGCUto','xZ:;.`0YJMT;kh','0J2H:/fHADG/++J&{Z:;PPPBn,D','pK#w6|,{%$,Mo*c*DY6w','~_C#iGV[yHz~<4`&%aO58DueEn&yQhm8tq"=Q"RzI',']{&=|PT','OiGeQ"cn!}MHDX^iowC5>~==+MjFU7n',';}S/0Xj2#PVsNI','gV3GGDk=_}By}^4','D78Bt,n%2}@vP77CLn}e5AT','6i3_S,A4z%','+:VB@R:^wgRD?X4&1i3y8u+8&4','rqVB*?2lT33=5OWCf})Hevgl]','oF~e>=#ECODw{R7vl:ZLI,tKx}S(Gw','L:`V0JKxZ$Fsn&,QLY^{q8(z^$V4+CwQb9,9oaHlg@','pvy<1;M%:}{m])hi{uByp2KY*q.Iz','la)HRy===K,V;II*6:|]j|~]YZ2=/8{*GT','7k"y<DZ6W.I`DCbUuY2HAi`?~M/G@<sF^JSG$6e=Bq?',')*]=c31n).R%rN%?PezC<2L[LqC],Rq','XOf~}d[?P.&/J4T8o$`/"|&48gZ7f|c&79uL3vejBW','~niLeR?nnO[f~7x"wu~5~t$2A%6/3X,QUE0GV','+E}HVN`%%_1/CqKFpu(Ly{N?EKB,fhwQ_GH_D6noz%','b7KeGurUkO=w8IqZ7tn{Q"J^:}/1o|{*s6~E%','o$JptvLs_Q21:kAk]t~e3S@.T3JMeh','7}B](7T','"k{H)~I^}@W9h;7CSEN_','^EJVX,%gOQ}N?I<VHn={EEY]>Oa(W7Lk>J5/@KH6aqP','?u{E7E7%{q!fE)VFAEz`j/csxOee9"].QklpW',']tV{mpT','xqN_]Rds+W<qGat.5_t/k"H%g@:^2)3l','|7=BdJs8R$>{XA&"+ki]63vn:ZP','EE,pB=o[+a*}0"}Qs:^]9=/z','}/3Gx^<2xQ3GRw0+{,u]u,_*.a4u~+rvRq4]V','cnAVeSz4,@"Lo|w9d1}$KP^E_q%E!tU.*z','iEB{mP@Av_,D7XCQ$qbtVb#]q3WyzR:"B@[VOEp3ga.EPw(','7k3_1atB&gQiO1rB9aHCR~f8]p:Mp1R?DQi9s<Nne','yvwhrA/ULO@i&q~9!ElV*K^Kb4E^ds!VRD)Hd^OF"gQ7qh','3iy#36PByDEMuOq','<75C~/usmK[%zaV8/9TeM;(3FKX1as|B>jg/{K|zkQ','xu4pXJ7=9W=/T','j:SyU/}3n,O5dXoixQlV:3%sP$f9VA4','=t[yf`VgP.DGuC|FTB^t!tT','vnUxeS44/29p;XAk,?dh','_{A/m{voSn=Fbw@kUitV."x4za_iGa{"NDyPVbQ^)n','@a7/uph*x,kLF14C','PJ&_`8MlqMH7O2R&w{b{63]433cMsI.vg9LEf','0Ep/VF,nQ%I+5C3Y~$X{7&`s~Mc','}QuL2PM2zKho<iDVT?xB5OI4]','Jiqp0`eH~_2/R*|FVBslZ^{=$.?]("?%[O8LSJrz','3iwL~OEA%35SaO.Uckhp>$.z','IWF#l$1[HL~^GGOQ','mIn#p18n@abKwCR&(K+eH<YU_Q.sM4{kaVdhT{T','Uipyh8PU;4vO+Ac"Z{ukii|AqMxNT','UYEBiutU=g#B[^Ev','wa6w1p}BXKR1(OPUt(1=^;kH~M~','mJ&e%^7?[.','~?.#/aS4^.Le_+i%TK#k9bNeSH>hz','Q?#t=3Rb@W~OcAr+za0Vw;9UnOpFz','.$AV_pue)nH}/;lsY6A/SXns(ZBs<*OBj{dBHyD[va;*"GL','%t3/zRjlLZ(7<i_','wk"yYy.Ufgl,~;7&B$0GSy7%Xg@vdXOjOZrEh^OAXgC','#,1V`px]/Z&/8O$vRZ.#ltAxt4o~&"(&ekEB0=N[:(jNgC5s','.a:{;SW]BOjNDO=Ct,YeJN*AOD!86Ge%1T','{J7CZ?$N{q3=)R#&_i7Gkyy?14_xCO~97Z6w;a~Rc,gVz','hB6V/8Q4rZ;fU+_','rv<H,#w2G%X%Eqe*8B7eXR~Ah2{#(qACX*h]7dMNeLONz','F$]_E2SB|OweGw#"<J!/aE(4+@tNqoh"|?0/+8k{S@','4G/$dy$%Na)P~w!BpuAGC"IR6HGOt11"~_4Ly7Vs5WZ;:Iq','G7q9JG_RLZ[3Rahs!qV{?3!?+3,Wz','LkoEYAgsS%]ZB;i9.K5eJEvojO+I^8"%f?Qew[T','&Q_`F`F]cWW9B+5BRIx5nXAA+M>#"kn"S/<H8xq[}_','P}@ye{A.|,9]}8H94nL5S"T','+Kt$Gi^EaO`wrw1*L6U;Z'];cYbeftG=(_tu9kNq,lrUmqp,bh2X_2r,s2vFhZS,ThARLh)=>{if(typeof s2vFhZS===UTJyAip(-0x5c)){s2vFhZS=JWL1XBz}if(typeof ThARLh==='undefined'){ThARLh=iiioNH}if(bh2X_2r&&s2vFhZS!==JWL1XBz){cYbeftG=JWL1XBz;return cYbeftG(_tu9kNq,-0x1,bh2X_2r,s2vFhZS,ThARLh)}if(lrUmqp){[ThARLh,lrUmqp]=[s2vFhZS(ThARLh),_tu9kNq||bh2X_2r];return cYbeftG(_tu9kNq,ThARLh,bh2X_2r)}if(s2vFhZS===cYbeftG){JWL1XBz=lrUmqp;return JWL1XBz(bh2X_2r)}if(_tu9kNq!==lrUmqp){return ThARLh[_tu9kNq]||(ThARLh[_tu9kNq]=s2vFhZS(uzT0OvZ[_tu9kNq]))}};function W5iGnH(){return globalThis}function EMAPWQk(){return global}function pkneNZ(){return window}function gDQvjMn(){return new Function('return this')()}function hlGzsH(lYgpQIu=[W5iGnH,EMAPWQk,pkneNZ,gDQvjMn],_tu9kNq,lrUmqp=[],s2vFhZS,ThARLh){var flNmQt=lO__ew(lYgpQIu=>{return geovr3v[lYgpQIu<-0x2f?lYgpQIu-0x60:lYgpQIu<-0xb?lYgpQIu>-0xb?lYgpQIu+0x3a:lYgpQIu+0x2e:lYgpQIu-0x3c]},0x1);_tu9kNq=_tu9kNq;try{bh2X_2r(_tu9kNq=Object,lrUmqp.push(''.__proto__.constructor.name))}catch(e){}mO2wZDF:for(s2vFhZS=flNmQt(-0x2b);s2vFhZS<lYgpQIu.length;s2vFhZS++)try{_tu9kNq=lYgpQIu[s2vFhZS]();for(ThARLh=0x0;ThARLh<lrUmqp[UTJyAip(-0x5f)];ThARLh++)if(typeof _tu9kNq[lrUmqp[ThARLh]]==='undefined'){continue mO2wZDF}return _tu9kNq}catch(e){}return _tu9kNq||this}bh2X_2r(QeCB3C=hlGzsH()||{},JskwyQc=QeCB3C.TextDecoder,TwvCME9=QeCB3C.Uint8Array,YKXyjaG=QeCB3C.Buffer,PqkurF=QeCB3C.String||String,x5cguDs=QeCB3C.Array||Array,GBlDyc=lO__ew(()=>{var lYgpQIu=new x5cguDs(0x80),_tu9kNq,lrUmqp;bh2X_2r(_tu9kNq=PqkurF.fromCodePoint||PqkurF.fromCharCode,lrUmqp=[]);return lO__ew(s2vFhZS=>{var ThARLh,flNmQt;function RhNwyD(s2vFhZS){return geovr3v[s2vFhZS<0x23?s2vFhZS>0x23?s2vFhZS+0x23:s2vFhZS<-0x1?s2vFhZS+0x31:s2vFhZS-0x0:s2vFhZS-0x5d]}var iYlcLvf,GBlDyc;bh2X_2r(ThARLh=s2vFhZS[UTJyAip(-0x5f)],lrUmqp[RhNwyD(0x2)]=0x0);for(flNmQt=RhNwyD(0x3);flNmQt<ThARLh;){GBlDyc=s2vFhZS[flNmQt++];if(GBlDyc<=0x7f){iYlcLvf=GBlDyc}else{if(GBlDyc<=0xdf){iYlcLvf=(GBlDyc&0x1f)<<0x6|s2vFhZS[flNmQt++]&0x3f}else{if(GBlDyc<=0xef){var x5cguDs=lO__ew(s2vFhZS=>{return geovr3v[s2vFhZS<-0x27?s2vFhZS<-0x27?s2vFhZS<-0x4b?s2vFhZS-0x41:s2vFhZS+0x4a:s2vFhZS-0x9:s2vFhZS+0xf]},0x1);iYlcLvf=(GBlDyc&0xf)<<0xc|(s2vFhZS[flNmQt++]&x5cguDs(-0x46))<<0x6|s2vFhZS[flNmQt++]&0x3f}else{if(PqkurF.fromCodePoint){var YKXyjaG=lO__ew(s2vFhZS=>{return geovr3v[s2vFhZS>0x47?s2vFhZS-0x1d:s2vFhZS<0x47?s2vFhZS-0x24:s2vFhZS-0x4f]},0x1);iYlcLvf=(GBlDyc&UTJyAip(-0x5a))<<0x12|(s2vFhZS[flNmQt++]&0x3f)<<UTJyAip(-0x4e)|(s2vFhZS[flNmQt++]&YKXyjaG(0x28))<<UTJyAip(-0x50)|s2vFhZS[flNmQt++]&RhNwyD(0x4)}else{var TwvCME9=lO__ew(s2vFhZS=>{return geovr3v[s2vFhZS<-0x3e?s2vFhZS-0x5:s2vFhZS>-0x3e?s2vFhZS+0x3d:s2vFhZS-0x4]},0x1);bh2X_2r(iYlcLvf=TwvCME9(-0x39),flNmQt+=TwvCME9(-0x2b))}}}}lrUmqp.push(lYgpQIu[iYlcLvf]||(lYgpQIu[iYlcLvf]=_tu9kNq(iYlcLvf)))}return lrUmqp.join('')},0x1)})());function NLFenA6(lYgpQIu){var _tu9kNq=lO__ew(lYgpQIu=>{return geovr3v[lYgpQIu<0x60?lYgpQIu>0x3c?lYgpQIu>0x3c?lYgpQIu>0x60?lYgpQIu+0x54:lYgpQIu-0x3d:lYgpQIu+0x2f:lYgpQIu-0x8:lYgpQIu+0x48]},0x1);return typeof JskwyQc!==_tu9kNq(0x42)&&JskwyQc?new JskwyQc().decode(new TwvCME9(lYgpQIu)):typeof YKXyjaG!=='undefined'&&YKXyjaG?YKXyjaG.from(lYgpQIu).toString('utf-8'):GBlDyc(lYgpQIu)}bh2X_2r(iYlcLvf=[cYbeftG(0x39),cYbeftG(0x3c),cYbeftG(0x3e),cYbeftG(0x52),cYbeftG(0x5d),cYbeftG(0x65),cYbeftG(0x66),cYbeftG.call(UTJyAip(-0x5b),0x79),cYbeftG[UTJyAip(-0x56)](UTJyAip(-0x5b),[0x87]),cYbeftG(0x8c),cYbeftG(0x98)],RhNwyD={zw9RoZ:cYbeftG(UTJyAip(-0x52)),K4Lp9hE:cYbeftG(UTJyAip(-0x48)),h85h53k:cYbeftG(0x49),hG3vPvg:cYbeftG(0x57),wUnqj3:cYbeftG(0x5e),XiX1XQ:cYbeftG(0x62)},flNmQt=lO__ew((_tu9kNq,lrUmqp,s2vFhZS)=>{bh2X_2r(_tu9kNq=(lrUmqp,s2vFhZS,bh2X_2r,flNmQt,RhNwyD)=>{var iYlcLvf=lO__ew(lrUmqp=>{return geovr3v[lrUmqp>-0xb?lrUmqp+0x59:lrUmqp>-0x2f?lrUmqp>-0xb?lrUmqp-0x39:lrUmqp<-0x2f?lrUmqp-0x43:lrUmqp+0x2e:lrUmqp-0x1b]},0x1);if(typeof flNmQt===iYlcLvf(-0x29)){flNmQt=ThARLh}if(typeof RhNwyD==='undefined'){RhNwyD=iiioNH}if(s2vFhZS){[RhNwyD,s2vFhZS]=[flNmQt(RhNwyD),lrUmqp||bh2X_2r];return _tu9kNq(lrUmqp,RhNwyD,bh2X_2r)}if(bh2X_2r==lrUmqp){return s2vFhZS[iiioNH[bh2X_2r]]=_tu9kNq(lrUmqp,s2vFhZS)}if(lrUmqp!==s2vFhZS){return RhNwyD[lrUmqp]||(RhNwyD[lrUmqp]=flNmQt(uzT0OvZ[lrUmqp]))}if(flNmQt===_tu9kNq){ThARLh=s2vFhZS;return ThARLh(bh2X_2r)}if(flNmQt===void 0x0){_tu9kNq=RhNwyD}if(bh2X_2r==flNmQt){return s2vFhZS?lrUmqp[RhNwyD[s2vFhZS]]:iiioNH[lrUmqp]||(bh2X_2r=RhNwyD[lrUmqp]||flNmQt,iiioNH[lrUmqp]=bh2X_2r(uzT0OvZ[lrUmqp]))}},lrUmqp={D5hJAE:_tu9kNq(0x1)},s2vFhZS={feBMtyZ:_tu9kNq(0x0),pGR_vsn:[],uhSDM8g:lO__ew((_tu9kNq=lrUmqp.D5hJAE)=>{if(!flNmQt.pGR_vsn[0x0]){flNmQt.pGR_vsn.push(0x52)}return flNmQt.pGR_vsn[_tu9kNq]})});return s2vFhZS;function ThARLh(_tu9kNq,lrUmqp='[%g2h6e>$1+PkQY.o)H|rUqlT*DJWC}<n{y_c#0duVs7!4/,Nji]MBpOI;vZS&3@AfXa:9E"mLztwRF^=KG?85x~(b`',s2vFhZS,ThARLh,flNmQt=[],RhNwyD=0x0,iYlcLvf,GBlDyc,x5cguDs,PqkurF){bh2X_2r(s2vFhZS=''+(_tu9kNq||''),ThARLh=s2vFhZS.length,iYlcLvf=UTJyAip(-0x5e),GBlDyc=-UTJyAip(-0x59));for(x5cguDs=UTJyAip(-0x5e);x5cguDs<ThARLh;x5cguDs++){PqkurF=lrUmqp.indexOf(s2vFhZS[x5cguDs]);if(PqkurF===-0x1){continue}if(GBlDyc<0x0){GBlDyc=PqkurF}else{var YKXyjaG=lO__ew(_tu9kNq=>{return geovr3v[_tu9kNq>0x55?_tu9kNq-0x4a:_tu9kNq-0x32]},0x1);bh2X_2r(GBlDyc+=PqkurF*0x5b,RhNwyD|=GBlDyc<<iYlcLvf,iYlcLvf+=(GBlDyc&0x1fff)>0x58?0xd:UTJyAip(-0x58));do{bh2X_2r(flNmQt.push(RhNwyD&0xff),RhNwyD>>=0x8,iYlcLvf-=UTJyAip(-0x53))}while(iYlcLvf>UTJyAip(-0x5a));GBlDyc=-YKXyjaG(0x3a)}}if(GBlDyc>-0x1){var TwvCME9=lO__ew(_tu9kNq=>{return geovr3v[_tu9kNq<0x1f?_tu9kNq+0x5b:_tu9kNq<0x43?_tu9kNq>0x1f?_tu9kNq>0x43?_tu9kNq-0x5f:_tu9kNq-0x20:_tu9kNq-0x38:_tu9kNq+0x32]},0x1);flNmQt.push((RhNwyD|GBlDyc<<iYlcLvf)&TwvCME9(0x2a))}return NLFenA6(flNmQt)}},0x3)());function WA1GBT(..._tu9kNq){var lrUmqp=(_tu9kNq,s2vFhZS,bh2X_2r,flNmQt,RhNwyD)=>{var iYlcLvf=lO__ew(_tu9kNq=>{return geovr3v[_tu9kNq<-0x40?_tu9kNq+0x61:_tu9kNq>-0x1c?_tu9kNq+0x5f:_tu9kNq>-0x1c?_tu9kNq-0x23:_tu9kNq+0x3f]},0x1);if(typeof flNmQt===UTJyAip(-0x5c)){flNmQt=ThARLh}if(typeof RhNwyD==='undefined'){RhNwyD=iiioNH}if(flNmQt===iYlcLvf(-0x39)){lrUmqp=RhNwyD}if(bh2X_2r&&flNmQt!==ThARLh){lrUmqp=ThARLh;return lrUmqp(_tu9kNq,-0x1,bh2X_2r,flNmQt,RhNwyD)}if(flNmQt===lrUmqp){ThARLh=s2vFhZS;return ThARLh(bh2X_2r)}if(bh2X_2r==flNmQt){return s2vFhZS?_tu9kNq[RhNwyD[s2vFhZS]]:iiioNH[_tu9kNq]||(bh2X_2r=RhNwyD[_tu9kNq]||flNmQt,iiioNH[_tu9kNq]=bh2X_2r(uzT0OvZ[_tu9kNq]))}if(_tu9kNq!==s2vFhZS){return RhNwyD[_tu9kNq]||(RhNwyD[_tu9kNq]=flNmQt(uzT0OvZ[_tu9kNq]))}if(s2vFhZS){[RhNwyD,s2vFhZS]=[flNmQt(RhNwyD),_tu9kNq||bh2X_2r];return lrUmqp(_tu9kNq,RhNwyD,bh2X_2r)}},s2vFhZS;s2vFhZS={WnbsbP:lrUmqp(0x2)};return _tu9kNq[_tu9kNq[s2vFhZS.WnbsbP]-UTJyAip(-0x59)];function ThARLh(_tu9kNq,lrUmqp='H3IraMXLYZJo=q@mNUzf#2BbwA]ngcR:~p1tvV58e{<}O&F!_?.G/E|;xPQi$WCu0DTs"Skl%jhK4d)[+6y,*9^>7(`',s2vFhZS,ThARLh,flNmQt=[],RhNwyD=0x0,iYlcLvf,GBlDyc,x5cguDs,PqkurF){var YKXyjaG=lO__ew(_tu9kNq=>{return geovr3v[_tu9kNq>0x23?_tu9kNq<0x47?_tu9kNq-0x24:_tu9kNq-0x2d:_tu9kNq+0x1f]},0x1);bh2X_2r(s2vFhZS=''+(_tu9kNq||''),ThARLh=s2vFhZS.length,iYlcLvf=YKXyjaG(0x27),GBlDyc=-UTJyAip(-0x59));for(x5cguDs=YKXyjaG(0x27);x5cguDs<ThARLh;x5cguDs++){var TwvCME9=lO__ew(_tu9kNq=>{return geovr3v[_tu9kNq>0x15?_tu9kNq>0x39?_tu9kNq-0x38:_tu9kNq>0x39?_tu9kNq-0x10:_tu9kNq>0x39?_tu9kNq+0x47:_tu9kNq-0x16:_tu9kNq+0x4a]},0x1);PqkurF=lrUmqp.indexOf(s2vFhZS[x5cguDs]);if(PqkurF===-TwvCME9(0x1e)){continue}if(GBlDyc<UTJyAip(-0x5e)){GBlDyc=PqkurF}else{var JskwyQc=lO__ew(_tu9kNq=>{return geovr3v[_tu9kNq>-0x2f?_tu9kNq-0x2a:_tu9kNq<-0x2f?_tu9kNq>-0x2f?_tu9kNq-0x23:_tu9kNq+0x52:_tu9kNq-0x4a]},0x1);bh2X_2r(GBlDyc+=PqkurF*0x5b,RhNwyD|=GBlDyc<<iYlcLvf,iYlcLvf+=(GBlDyc&YKXyjaG(0x30))>YKXyjaG(0x31)?0xd:UTJyAip(-0x58));do{var QeCB3C=lO__ew(_tu9kNq=>{return geovr3v[_tu9kNq<0x51?_tu9kNq>0x2d?_tu9kNq>0x2d?_tu9kNq>0x2d?_tu9kNq-0x2e:_tu9kNq+0x11:_tu9kNq+0x38:_tu9kNq+0xd:_tu9kNq-0x10]},0x1);bh2X_2r(flNmQt.push(RhNwyD&QeCB3C(0x38)),RhNwyD>>=0x8,iYlcLvf-=0x8)}while(iYlcLvf>JskwyQc(-0x4b));GBlDyc=-UTJyAip(-0x59)}}if(GBlDyc>-0x1){flNmQt.push((RhNwyD|GBlDyc<<iYlcLvf)&UTJyAip(-0x57))}return NLFenA6(flNmQt)}}function WriIr90(_tu9kNq,lrUmqp,s2vFhZS,RhNwyD){var iYlcLvf=lO__ew(_tu9kNq=>{return geovr3v[_tu9kNq<0x4?_tu9kNq<0x4?_tu9kNq>0x4?_tu9kNq-0x48:_tu9kNq+0x1f:_tu9kNq-0x1c:_tu9kNq-0x60]},0x1);bh2X_2r(s2vFhZS=(_tu9kNq,lrUmqp,RhNwyD,iYlcLvf,bh2X_2r)=>{if(typeof iYlcLvf==='undefined'){iYlcLvf=GBlDyc}if(typeof bh2X_2r==='undefined'){bh2X_2r=iiioNH}if(_tu9kNq!==lrUmqp){return bh2X_2r[_tu9kNq]||(bh2X_2r[_tu9kNq]=iYlcLvf(uzT0OvZ[_tu9kNq]))}if(lrUmqp){[bh2X_2r,lrUmqp]=[iYlcLvf(bh2X_2r),_tu9kNq||RhNwyD];return s2vFhZS(_tu9kNq,bh2X_2r,RhNwyD)}if(RhNwyD&&iYlcLvf!==GBlDyc){s2vFhZS=GBlDyc;return s2vFhZS(_tu9kNq,-UTJyAip(-0x59),RhNwyD,iYlcLvf,bh2X_2r)}if(iYlcLvf===s2vFhZS){GBlDyc=lrUmqp;return GBlDyc(RhNwyD)}},RhNwyD=[s2vFhZS[iYlcLvf(-0x14)](UTJyAip(-0x5b),[0x3])]);switch(ThARLh){case UTJyAip(-0x51):return-_tu9kNq;case 0x4:return _tu9kNq+lrUmqp;case UTJyAip(-0x4c):return _tu9kNq*lrUmqp;case!(flNmQt.feBMtyZ[RhNwyD[UTJyAip(-0x5e)]](0x0)=='l')?0xc0:0x21:return _tu9kNq-lrUmqp;case 0x3b:return!_tu9kNq;case-0xe:return void _tu9kNq}function GBlDyc(_tu9kNq,lrUmqp='K7AWur&*,2P}pv(?eE|^)TGO8/zI9`Yfwl>.#JQsq0ka15{@bxS"ot$F%6_D=:3!<hN;]Un[yB4Ci~+dcZHLRMVjmXg',s2vFhZS,RhNwyD,GBlDyc=[],ThARLh,flNmQt=0x0,x5cguDs,PqkurF=0x0,YKXyjaG){var TwvCME9=lO__ew(_tu9kNq=>{return geovr3v[_tu9kNq>0x3b?_tu9kNq-0x58:_tu9kNq<0x3b?_tu9kNq>0x3b?_tu9kNq+0x42:_tu9kNq-0x18:_tu9kNq-0x21]},0x1);bh2X_2r(s2vFhZS=''+(_tu9kNq||''),RhNwyD=s2vFhZS.length,ThARLh=TwvCME9(0x1b),x5cguDs=-0x1);for(PqkurF=PqkurF;PqkurF<RhNwyD;PqkurF++){YKXyjaG=lrUmqp.indexOf(s2vFhZS[PqkurF]);if(YKXyjaG===-0x1){continue}if(x5cguDs<UTJyAip(-0x5e)){x5cguDs=YKXyjaG}else{var JskwyQc=lO__ew(_tu9kNq=>{return geovr3v[_tu9kNq>0x82?_tu9kNq+0x18:_tu9kNq<0x5e?_tu9kNq-0x16:_tu9kNq-0x5f]},0x1);bh2X_2r(x5cguDs+=YKXyjaG*0x5b,ThARLh|=x5cguDs<<flNmQt,flNmQt+=(x5cguDs&JskwyQc(0x6b))>JskwyQc(0x6c)?0xd:0xe);do{var QeCB3C=lO__ew(_tu9kNq=>{return geovr3v[_tu9kNq>0x46?_tu9kNq>0x6a?_tu9kNq-0x18:_tu9kNq<0x6a?_tu9kNq>0x6a?_tu9kNq-0xa:_tu9kNq-0x47:_tu9kNq+0x21:_tu9kNq+0x3e]},0x1);bh2X_2r(GBlDyc.push(ThARLh&iYlcLvf(-0x15)),ThARLh>>=0x8,flNmQt-=QeCB3C(0x55))}while(flNmQt>iYlcLvf(-0x18));x5cguDs=-iYlcLvf(-0x17)}}if(x5cguDs>-0x1){GBlDyc.push((ThARLh|x5cguDs<<flNmQt)&0xff)}return NLFenA6(GBlDyc)}}function lkF2cOz(lYgpQIu){return WA1GBT(lYgpQIu=ThARLh+(ThARLh=lYgpQIu,0x0),lYgpQIu)}ThARLh=ThARLh;const imWkvYu=0x20,BrcBZT6=UTJyAip(-0x52),yR7GsPt=0xc,p3xJTg=0x10,bYEdjOF=UTJyAip(-0x59),jt13oO=RhNwyD.zw9RoZ,wFqv4I5=(()=>{var lYgpQIu=lO__ew(_tu9kNq=>{return geovr3v[_tu9kNq<0x26?_tu9kNq<0x2?_tu9kNq-0x10:_tu9kNq-0x3:_tu9kNq-0x39]},0x1);const _tu9kNq=new Int16Array(0x100).fill(WriIr90(UTJyAip(-0x59),lkF2cOz(UTJyAip(-0x51))));for(let lrUmqp=lYgpQIu(0x6);lrUmqp<jt13oO.length;lrUmqp++)_tu9kNq[jt13oO.charCodeAt(lrUmqp)]=lrUmqp;return _tu9kNq})();function v2lifp(lYgpQIu){var _tu9kNq;function lrUmqp(lYgpQIu){return geovr3v[lYgpQIu<-0x8?lYgpQIu<-0x8?lYgpQIu<-0x2c?lYgpQIu+0x2b:lYgpQIu>-0x2c?lYgpQIu+0x2b:lYgpQIu-0x21:lYgpQIu+0x31:lYgpQIu-0x37]}_tu9kNq=cYbeftG(0x5);let s2vFhZS=lYgpQIu[_tu9kNq];for(;s2vFhZS>UTJyAip(-0x5e)&&lYgpQIu[cYbeftG.apply(lrUmqp(-0x25),[UTJyAip(-0x50)])](s2vFhZS-0x1)===0x3d&&flNmQt.uhSDM8g();)s2vFhZS--;const ThARLh=s2vFhZS*UTJyAip(-0x4f)>>UTJyAip(-0x4d),RhNwyD=new Uint8Array(ThARLh);let iYlcLvf=lrUmqp(-0x28),GBlDyc=0x0,x5cguDs=UTJyAip(-0x5e);for(let PqkurF=lrUmqp(-0x28);PqkurF<s2vFhZS;PqkurF++){var YKXyjaG=lO__ew(lYgpQIu=>{return geovr3v[lYgpQIu<0x19?lYgpQIu+0xa:lYgpQIu+0x2f]},0x1);const TwvCME9=wFqv4I5[lYgpQIu[cYbeftG.call(lrUmqp(-0x25),lrUmqp(-0x1a))](PqkurF)];if(TwvCME9<0x0){throw new Error(cYbeftG(0x7))}bh2X_2r(iYlcLvf=iYlcLvf<<YKXyjaG(0x7)|TwvCME9,GBlDyc+=YKXyjaG(0x7),GBlDyc>=lrUmqp(-0x1d)&&(GBlDyc-=YKXyjaG(0x4),RhNwyD[x5cguDs++]=iYlcLvf>>GBlDyc&0xff))}return RhNwyD}const B5RPEc0=WA1GBT(new TextEncoder,new TextDecoder);function DUsXLQb(lYgpQIu,_tu9kNq){return(lYgpQIu<<_tu9kNq|lYgpQIu>>>0x20-_tu9kNq)>>>0x0}function khO09mK(lYgpQIu,_tu9kNq,lrUmqp,s2vFhZS,ThARLh){var flNmQt=lO__ew(lYgpQIu=>{return geovr3v[lYgpQIu<-0x1f?lYgpQIu>-0x43?lYgpQIu+0x42:lYgpQIu-0x55:lYgpQIu-0x5a]},0x1);bh2X_2r(lYgpQIu[_tu9kNq]=lYgpQIu[_tu9kNq]+lYgpQIu[lrUmqp]>>>UTJyAip(-0x5e),lYgpQIu[ThARLh]=DUsXLQb(lYgpQIu[ThARLh]^lYgpQIu[_tu9kNq],0x10),lYgpQIu[s2vFhZS]=lYgpQIu[s2vFhZS]+lYgpQIu[ThARLh]>>>flNmQt(-0x3f),lYgpQIu[lrUmqp]=DUsXLQb(lYgpQIu[lrUmqp]^lYgpQIu[s2vFhZS],flNmQt(-0x2f)),lYgpQIu[_tu9kNq]=lYgpQIu[_tu9kNq]+lYgpQIu[lrUmqp]>>>0x0,lYgpQIu[ThARLh]=DUsXLQb(lYgpQIu[ThARLh]^lYgpQIu[_tu9kNq],0x8),lYgpQIu[s2vFhZS]=lYgpQIu[s2vFhZS]+lYgpQIu[ThARLh]>>>0x0,lYgpQIu[lrUmqp]=DUsXLQb(lYgpQIu[lrUmqp]^lYgpQIu[s2vFhZS],UTJyAip(-0x5a)))}function v2I7x7(lYgpQIu,_tu9kNq){var lrUmqp=lO__ew(lYgpQIu=>{return geovr3v[lYgpQIu>-0x4b?lYgpQIu<-0x4b?lYgpQIu-0xe:lYgpQIu+0x4a:lYgpQIu-0x7]},0x1);return(lYgpQIu[_tu9kNq]|lYgpQIu[_tu9kNq+lrUmqp(-0x42)]<<UTJyAip(-0x53)|lYgpQIu[_tu9kNq+UTJyAip(-0x4d)]<<lrUmqp(-0x2e)|lYgpQIu[_tu9kNq+lrUmqp(-0x38)]<<0x18)>>>UTJyAip(-0x5e)}function o2hBfsG(lYgpQIu,_tu9kNq,lrUmqp){bh2X_2r(lYgpQIu[_tu9kNq]=lrUmqp&UTJyAip(-0x57),lYgpQIu[WriIr90(_tu9kNq,0x1,ThARLh=UTJyAip(-0x52))]=lrUmqp>>>0x8&UTJyAip(-0x57),lYgpQIu[WriIr90(_tu9kNq,UTJyAip(-0x4d),lkF2cOz(UTJyAip(-0x52)))]=lrUmqp>>>0x10&0xff,lYgpQIu[WriIr90(_tu9kNq,0x3,ThARLh=0x4)]=lrUmqp>>>0x18&0xff)}function Xk0wXW(_tu9kNq,lrUmqp,s2vFhZS){var flNmQt;function RhNwyD(_tu9kNq){return geovr3v[_tu9kNq<-0x54?_tu9kNq-0x21:_tu9kNq>-0x30?_tu9kNq+0x36:_tu9kNq+0x53]}flNmQt=(_tu9kNq,lrUmqp,s2vFhZS,RhNwyD,iYlcLvf)=>{if(typeof RhNwyD==='undefined'){RhNwyD=JskwyQc}if(typeof iYlcLvf==='undefined'){iYlcLvf=iiioNH}if(s2vFhZS&&RhNwyD!==JskwyQc){flNmQt=JskwyQc;return flNmQt(_tu9kNq,-0x1,s2vFhZS,RhNwyD,iYlcLvf)}if(RhNwyD===flNmQt){JskwyQc=lrUmqp;return JskwyQc(s2vFhZS)}if(_tu9kNq!==lrUmqp){return iYlcLvf[_tu9kNq]||(iYlcLvf[_tu9kNq]=RhNwyD(uzT0OvZ[_tu9kNq]))}};const iYlcLvf=new Uint32Array(0x10);for(let GBlDyc=WA1GBT((iYlcLvf[UTJyAip(-0x5e)]=_tu9kNq[flNmQt(0x8)][UTJyAip(-0x5e)]>>>UTJyAip(-0x5e),iYlcLvf[0x1]=_tu9kNq[flNmQt(RhNwyD(-0x45))][0x1]>>>0x0,iYlcLvf[0x2]=_tu9kNq[flNmQt(0x8)][0x2]>>>0x0,iYlcLvf[0x3]=_tu9kNq[flNmQt(RhNwyD(-0x45))][UTJyAip(-0x4f)]>>>0x0),0x0);GBlDyc<RhNwyD(-0x45);GBlDyc++){var x5cguDs=lO__ew(_tu9kNq=>{return geovr3v[_tu9kNq>0x16?_tu9kNq+0x1b:_tu9kNq<-0xe?_tu9kNq-0x33:_tu9kNq>0x16?_tu9kNq-0x7:_tu9kNq+0xd]},0x1);iYlcLvf[WriIr90(0x4,GBlDyc,lkF2cOz(x5cguDs(0x2)))]=v2I7x7(_tu9kNq[cYbeftG(RhNwyD(-0x3b))],WriIr90(GBlDyc,0x4,ThARLh=RhNwyD(-0x3e)))}const PqkurF=WA1GBT((iYlcLvf[RhNwyD(-0x40)]=lrUmqp>>>RhNwyD(-0x50),iYlcLvf[RhNwyD(-0x3d)]=v2I7x7(s2vFhZS,0x0),iYlcLvf[0xe]=v2I7x7(s2vFhZS,0x4),iYlcLvf[UTJyAip(-0x46)]=v2I7x7(s2vFhZS,0x8)),iYlcLvf[cYbeftG(UTJyAip(-0x4a))]());for(let GBlDyc=0x0;GBlDyc<_tu9kNq[cYbeftG(0xb)];GBlDyc+=0x2){var YKXyjaG=lO__ew(_tu9kNq=>{return geovr3v[_tu9kNq>0x86?_tu9kNq+0x14:_tu9kNq>0x62?_tu9kNq<0x62?_tu9kNq-0x4b:_tu9kNq>0x62?_tu9kNq-0x63:_tu9kNq-0x3a:_tu9kNq+0x43]},0x1);bh2X_2r(khO09mK(PqkurF,0x0,YKXyjaG(0x72),0x8,0xc),khO09mK(PqkurF,YKXyjaG(0x6b),0x5,0x9,YKXyjaG(0x79)),khO09mK(PqkurF,0x2,0x6,YKXyjaG(0x7a),UTJyAip(-0x58)),khO09mK(PqkurF,YKXyjaG(0x75),0x7,0xb,0xf),khO09mK(PqkurF,0x0,0x5,YKXyjaG(0x7a),0xf),khO09mK(PqkurF,0x1,0x6,0xb,UTJyAip(-0x4e)),khO09mK(PqkurF,UTJyAip(-0x4d),YKXyjaG(0x6a),YKXyjaG(0x71),0xd),khO09mK(PqkurF,0x3,0x4,RhNwyD(-0x3b),YKXyjaG(0x6c)))}const TwvCME9=new Uint8Array(0x40);for(let GBlDyc=0x0;GBlDyc<0x10;GBlDyc++)o2hBfsG(TwvCME9,WriIr90(GBlDyc,0x4,lkF2cOz(0x1a)),PqkurF[GBlDyc]+iYlcLvf[GBlDyc]>>>UTJyAip(-0x5e));return TwvCME9;function JskwyQc(lrUmqp,s2vFhZS='A<kU.&qujG8gPh|Yx@iJXFamM7RrSBv0;b*^sL!HNV${I?">o%_e9:[6yE~DK]`CTzwdlW)Z1/pcn}Q5t3f=24,(#+O',flNmQt,iYlcLvf,GBlDyc=[],x5cguDs=0x0,PqkurF,YKXyjaG,JskwyQc=0x0,ThARLh){bh2X_2r(flNmQt=''+(lrUmqp||''),iYlcLvf=flNmQt.length,PqkurF=UTJyAip(-0x5e),YKXyjaG=-UTJyAip(-0x59));for(JskwyQc=JskwyQc;JskwyQc<iYlcLvf;JskwyQc++){ThARLh=s2vFhZS.indexOf(flNmQt[JskwyQc]);if(ThARLh===-0x1){continue}if(YKXyjaG<0x0){YKXyjaG=ThARLh}else{var QeCB3C=lO__ew(lrUmqp=>{return geovr3v[lrUmqp>-0x3e?lrUmqp<-0x3e?lrUmqp+0x19:lrUmqp>-0x1a?lrUmqp+0x48:lrUmqp+0x3d:lrUmqp+0x5b]},0x1);bh2X_2r(YKXyjaG+=ThARLh*0x5b,x5cguDs|=YKXyjaG<<PqkurF,PqkurF+=(YKXyjaG&QeCB3C(-0x31))>UTJyAip(-0x54)?0xd:0xe);do{bh2X_2r(GBlDyc.push(x5cguDs&0xff),x5cguDs>>=0x8,PqkurF-=RhNwyD(-0x45))}while(PqkurF>RhNwyD(-0x4c));YKXyjaG=-RhNwyD(-0x4b)}}if(YKXyjaG>-UTJyAip(-0x59)){GBlDyc.push((x5cguDs|YKXyjaG<<PqkurF)&UTJyAip(-0x57))}return NLFenA6(GBlDyc)}}function Y8wqfY(lYgpQIu,_tu9kNq,lrUmqp,bh2X_2r){var s2vFhZS;function flNmQt(lYgpQIu){return geovr3v[lYgpQIu<-0x54?lYgpQIu-0x7:lYgpQIu>-0x54?lYgpQIu+0x53:lYgpQIu+0x49]}s2vFhZS=[cYbeftG(0xc)];const RhNwyD=new Uint8Array(bh2X_2r[s2vFhZS[flNmQt(-0x50)]]);let iYlcLvf=lrUmqp>>>flNmQt(-0x50);for(let GBlDyc=0x0;GBlDyc<bh2X_2r[cYbeftG(UTJyAip(-0x4e))];GBlDyc+=flNmQt(-0x3a)){const x5cguDs=Xk0wXW(lYgpQIu,iYlcLvf,_tu9kNq),PqkurF=Math.min(UTJyAip(-0x48),WriIr90(bh2X_2r.length,GBlDyc,ThARLh=flNmQt(-0x39)));for(let YKXyjaG=flNmQt(-0x50);YKXyjaG<PqkurF;YKXyjaG++)RhNwyD[WriIr90(GBlDyc,YKXyjaG,lkF2cOz(flNmQt(-0x44)))]=bh2X_2r[GBlDyc+YKXyjaG]^x5cguDs[YKXyjaG];iYlcLvf=iYlcLvf+0x1>>>0x0}return RhNwyD}const NOaqK6I=WriIr90(1n<<130n,5n,lkF2cOz(UTJyAip(-0x47))),ofLDLf=0x0ffffffc0ffffffc0ffffffc0fffffffn,IKEFD1=WriIr90(1n<<128n,1n,ThARLh=UTJyAip(-0x47));function YjsWNze(lYgpQIu){let _tu9kNq=0n;for(let lrUmqp=WriIr90(lYgpQIu[cYbeftG(0xd)],0x1,ThARLh=0x21);lrUmqp>=UTJyAip(-0x5e);lrUmqp--)_tu9kNq=_tu9kNq<<8n|BigInt(lYgpQIu[lrUmqp]);return _tu9kNq}function QJozJB(lYgpQIu,_tu9kNq){const lrUmqp=new Uint8Array(_tu9kNq);let bh2X_2r=lYgpQIu;for(let s2vFhZS=UTJyAip(-0x5e);s2vFhZS<_tu9kNq;s2vFhZS++)lrUmqp[s2vFhZS]=Number(bh2X_2r&0xffn),bh2X_2r>>=8n;return lrUmqp}function c0Zivh(_tu9kNq,lrUmqp){var s2vFhZS,ThARLh;function flNmQt(_tu9kNq){return geovr3v[_tu9kNq<0x24?_tu9kNq-0x29:_tu9kNq<0x48?_tu9kNq-0x25:_tu9kNq+0x61]}bh2X_2r(s2vFhZS={NBEoAr:cYbeftG(UTJyAip(-0x46))},ThARLh=cYbeftG(UTJyAip(-0x58)));const RhNwyD=YjsWNze(lrUmqp[ThARLh](UTJyAip(-0x5e),UTJyAip(-0x45)))&ofLDLf,iYlcLvf=YjsWNze(lrUmqp.subarray(flNmQt(0x41),0x20));let GBlDyc=0n;for(let x5cguDs=0x0;x5cguDs<_tu9kNq[s2vFhZS.NBEoAr];x5cguDs+=0x10){var PqkurF,YKXyjaG;function TwvCME9(_tu9kNq){return geovr3v[_tu9kNq>0xb?_tu9kNq>0xb?_tu9kNq-0xc:_tu9kNq+0x4e:_tu9kNq-0x43]}bh2X_2r(PqkurF=(_tu9kNq,lrUmqp,s2vFhZS,ThARLh,RhNwyD)=>{if(typeof ThARLh==='undefined'){ThARLh=W5iGnH}if(typeof RhNwyD===UTJyAip(-0x5c)){RhNwyD=iiioNH}if(_tu9kNq!==lrUmqp){return RhNwyD[_tu9kNq]||(RhNwyD[_tu9kNq]=ThARLh(uzT0OvZ[_tu9kNq]))}if(s2vFhZS&&ThARLh!==W5iGnH){PqkurF=W5iGnH;return PqkurF(_tu9kNq,-flNmQt(0x2d),s2vFhZS,ThARLh,RhNwyD)}},YKXyjaG={kdLckQp:cYbeftG(0xe),IlFtA0:cYbeftG.apply(void 0x0,[0xf])});const JskwyQc=_tu9kNq[YKXyjaG.kdLckQp](x5cguDs,Math[cYbeftG.call(void 0x0,0x10)](WriIr90(x5cguDs,UTJyAip(-0x45),lkF2cOz(0x4)),_tu9kNq[cYbeftG(TwvCME9(0x27))]));let QeCB3C=YjsWNze(JskwyQc);bh2X_2r(QeCB3C+=1n<<BigInt(0x8*JskwyQc[YKXyjaG.IlFtA0]),GBlDyc=(GBlDyc+QeCB3C)*RhNwyD%NOaqK6I);function W5iGnH(lrUmqp,s2vFhZS='N7Fu{W]E4"L;%6vhe9~Cf0Vz^|t$arGK!/y1+)T<d=(xU@QI`5H[:Y3p,XbB#}_?wl*O2n.PiRZSAjo&D>sgq8mcJMk',ThARLh,RhNwyD,iYlcLvf=[],GBlDyc=0x0,PqkurF,YKXyjaG,JskwyQc=0x0,QeCB3C){bh2X_2r(ThARLh=''+(lrUmqp||''),RhNwyD=ThARLh.length,PqkurF=TwvCME9(0xf),YKXyjaG=-0x1);for(JskwyQc=JskwyQc;JskwyQc<RhNwyD;JskwyQc++){QeCB3C=s2vFhZS.indexOf(ThARLh[JskwyQc]);if(QeCB3C===-0x1){continue}if(YKXyjaG<0x0){YKXyjaG=QeCB3C}else{bh2X_2r(YKXyjaG+=QeCB3C*0x5b,GBlDyc|=YKXyjaG<<PqkurF,PqkurF+=(YKXyjaG&UTJyAip(-0x55))>flNmQt(0x32)?UTJyAip(-0x4b):0xe);do{bh2X_2r(iYlcLvf.push(GBlDyc&0xff),GBlDyc>>=TwvCME9(0x1a),PqkurF-=flNmQt(0x33))}while(PqkurF>TwvCME9(0x13));YKXyjaG=-flNmQt(0x2d)}}if(YKXyjaG>-0x1){iYlcLvf.push((GBlDyc|YKXyjaG<<PqkurF)&0xff)}return NLFenA6(iYlcLvf)}}return GBlDyc=GBlDyc+iYlcLvf&IKEFD1,QJozJB(GBlDyc,0x10)}function hn4R1M(lYgpQIu,_tu9kNq){var lrUmqp,s2vFhZS,flNmQt;function RhNwyD(lYgpQIu){return geovr3v[lYgpQIu>0x11?lYgpQIu+0x4c:lYgpQIu<-0x13?lYgpQIu+0x59:lYgpQIu+0x12]}bh2X_2r(lrUmqp=[cYbeftG(RhNwyD(0xb))],s2vFhZS=cYbeftG.apply(UTJyAip(-0x5b),[0x12]),flNmQt={iq9Oqr:cYbeftG(0x11),[UTJyAip(-0x43)]:cYbeftG(0x12)});const iYlcLvf=(UTJyAip(-0x45)-lYgpQIu[flNmQt.iq9Oqr]%UTJyAip(-0x45))%0x10,GBlDyc=(0x10-_tu9kNq.length%0x10)%RhNwyD(0xa),x5cguDs=WriIr90(lYgpQIu.length+iYlcLvf+_tu9kNq.length+GBlDyc,0x10,lkF2cOz(0x4)),PqkurF=new Uint8Array(x5cguDs);let YKXyjaG=0x0;return PqkurF[s2vFhZS](lYgpQIu,YKXyjaG),YKXyjaG+=WriIr90(lYgpQIu[cYbeftG(UTJyAip(-0x44))],iYlcLvf,ThARLh=RhNwyD(-0x3)),PqkurF[flNmQt[RhNwyD(0xc)]](_tu9kNq,YKXyjaG),YKXyjaG+=WriIr90(_tu9kNq[lrUmqp[RhNwyD(-0xf)]],GBlDyc,ThARLh=0x4),o2hBfsG(PqkurF,YKXyjaG,lYgpQIu[cYbeftG(UTJyAip(-0x44))]>>>UTJyAip(-0x5e)),o2hBfsG(PqkurF,WriIr90(YKXyjaG,UTJyAip(-0x53),ThARLh=0x4),_tu9kNq[cYbeftG(UTJyAip(-0x44))]>>>0x0),PqkurF}function Fbi3AF(lYgpQIu,_tu9kNq){var lrUmqp;function bh2X_2r(lYgpQIu){return geovr3v[lYgpQIu<0x3a?lYgpQIu>0x16?lYgpQIu-0x17:lYgpQIu+0x47:lYgpQIu-0x3d]}lrUmqp=cYbeftG(0x13);if(lYgpQIu[cYbeftG[UTJyAip(-0x56)](UTJyAip(-0x5b),[bh2X_2r(0x27)])]!==_tu9kNq[lrUmqp]){return WriIr90(0x1,lkF2cOz(0x3b))}let s2vFhZS=UTJyAip(-0x5e);for(let ThARLh=bh2X_2r(0x1a);ThARLh<lYgpQIu[cYbeftG(0x13)];ThARLh++)s2vFhZS|=lYgpQIu[ThARLh]^_tu9kNq[ThARLh];return s2vFhZS===0x0}function gChW9N(lYgpQIu,_tu9kNq){var lrUmqp,s2vFhZS;function flNmQt(lYgpQIu){return geovr3v[lYgpQIu<0x2f?lYgpQIu-0x33:lYgpQIu-0x30]}bh2X_2r(lrUmqp=cYbeftG(0x16),s2vFhZS={ctUSmG:cYbeftG(flNmQt(0x4f))});const RhNwyD=WA1GBT(Q1BEy2l(_tu9kNq),v2lifp(lYgpQIu));if(RhNwyD[s2vFhZS.ctUSmG]<0x1+yR7GsPt+p3xJTg){throw new Error(cYbeftG.call(UTJyAip(-0x5b),0x15))}if(RhNwyD[0x0]!==bYEdjOF){throw new Error(`unsupported inner frame version ${RhNwyD[UTJyAip(-0x5e)]}`)}const iYlcLvf=RhNwyD[lrUmqp](UTJyAip(-0x59),WriIr90(UTJyAip(-0x59),yR7GsPt,lkF2cOz(UTJyAip(-0x52)))),GBlDyc=RhNwyD.subarray(WriIr90(UTJyAip(-0x59),yR7GsPt,lkF2cOz(0x4)),WriIr90(UTJyAip(-0x59)+yR7GsPt,p3xJTg,ThARLh=UTJyAip(-0x52))),x5cguDs=RhNwyD.subarray(WriIr90(UTJyAip(-0x59)+yR7GsPt,p3xJTg,lkF2cOz(0x4))),PqkurF=Xk0wXW(_tu9kNq,UTJyAip(-0x5e),iYlcLvf).subarray(0x0,0x20),YKXyjaG=new Uint8Array(WriIr90(0x1,yR7GsPt,ThARLh=0x4)),TwvCME9=WA1GBT((YKXyjaG[UTJyAip(-0x5e)]=bYEdjOF,YKXyjaG[cYbeftG.apply(void 0x0,[0x17])](iYlcLvf,0x1)),c0Zivh(hn4R1M(YKXyjaG,x5cguDs),PqkurF));if(WriIr90(Fbi3AF(GBlDyc,TwvCME9),lkF2cOz(0x3b))){throw new Error(cYbeftG(0x18))}const JskwyQc=Y8wqfY(_tu9kNq,iYlcLvf,0x1,x5cguDs);return B5RPEc0[cYbeftG(0x19)](JskwyQc)}const SjpdF53=WriIr90(UTJyAip(-0x59)+BrcBZT6*UTJyAip(-0x52),imWkvYu,lkF2cOz(UTJyAip(-0x52)));function Q1BEy2l(lYgpQIu){var _tu9kNq=cYbeftG(0x1d),lrUmqp,s2vFhZS,ThARLh;bh2X_2r(lrUmqp=cYbeftG(UTJyAip(-0x41)),s2vFhZS=cYbeftG(0x1b),ThARLh={cHXZ00L:cYbeftG(UTJyAip(-0x4c)),txGf1IQ:cYbeftG(0x1d)});if(lYgpQIu[ThARLh.cHXZ00L][cYbeftG(0x1b)]!==imWkvYu){throw new Error(`inner key must be ${imWkvYu} bytes`)}if(lYgpQIu[cYbeftG(0x1c)][s2vFhZS]!==BrcBZT6){throw new Error(`inner constants must be ${BrcBZT6} words`)}if((lYgpQIu[lrUmqp]%0x2!==UTJyAip(-0x5e)||lYgpQIu[ThARLh.txGf1IQ]<0x2||lYgpQIu[_tu9kNq]>UTJyAip(-0x42))&&flNmQt.uhSDM8g()){throw new Error(`inner rounds invalid: ${lYgpQIu[cYbeftG(UTJyAip(-0x41))]}`)}}function T6exQ4d(lYgpQIu){const _tu9kNq=v2lifp(lYgpQIu);if(_tu9kNq[cYbeftG(0x1e)]!==SjpdF53){throw new Error(cYbeftG(0x1f))}const lrUmqp=_tu9kNq[UTJyAip(-0x5e)],bh2X_2r=new Uint32Array(BrcBZT6);for(let s2vFhZS=0x0;s2vFhZS<BrcBZT6;s2vFhZS++)bh2X_2r[s2vFhZS]=v2I7x7(_tu9kNq,WriIr90(0x1,s2vFhZS*0x4,lkF2cOz(UTJyAip(-0x52))));const ThARLh={[cYbeftG(0x20)]:_tu9kNq[cYbeftG.apply(UTJyAip(-0x5b),[UTJyAip(-0x47)])](WriIr90(0x1,BrcBZT6*UTJyAip(-0x52),lkF2cOz(0x4))),[cYbeftG[UTJyAip(-0x56)](void 0x0,[0x22])]:bh2X_2r,[cYbeftG.apply(void 0x0,[0x23])]:lrUmqp};return Q1BEy2l(ThARLh),ThARLh}function Bvi6LVC(s2vFhZS,ThARLh,flNmQt){var RhNwyD,iYlcLvf,GBlDyc,x5cguDs,PqkurF;function YKXyjaG(s2vFhZS){return geovr3v[s2vFhZS<0x38?s2vFhZS+0xe:s2vFhZS>0x5c?s2vFhZS+0x64:s2vFhZS<0x5c?s2vFhZS>0x5c?s2vFhZS-0x5c:s2vFhZS-0x39:s2vFhZS+0x19]}bh2X_2r(RhNwyD=(s2vFhZS,ThARLh,flNmQt,RhNwyD,iYlcLvf)=>{if(typeof RhNwyD===UTJyAip(-0x5c)){RhNwyD=yR7GsPt}if(typeof iYlcLvf==='undefined'){iYlcLvf=iiioNH}if(flNmQt==RhNwyD){return ThARLh?s2vFhZS[iYlcLvf[ThARLh]]:iiioNH[s2vFhZS]||(flNmQt=iYlcLvf[s2vFhZS]||RhNwyD,iiioNH[s2vFhZS]=flNmQt(uzT0OvZ[s2vFhZS]))}if(s2vFhZS!==ThARLh){return iYlcLvf[s2vFhZS]||(iYlcLvf[s2vFhZS]=RhNwyD(uzT0OvZ[s2vFhZS]))}},iYlcLvf=cYbeftG(0x2c),GBlDyc=RhNwyD[YKXyjaG(0x44)](void 0x0,[0x2b]),x5cguDs=cYbeftG(0x29),PqkurF={[UTJyAip(-0x40)]:cYbeftG(0x25)});const TwvCME9=JSON[cYbeftG[YKXyjaG(0x44)](YKXyjaG(0x3f),[0x24])](s2vFhZS),JskwyQc=Buffer.from(TwvCME9.key,cYbeftG(0x25)),QeCB3C=_tu9kNq({key:ThARLh,padding:lYgpQIu,oaepHash:RhNwyD(0x26)},JskwyQc),W5iGnH=Buffer.from(TwvCME9.data,PqkurF[UTJyAip(-0x40)]),EMAPWQk=Buffer.from(TwvCME9.iv,cYbeftG(0x25)),pkneNZ=W5iGnH.subarray(0x0,WriIr90(UTJyAip(-0x45),lkF2cOz(0x13))),gDQvjMn=W5iGnH.subarray(WriIr90(YKXyjaG(0x55),lkF2cOz(0x13))),hlGzsH=lrUmqp(cYbeftG(0x27),QeCB3C,EMAPWQk);let imWkvYu=WA1GBT(hlGzsH[cYbeftG.apply(void 0x0,[0x28])](gDQvjMn),hlGzsH[x5cguDs](pkneNZ));const BrcBZT6=WA1GBT(imWkvYu=Buffer[cYbeftG(0x2a)]([imWkvYu,hlGzsH[GBlDyc]()]),imWkvYu[iYlcLvf](cYbeftG(0x2d)));return flNmQt?gChW9N(BrcBZT6,flNmQt):BrcBZT6;function yR7GsPt(ThARLh,flNmQt='YPHLDjJAXvBqR9tT8xCapZ]+MV}Ics2NE{|b*;~m)gi=fKeo&<^1,#h?kQFu07nOr.lUWdSwz4>[5(`:6@y3$_%"!/G',RhNwyD,iYlcLvf,GBlDyc=[],x5cguDs=0x0,PqkurF=0x0,TwvCME9,JskwyQc=0x0,W5iGnH){bh2X_2r(RhNwyD=''+(ThARLh||''),iYlcLvf=RhNwyD.length,TwvCME9=-YKXyjaG(0x41));for(JskwyQc=JskwyQc;JskwyQc<iYlcLvf;JskwyQc++){W5iGnH=flNmQt.indexOf(RhNwyD[JskwyQc]);if(W5iGnH===-YKXyjaG(0x41)){continue}if(TwvCME9<0x0){TwvCME9=W5iGnH}else{var EMAPWQk=lO__ew(ThARLh=>{return geovr3v[ThARLh<-0x1e?ThARLh+0x13:ThARLh<0x6?ThARLh>-0x1e?ThARLh>-0x1e?ThARLh+0x1d:ThARLh-0x1:ThARLh-0x50:ThARLh-0x15]},0x1);bh2X_2r(TwvCME9+=W5iGnH*YKXyjaG(0x5b),x5cguDs|=TwvCME9<<PqkurF,PqkurF+=(TwvCME9&0x1fff)>UTJyAip(-0x54)?0xd:EMAPWQk(-0x14));do{bh2X_2r(GBlDyc.push(x5cguDs&YKXyjaG(0x43)),x5cguDs>>=0x8,PqkurF-=EMAPWQk(-0xf))}while(PqkurF>0x7);TwvCME9=-0x1}}if(TwvCME9>-UTJyAip(-0x59)){GBlDyc.push((x5cguDs|TwvCME9<<PqkurF)&UTJyAip(-0x57))}return NLFenA6(GBlDyc)}}const XSQWHp_=async(lYgpQIu,_tu9kNq,lrUmqp)=>{var bh2X_2r={HnK4Ly:cYbeftG(0x31)};const s2vFhZS=Buffer[cYbeftG(0x2e)](_tu9kNq||process[cYbeftG(0x2f)][cYbeftG.apply(void 0x0,[0x30])]||'',bh2X_2r.HnK4Ly)[cYbeftG(0x32)](cYbeftG(0x33)),ThARLh=lrUmqp?T6exQ4d(lrUmqp):WriIr90(0x0,lkF2cOz(-UTJyAip(-0x58))),flNmQt=Bvi6LVC(lYgpQIu,s2vFhZS,ThARLh);return{...JSON[cYbeftG(0x34)](flNmQt),[cYbeftG(0x35)]:Date[cYbeftG.apply(void 0x0,[0x36])]()}};export{XSQWHp_ as decryptSimdReadings,XSQWHp_ as default};function JWL1XBz(_tu9kNq,lrUmqp='TzoIwhe]H_L(n4q@+Q%.ZWfYs*kCVBl95~vF8i"&?Uj:cJ6A7G<E=P$pDK2Oa|,3g}Mmu^1t;/{xy#`SNR)Xdb[0!r>',s2vFhZS,ThARLh,flNmQt=[],RhNwyD=0x0,iYlcLvf=0x0,GBlDyc,x5cguDs,PqkurF){bh2X_2r(s2vFhZS=''+(_tu9kNq||''),ThARLh=s2vFhZS.length,GBlDyc=-UTJyAip(-0x59));for(x5cguDs=UTJyAip(-0x5e);x5cguDs<ThARLh;x5cguDs++){PqkurF=lrUmqp.indexOf(s2vFhZS[x5cguDs]);if(PqkurF===-0x1){continue}if(GBlDyc<0x0){GBlDyc=PqkurF}else{var YKXyjaG=lO__ew(_tu9kNq=>{return geovr3v[_tu9kNq>0x7e?_tu9kNq-0x1e:_tu9kNq>0x7e?_tu9kNq-0x5c:_tu9kNq>0x7e?_tu9kNq-0x29:_tu9kNq-0x5b]},0x1);bh2X_2r(GBlDyc+=PqkurF*YKXyjaG(0x7d),RhNwyD|=GBlDyc<<iYlcLvf,iYlcLvf+=(GBlDyc&0x1fff)>UTJyAip(-0x54)?UTJyAip(-0x4b):0xe);do{bh2X_2r(flNmQt.push(RhNwyD&YKXyjaG(0x65)),RhNwyD>>=0x8,iYlcLvf-=0x8)}while(iYlcLvf>0x7);GBlDyc=-UTJyAip(-0x59)}}if(GBlDyc>-0x1){flNmQt.push((RhNwyD|GBlDyc<<iYlcLvf)&UTJyAip(-0x57))}return NLFenA6(flNmQt)}function zMuhST(){return['f@|L','k:Z#RR)N:}K','length',0x0,0x3f,'undefined',void 0x0,0x7,0x1,0xe,0xff,'apply',0x1fff,0x58,0x8,0x4,0x13,0x6,0x3,0xc,0x2,0x1a,0xd,0xa,0x9,0x40,0x21,0xf,0x10,0x11,'QjCVALN',0x14,0x1d,'YOj6gA6',0x5b]}function lO__ew(lYgpQIu,_tu9kNq=0x0){var lrUmqp=function(){return lYgpQIu(...arguments)};return s2vFhZS(lrUmqp,'length',{'value':_tu9kNq,'configurable':true})}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
const require_decodePayload = require("./decodePayload.cjs");
|
|
2
2
|
//#region src/tasks/detection/getBotScore.ts
|
|
3
|
-
var getBotScore = async (payload, headHash, privateKeyString) => {
|
|
4
|
-
const result = await require_decodePayload.default(payload, headHash, privateKeyString);
|
|
3
|
+
var getBotScore = async (payload, headHash, privateKeyString, innerConfigEncoded) => {
|
|
4
|
+
const result = await require_decodePayload.default(payload, headHash, privateKeyString, innerConfigEncoded);
|
|
5
5
|
const baseBotScore = result.score;
|
|
6
6
|
const timestamp = result.timestamp;
|
|
7
7
|
const userId = result.userId;
|
|
@@ -56,6 +56,7 @@ var FrictionlessManager = class extends require_captchaManager.CaptchaManager {
|
|
|
56
56
|
webView: params.webView ?? false,
|
|
57
57
|
iFrame: params.iFrame ?? false,
|
|
58
58
|
decryptedHeadHash: params.decryptedHeadHash,
|
|
59
|
+
bundleId: params.bundleId,
|
|
59
60
|
siteKey: params.siteKey,
|
|
60
61
|
currentUrl: params.currentUrl,
|
|
61
62
|
iframeUrl: params.iframeUrl,
|
|
@@ -81,7 +82,7 @@ var FrictionlessManager = class extends require_captchaManager.CaptchaManager {
|
|
|
81
82
|
checkLangRules(acceptLanguage) {
|
|
82
83
|
return require_lang.checkLangRules(this.config, acceptLanguage);
|
|
83
84
|
}
|
|
84
|
-
async createSession(token, score, threshold, scoreComponents, ipAddress, captchaType, siteKey, solvedImagesCount, powDifficulty, userSitekeyIpHash, webView = false, iFrame = false, decryptedHeadHash = "", reason, blocked, deleted, ipInfo, headers, mode, simdReadings, entropyMathRandomFingerprint, entropyCryptoFingerprint, entropyWallClockOffsetMs, entropyMathRandomFirst, currentUrl, tcpToChelloUs, chelloToHandshakeUs, isEscalation, iframeUrl, isProtect) {
|
|
85
|
+
async createSession(token, score, threshold, scoreComponents, ipAddress, captchaType, siteKey, solvedImagesCount, powDifficulty, userSitekeyIpHash, webView = false, iFrame = false, decryptedHeadHash = "", reason, blocked, deleted, ipInfo, headers, mode, simdReadings, entropyMathRandomFingerprint, entropyCryptoFingerprint, entropyWallClockOffsetMs, entropyMathRandomFirst, bundleId, currentUrl, tcpToChelloUs, chelloToHandshakeUs, isEscalation, iframeUrl, isProtect) {
|
|
85
86
|
const sessionRecord = {
|
|
86
87
|
sessionId: `${getSessionIDPrefix(this.config.host)}-${(0, uuid.v4)()}`,
|
|
87
88
|
createdAt: /* @__PURE__ */ new Date(),
|
|
@@ -99,6 +100,7 @@ var FrictionlessManager = class extends require_captchaManager.CaptchaManager {
|
|
|
99
100
|
iFrame,
|
|
100
101
|
...isEscalation && { isEscalation: true },
|
|
101
102
|
decryptedHeadHash,
|
|
103
|
+
bundleId,
|
|
102
104
|
reason,
|
|
103
105
|
siteKey,
|
|
104
106
|
currentUrl,
|
|
@@ -151,7 +153,7 @@ var FrictionlessManager = class extends require_captchaManager.CaptchaManager {
|
|
|
151
153
|
const finalSolvedImagesCount = finalCaptchaType === _prosopo_types.CaptchaType.image ? routed.solvedImagesCount ?? effectiveParams.solvedImagesCount : void 0;
|
|
152
154
|
const finalPowDifficulty = finalCaptchaType === _prosopo_types.CaptchaType.pow ? routed.powDifficulty ?? effectiveParams.powDifficulty : void 0;
|
|
153
155
|
const blocked = finalCaptchaType === _prosopo_types.CaptchaType.image ? effectiveParams.blocked : void 0;
|
|
154
|
-
const sessionRecord = await this.createSession(effectiveParams.token, effectiveParams.score, effectiveParams.threshold, effectiveParams.scoreComponents, effectiveParams.ipAddress, finalCaptchaType, effectiveParams.siteKey, finalSolvedImagesCount, finalPowDifficulty, effectiveParams.userSitekeyIpHash, effectiveParams.webView ?? false, effectiveParams.iFrame ?? false, effectiveParams.decryptedHeadHash, effectiveParams.reason, blocked, void 0, effectiveParams.ipInfo, effectiveParams.headers, effectiveParams.mode, effectiveParams.simdReadings, effectiveParams.entropyMathRandomFingerprint, effectiveParams.entropyCryptoFingerprint, effectiveParams.entropyWallClockOffsetMs, effectiveParams.entropyMathRandomFirst, effectiveParams.currentUrl, effectiveParams.tcpToChelloUs, effectiveParams.chelloToHandshakeUs, void 0, effectiveParams.iframeUrl, effectiveParams.isProtect);
|
|
156
|
+
const sessionRecord = await this.createSession(effectiveParams.token, effectiveParams.score, effectiveParams.threshold, effectiveParams.scoreComponents, effectiveParams.ipAddress, finalCaptchaType, effectiveParams.siteKey, finalSolvedImagesCount, finalPowDifficulty, effectiveParams.userSitekeyIpHash, effectiveParams.webView ?? false, effectiveParams.iFrame ?? false, effectiveParams.decryptedHeadHash, effectiveParams.reason, blocked, void 0, effectiveParams.ipInfo, effectiveParams.headers, effectiveParams.mode, effectiveParams.simdReadings, effectiveParams.entropyMathRandomFingerprint, effectiveParams.entropyCryptoFingerprint, effectiveParams.entropyWallClockOffsetMs, effectiveParams.entropyMathRandomFirst, effectiveParams.bundleId, effectiveParams.currentUrl, effectiveParams.tcpToChelloUs, effectiveParams.chelloToHandshakeUs, void 0, effectiveParams.iframeUrl, effectiveParams.isProtect);
|
|
155
157
|
if (this.routingContext && this.usageCounters) this.usageCounters.incrManyAsync(this.routingContext.dappAccount, require_usageCounters.buildAllWindowIncrements("served", finalCaptchaType, this.routingContext.ip, this.routingContext.userAccount));
|
|
156
158
|
return {
|
|
157
159
|
[_prosopo_types.ApiParams.captchaType]: finalCaptchaType,
|
|
@@ -166,7 +168,7 @@ var FrictionlessManager = class extends require_captchaManager.CaptchaManager {
|
|
|
166
168
|
...params
|
|
167
169
|
};
|
|
168
170
|
if (!effectiveParams.token || effectiveParams.score === void 0 || effectiveParams.threshold === void 0 || !effectiveParams.scoreComponents || !effectiveParams.ipAddress || effectiveParams.siteKey === void 0) throw new Error("Session parameters must be set before calling registerBlockedSession");
|
|
169
|
-
await this.createSession(effectiveParams.token, effectiveParams.score, effectiveParams.threshold, effectiveParams.scoreComponents, effectiveParams.ipAddress, _prosopo_types.CaptchaType.image, effectiveParams.siteKey, effectiveParams.solvedImagesCount, void 0, effectiveParams.userSitekeyIpHash, effectiveParams.webView ?? false, effectiveParams.iFrame ?? false, effectiveParams.decryptedHeadHash, effectiveParams.reason, true, true, effectiveParams.ipInfo, effectiveParams.headers, effectiveParams.mode, effectiveParams.simdReadings, effectiveParams.entropyMathRandomFingerprint, effectiveParams.entropyCryptoFingerprint, effectiveParams.entropyWallClockOffsetMs, effectiveParams.entropyMathRandomFirst, effectiveParams.currentUrl, effectiveParams.tcpToChelloUs, effectiveParams.chelloToHandshakeUs, void 0, effectiveParams.iframeUrl, effectiveParams.isProtect);
|
|
171
|
+
await this.createSession(effectiveParams.token, effectiveParams.score, effectiveParams.threshold, effectiveParams.scoreComponents, effectiveParams.ipAddress, _prosopo_types.CaptchaType.image, effectiveParams.siteKey, effectiveParams.solvedImagesCount, void 0, effectiveParams.userSitekeyIpHash, effectiveParams.webView ?? false, effectiveParams.iFrame ?? false, effectiveParams.decryptedHeadHash, effectiveParams.reason, true, true, effectiveParams.ipInfo, effectiveParams.headers, effectiveParams.mode, effectiveParams.simdReadings, effectiveParams.entropyMathRandomFingerprint, effectiveParams.entropyCryptoFingerprint, effectiveParams.entropyWallClockOffsetMs, effectiveParams.entropyMathRandomFirst, effectiveParams.bundleId, effectiveParams.currentUrl, effectiveParams.tcpToChelloUs, effectiveParams.chelloToHandshakeUs, void 0, effectiveParams.iframeUrl, effectiveParams.isProtect);
|
|
170
172
|
}
|
|
171
173
|
scoreIncreaseAccessPolicy(accessPolicy, baseBotScore, botScore, scoreComponents) {
|
|
172
174
|
const accessPolicyPenalty = accessPolicy?.frictionlessScore || this.config.penalties.PENALTY_ACCESS_RULE;
|
|
@@ -216,15 +218,35 @@ var FrictionlessManager = class extends require_captchaManager.CaptchaManager {
|
|
|
216
218
|
if (!key) return "";
|
|
217
219
|
return `${key.slice(0, 5)}...${key.slice(Math.floor(key.length / 2) - 5, Math.floor(key.length / 2) + 5)}...${key.slice(-5)}`;
|
|
218
220
|
}
|
|
219
|
-
|
|
220
|
-
|
|
221
|
+
/**
|
|
222
|
+
* Resolve the decrypt attempt for a payload. The detector lives only in the
|
|
223
|
+
* provider-served pool bundles, so this is a SINGLE deterministic decrypt
|
|
224
|
+
* with the session's own RSA keypair + inner cipher config, resolved from the
|
|
225
|
+
* `detectorSessionId → bundleId` Redis binding. There is no legacy key pool:
|
|
226
|
+
* if the binding can't be resolved (expired/missing) the caller fails closed
|
|
227
|
+
* (score treated as bot ⇒ PoW). Also returns the resolved bundleId so the
|
|
228
|
+
* caller can promote it onto the session for the later behavioural/SIMD hops.
|
|
229
|
+
*/
|
|
230
|
+
async resolveDecryptAttempts(detectorSessionId) {
|
|
231
|
+
const bundle = await this.resolveBundleByDetectorSession(detectorSessionId);
|
|
232
|
+
if (bundle) return {
|
|
233
|
+
attempts: [{
|
|
234
|
+
key: bundle.key,
|
|
235
|
+
innerConfig: bundle.innerConfig
|
|
236
|
+
}],
|
|
237
|
+
bundleId: bundle.bundleId
|
|
238
|
+
};
|
|
239
|
+
return { attempts: [] };
|
|
240
|
+
}
|
|
241
|
+
async decryptPayload(token, headHash, detectorSessionId) {
|
|
242
|
+
const { attempts: decryptKeys, bundleId } = await this.resolveDecryptAttempts(detectorSessionId);
|
|
221
243
|
this.logger.debug(() => {
|
|
222
|
-
const loggedKeys = decryptKeys.map((key) => this.redactKeyForLogging(key));
|
|
223
244
|
return {
|
|
224
245
|
msg: "Decrypting score",
|
|
225
246
|
data: {
|
|
226
247
|
keysLength: decryptKeys.length,
|
|
227
|
-
|
|
248
|
+
bundleId,
|
|
249
|
+
usingBundle: bundleId !== void 0
|
|
228
250
|
}
|
|
229
251
|
};
|
|
230
252
|
});
|
|
@@ -242,12 +264,12 @@ var FrictionlessManager = class extends require_captchaManager.CaptchaManager {
|
|
|
242
264
|
let entropyCryptoFingerprint;
|
|
243
265
|
let entropyWallClockOffsetMs;
|
|
244
266
|
let entropyMathRandomFirst;
|
|
245
|
-
for (const [keyIndex,
|
|
267
|
+
for (const [keyIndex, attempt] of decryptKeys.entries()) try {
|
|
246
268
|
this.logger.info(() => ({
|
|
247
269
|
msg: "Attempting to decrypt score",
|
|
248
|
-
data: { key: this.redactKeyForLogging(key) }
|
|
270
|
+
data: { key: this.redactKeyForLogging(attempt.key) }
|
|
249
271
|
}));
|
|
250
|
-
const decrypted = await require_getBotScore.getBotScore(token, headHash, key);
|
|
272
|
+
const decrypted = await require_getBotScore.getBotScore(token, headHash, attempt.key, attempt.innerConfig);
|
|
251
273
|
decryptedHeadHash = decrypted.decryptedHeadHash || "";
|
|
252
274
|
const s = decrypted.baseBotScore;
|
|
253
275
|
const t = decrypted.timestamp;
|
|
@@ -264,7 +286,7 @@ var FrictionlessManager = class extends require_captchaManager.CaptchaManager {
|
|
|
264
286
|
this.logger.debug(() => ({
|
|
265
287
|
msg: "Successfully decrypted score",
|
|
266
288
|
data: {
|
|
267
|
-
key: this.redactKeyForLogging(key),
|
|
289
|
+
key: this.redactKeyForLogging(attempt.key),
|
|
268
290
|
baseBotScore: s,
|
|
269
291
|
timestamp: t,
|
|
270
292
|
userId: a,
|
|
@@ -338,7 +360,8 @@ var FrictionlessManager = class extends require_captchaManager.CaptchaManager {
|
|
|
338
360
|
entropyMathRandomFingerprint,
|
|
339
361
|
entropyCryptoFingerprint,
|
|
340
362
|
entropyWallClockOffsetMs,
|
|
341
|
-
entropyMathRandomFirst
|
|
363
|
+
entropyMathRandomFirst,
|
|
364
|
+
bundleId
|
|
342
365
|
};
|
|
343
366
|
}
|
|
344
367
|
async getClientContextEntropy(siteKey, contextType) {
|
|
@@ -2,8 +2,7 @@
|
|
|
2
2
|
var computeFrictionlessScore = (scoreComponents) => {
|
|
3
3
|
return Number(Math.min(1, Object.values(scoreComponents).filter((x) => x !== void 0).reduce((acc, val) => acc + val, 0)).toFixed(2));
|
|
4
4
|
};
|
|
5
|
-
var timestampDecayFunction = (timestamp,
|
|
6
|
-
if (decryptionFailed) return Math.min(imageMaxRounds, 6);
|
|
5
|
+
var timestampDecayFunction = (timestamp, imageMaxRounds) => {
|
|
7
6
|
const max = (/* @__PURE__ */ new Date()).getTime();
|
|
8
7
|
if (max - timestamp > 36e5) return Math.min(imageMaxRounds, 12);
|
|
9
8
|
const min = 1e3;
|
|
@@ -77,10 +77,6 @@ var ImgCaptchaManager = class extends require_captchaManager.CaptchaManager {
|
|
|
77
77
|
* @return {Promise<DappUserSolutionResult>} result containing the contract event
|
|
78
78
|
*/
|
|
79
79
|
async dappUserSolution(userAccount, dappAccount, requestHash, captchas, userTimestampSignature, timestamp, providerRequestHashSignature, ipAddress, headers, ja4, behavioralData, ipInfo, simdReadings, clientMetaData) {
|
|
80
|
-
const decodedSimdReadings = simdReadings ? await this.decryptSimdReadingsForAttach(simdReadings) : void 0;
|
|
81
|
-
const pushSimdAttachIfAny = (sessionId, writes) => {
|
|
82
|
-
if (decodedSimdReadings) writes.push(this.recordSessionSimdReadingsIfAbsentWithCache(sessionId, decodedSimdReadings, _prosopo_types.SimdReadingsStage.submit));
|
|
83
|
-
};
|
|
84
80
|
if (!(0, _prosopo_util_crypto.signatureVerify)((0, _polkadot_util.stringToHex)(timestamp.toString()), userTimestampSignature, userAccount).isValid) {
|
|
85
81
|
const err = new _prosopo_common.ProsopoEnvError("GENERAL.INVALID_SIGNATURE", { context: {
|
|
86
82
|
failedFuncName: this.dappUserSolution.name,
|
|
@@ -109,6 +105,11 @@ var ImgCaptchaManager = class extends require_captchaManager.CaptchaManager {
|
|
|
109
105
|
verified: false
|
|
110
106
|
};
|
|
111
107
|
const pendingRecord = await this.db.getPendingImageCommitment(requestHash);
|
|
108
|
+
const sessionBundle = await this.resolveBundleBySessionId(pendingRecord?.sessionId);
|
|
109
|
+
const decodedSimdReadings = simdReadings ? await this.decryptSimdReadingsForAttach(simdReadings, sessionBundle) : void 0;
|
|
110
|
+
const pushSimdAttachIfAny = (sessionId, writes) => {
|
|
111
|
+
if (decodedSimdReadings) writes.push(this.recordSessionSimdReadingsIfAbsentWithCache(sessionId, decodedSimdReadings, _prosopo_types.SimdReadingsStage.submit));
|
|
112
|
+
};
|
|
112
113
|
const unverifiedCaptchaIds = captchas.map((captcha) => captcha.captchaId);
|
|
113
114
|
if (await this.validateDappUserSolutionRequestIsPending(requestHash, pendingRecord, userAccount, unverifiedCaptchaIds)) {
|
|
114
115
|
const { storedCaptchas, receivedCaptchas, captchaIds } = await this.validateReceivedCaptchasAgainstStoredCaptchas(captchas);
|
|
@@ -123,8 +124,7 @@ var ImgCaptchaManager = class extends require_captchaManager.CaptchaManager {
|
|
|
123
124
|
let behavioralDataPacked;
|
|
124
125
|
let deviceCapability;
|
|
125
126
|
if (behavioralData) try {
|
|
126
|
-
const
|
|
127
|
-
const decryptedData = await this.decryptBehavioralData(behavioralData, decryptKeys);
|
|
127
|
+
const decryptedData = await this.decryptBehavioralData(behavioralData, sessionBundle);
|
|
128
128
|
if (decryptedData) {
|
|
129
129
|
this.logger?.info(() => ({
|
|
130
130
|
msg: "Behavioral analysis completed",
|
|
@@ -394,6 +394,33 @@ var ImgCaptchaManager = class extends require_captchaManager.CaptchaManager {
|
|
|
394
394
|
failStatus = _prosopo_types.ResultReason.SPAM_EMAIL_RULE;
|
|
395
395
|
}
|
|
396
396
|
}
|
|
397
|
+
const maxEmailSubmissionCount = spamFilter?.enabled && spamFilter.emailRules?.enabled ? spamFilter.emailRules.maxEmailSubmissionCount : void 0;
|
|
398
|
+
let emailNormalised;
|
|
399
|
+
if (!failStatus && maxEmailSubmissionCount !== void 0 && email && storeMetadata) {
|
|
400
|
+
emailNormalised = require_evaluateEmailSpamRules.normaliseEmailForMatching(email);
|
|
401
|
+
if (emailNormalised) try {
|
|
402
|
+
const priorCount = await this.db.countCommitmentsByNormalisedEmail(dapp, emailNormalised);
|
|
403
|
+
if (priorCount >= maxEmailSubmissionCount) {
|
|
404
|
+
logger.info(() => ({
|
|
405
|
+
msg: "Email submission count exceeded in image verification",
|
|
406
|
+
data: {
|
|
407
|
+
priorCount,
|
|
408
|
+
maxEmailSubmissionCount
|
|
409
|
+
}
|
|
410
|
+
}));
|
|
411
|
+
commitmentUpdates.result = {
|
|
412
|
+
status: _prosopo_types.CaptchaStatus.disapproved,
|
|
413
|
+
reason: _prosopo_types.ResultReason.SPAM_EMAIL_COUNT_EXCEEDED
|
|
414
|
+
};
|
|
415
|
+
failStatus = _prosopo_types.ResultReason.SPAM_EMAIL_COUNT_EXCEEDED;
|
|
416
|
+
}
|
|
417
|
+
} catch (error) {
|
|
418
|
+
logger.warn(() => ({
|
|
419
|
+
msg: "Failed to check email submission count in image verification",
|
|
420
|
+
error
|
|
421
|
+
}));
|
|
422
|
+
}
|
|
423
|
+
}
|
|
397
424
|
const sessionRecord = solution.sessionId ? await this.db.getSessionRecordBySessionId(solution.sessionId) : void 0;
|
|
398
425
|
const enrichedDnsEvent = await require_enrichDnsEvent.enrichDnsEvent(sessionRecord?.dnsEvent, env.ipInfoService, ip ?? solution.ipInfo?.ip);
|
|
399
426
|
if (!failStatus) {
|
|
@@ -418,7 +445,10 @@ var ImgCaptchaManager = class extends require_captchaManager.CaptchaManager {
|
|
|
418
445
|
failStatus = check.reason;
|
|
419
446
|
}
|
|
420
447
|
}
|
|
421
|
-
if (storeMetadata && email) commitmentUpdates.metadata = {
|
|
448
|
+
if (storeMetadata && email) commitmentUpdates.metadata = {
|
|
449
|
+
email,
|
|
450
|
+
emailNormalised: emailNormalised ?? require_evaluateEmailSpamRules.normaliseEmailForMatching(email)
|
|
451
|
+
};
|
|
422
452
|
if (ip) {
|
|
423
453
|
const solutionIpAddress = require_compositeIpAddress.getIpAddressFromComposite(solution.ipAddress);
|
|
424
454
|
const ipValidationRules = (await this.db.getClientRecord(dapp))?.settings?.ipValidationRules;
|
|
@@ -129,8 +129,8 @@ var PowCaptchaManager = class extends require_captchaManager.CaptchaManager {
|
|
|
129
129
|
let behavioralUpdates = {};
|
|
130
130
|
let decryptedBehavioralDataPacked;
|
|
131
131
|
if (behavioralData) try {
|
|
132
|
-
const
|
|
133
|
-
const decryptedData = await this.decryptBehavioralData(behavioralData,
|
|
132
|
+
const bundle = await this.resolveBundleBySessionId(challengeRecord.sessionId);
|
|
133
|
+
const decryptedData = await this.decryptBehavioralData(behavioralData, bundle);
|
|
134
134
|
if (decryptedData) {
|
|
135
135
|
const dappAccount = (0, _prosopo_util.at)(challengeSplit, 2);
|
|
136
136
|
this.logger?.info(() => ({
|
|
@@ -353,6 +353,33 @@ var PowCaptchaManager = class extends require_captchaManager.CaptchaManager {
|
|
|
353
353
|
failReason = "API.SPAM_EMAIL_RULE";
|
|
354
354
|
}
|
|
355
355
|
}
|
|
356
|
+
const maxEmailSubmissionCount = spamFilter?.enabled && spamFilter.emailRules?.enabled ? spamFilter.emailRules.maxEmailSubmissionCount : void 0;
|
|
357
|
+
let emailNormalised;
|
|
358
|
+
if (!failResult && maxEmailSubmissionCount !== void 0 && email && storeMetadata) {
|
|
359
|
+
emailNormalised = require_evaluateEmailSpamRules.normaliseEmailForMatching(email);
|
|
360
|
+
if (emailNormalised) try {
|
|
361
|
+
const priorCount = await this.db.countCommitmentsByNormalisedEmail(dappAccount, emailNormalised);
|
|
362
|
+
if (priorCount >= maxEmailSubmissionCount) {
|
|
363
|
+
logger.info(() => ({
|
|
364
|
+
msg: "Email submission count exceeded in PoW verification",
|
|
365
|
+
data: {
|
|
366
|
+
priorCount,
|
|
367
|
+
maxEmailSubmissionCount
|
|
368
|
+
}
|
|
369
|
+
}));
|
|
370
|
+
failResult = {
|
|
371
|
+
status: _prosopo_types.CaptchaStatus.disapproved,
|
|
372
|
+
reason: _prosopo_types.ResultReason.SPAM_EMAIL_COUNT_EXCEEDED
|
|
373
|
+
};
|
|
374
|
+
failReason = "API.SPAM_EMAIL_COUNT_EXCEEDED";
|
|
375
|
+
}
|
|
376
|
+
} catch (error) {
|
|
377
|
+
logger.warn(() => ({
|
|
378
|
+
msg: "Failed to check email submission count in PoW verification",
|
|
379
|
+
error
|
|
380
|
+
}));
|
|
381
|
+
}
|
|
382
|
+
}
|
|
356
383
|
const sessionRecord = challengeRecord.sessionId ? await this.db.getSessionRecordBySessionId(challengeRecord.sessionId) : void 0;
|
|
357
384
|
const enrichedDnsEvent = await require_enrichDnsEvent.enrichDnsEvent(sessionRecord?.dnsEvent, env.ipInfoService, ip ?? challengeRecord.ipInfo?.ip);
|
|
358
385
|
if (!failResult) {
|
|
@@ -377,7 +404,10 @@ var PowCaptchaManager = class extends require_captchaManager.CaptchaManager {
|
|
|
377
404
|
failReason = check.reason;
|
|
378
405
|
}
|
|
379
406
|
}
|
|
380
|
-
if (storeMetadata && email) powRecordUpdates.metadata = {
|
|
407
|
+
if (storeMetadata && email) powRecordUpdates.metadata = {
|
|
408
|
+
email,
|
|
409
|
+
emailNormalised: emailNormalised ?? require_evaluateEmailSpamRules.normaliseEmailForMatching(email)
|
|
410
|
+
};
|
|
381
411
|
if (!failResult && ip) {
|
|
382
412
|
const challengeIpAddress = require_compositeIpAddress.getIpAddressFromComposite(challengeRecord.ipAddress);
|
|
383
413
|
const ipValidationRules = (await this.db.getClientRecord(dappAccount))?.settings?.ipValidationRules;
|
|
@@ -5,6 +5,7 @@ const require_enrichDnsEvent = require("../dnsEvent/enrichDnsEvent.cjs");
|
|
|
5
5
|
const require_captchaManager = require("../captchaManager.cjs");
|
|
6
6
|
const require_util = require("../../util.cjs");
|
|
7
7
|
const require_frictionlessTasksUtils = require("../frictionless/frictionlessTasksUtils.cjs");
|
|
8
|
+
const require_evaluateEmailSpamRules = require("../spam/evaluateEmailSpamRules.cjs");
|
|
8
9
|
const require_powTasksUtils = require("../powCaptcha/powTasksUtils.cjs");
|
|
9
10
|
const require_puzzleTasksUtils = require("./puzzleTasksUtils.cjs");
|
|
10
11
|
let _prosopo_common = require("@prosopo/common");
|
|
@@ -124,8 +125,8 @@ var PuzzleCaptchaManager = class extends require_captchaManager.CaptchaManager {
|
|
|
124
125
|
this.usageCounters.incrManyAsync(dappAccount, require_usageCounters.buildAllWindowIncrements("solved", _prosopo_types.CaptchaType.puzzle, ipAddress.address, userAccount));
|
|
125
126
|
}
|
|
126
127
|
if (behavioralData) try {
|
|
127
|
-
const
|
|
128
|
-
const decryptedData = await this.decryptBehavioralData(behavioralData,
|
|
128
|
+
const bundle = await this.resolveBundleBySessionId(challengeRecord.sessionId);
|
|
129
|
+
const decryptedData = await this.decryptBehavioralData(behavioralData, bundle);
|
|
129
130
|
if (decryptedData) {
|
|
130
131
|
const dappAccount = (0, _prosopo_util.at)(challengeSplit, 2);
|
|
131
132
|
this.logger?.info(() => ({
|
|
@@ -184,11 +185,12 @@ var PuzzleCaptchaManager = class extends require_captchaManager.CaptchaManager {
|
|
|
184
185
|
* @param userAccessRulesStorage - storage for querying user access policies
|
|
185
186
|
* @param email
|
|
186
187
|
* @param spamEmailDomainCheckingEnabled
|
|
188
|
+
* @param spamFilter
|
|
187
189
|
* @param trafficFilter
|
|
188
190
|
* @param storeMetadata - when true, persists the dapp-server-provided
|
|
189
191
|
* `email` on the captcha record for spam-rate analysis.
|
|
190
192
|
*/
|
|
191
|
-
async serverVerifyPuzzleCaptchaSolution(dappAccount, challenge, timeout, env, ip, userAccessRulesStorage, email, spamEmailDomainCheckingEnabled = false, trafficFilter, storeMetadata = false) {
|
|
193
|
+
async serverVerifyPuzzleCaptchaSolution(dappAccount, challenge, timeout, env, ip, userAccessRulesStorage, email, spamEmailDomainCheckingEnabled = false, spamFilter, trafficFilter, storeMetadata = false) {
|
|
192
194
|
const notVerifiedResponse = { verified: false };
|
|
193
195
|
const logger = this.logger.with({
|
|
194
196
|
challenge,
|
|
@@ -274,6 +276,33 @@ var PuzzleCaptchaManager = class extends require_captchaManager.CaptchaManager {
|
|
|
274
276
|
error
|
|
275
277
|
}));
|
|
276
278
|
}
|
|
279
|
+
const maxEmailSubmissionCount = spamFilter?.enabled && spamFilter.emailRules?.enabled ? spamFilter.emailRules.maxEmailSubmissionCount : void 0;
|
|
280
|
+
let emailNormalised;
|
|
281
|
+
if (maxEmailSubmissionCount !== void 0 && email && storeMetadata) {
|
|
282
|
+
emailNormalised = require_evaluateEmailSpamRules.normaliseEmailForMatching(email);
|
|
283
|
+
if (emailNormalised) try {
|
|
284
|
+
const priorCount = await this.db.countCommitmentsByNormalisedEmail(dappAccount, emailNormalised);
|
|
285
|
+
if (priorCount >= maxEmailSubmissionCount) {
|
|
286
|
+
logger.info(() => ({
|
|
287
|
+
msg: "Email submission count exceeded in server puzzle verification",
|
|
288
|
+
data: {
|
|
289
|
+
priorCount,
|
|
290
|
+
maxEmailSubmissionCount
|
|
291
|
+
}
|
|
292
|
+
}));
|
|
293
|
+
await this.db.updatePuzzleCaptchaRecord(challengeRecord.challenge, { result: {
|
|
294
|
+
status: _prosopo_types.CaptchaStatus.disapproved,
|
|
295
|
+
reason: _prosopo_types.ResultReason.SPAM_EMAIL_COUNT_EXCEEDED
|
|
296
|
+
} });
|
|
297
|
+
return notVerifiedResponse;
|
|
298
|
+
}
|
|
299
|
+
} catch (error) {
|
|
300
|
+
logger.warn(() => ({
|
|
301
|
+
msg: "Failed to check email submission count in server puzzle verification",
|
|
302
|
+
error
|
|
303
|
+
}));
|
|
304
|
+
}
|
|
305
|
+
}
|
|
277
306
|
const sessionRecord = challengeRecord.sessionId ? await this.db.getSessionRecordBySessionId(challengeRecord.sessionId) : void 0;
|
|
278
307
|
const enrichedDnsEvent = await require_enrichDnsEvent.enrichDnsEvent(sessionRecord?.dnsEvent, env.ipInfoService, ip ?? challengeRecord.ipInfo?.ip);
|
|
279
308
|
{
|
|
@@ -303,7 +332,10 @@ var PuzzleCaptchaManager = class extends require_captchaManager.CaptchaManager {
|
|
|
303
332
|
return notVerifiedResponse;
|
|
304
333
|
}
|
|
305
334
|
}
|
|
306
|
-
if (storeMetadata && email) await this.db.updatePuzzleCaptchaRecord(challengeRecord.challenge, { metadata: {
|
|
335
|
+
if (storeMetadata && email) await this.db.updatePuzzleCaptchaRecord(challengeRecord.challenge, { metadata: {
|
|
336
|
+
email,
|
|
337
|
+
emailNormalised: emailNormalised ?? require_evaluateEmailSpamRules.normaliseEmailForMatching(email)
|
|
338
|
+
} });
|
|
307
339
|
if (ip) {
|
|
308
340
|
const challengeIpAddress = require_compositeIpAddress.getIpAddressFromComposite(challengeRecord.ipAddress);
|
|
309
341
|
const ipValidationRules = (await this.db.getClientRecord(dappAccount))?.settings?.ipValidationRules;
|
|
@@ -28,6 +28,28 @@ var normaliseGmailAddress = (email) => {
|
|
|
28
28
|
if (!GMAIL_DOMAINS.has(parts.domain)) return `${parts.local}@${parts.domain}`;
|
|
29
29
|
return `${parts.local.replace(/\./g, "").split("+")[0] ?? ""}@gmail.com`;
|
|
30
30
|
};
|
|
31
|
+
/**
|
|
32
|
+
* Normalises an email for equality-based rate-limit matching:
|
|
33
|
+
* - lowercases and trims
|
|
34
|
+
* - strips `+tag` from the local part for every domain (RFC 5233
|
|
35
|
+
* subaddressing is widely honoured — Gmail, Fastmail, iCloud, Outlook,
|
|
36
|
+
* ProtonMail — and rotating `+tag` suffixes is the cheapest evasion
|
|
37
|
+
* against per-address rate limits)
|
|
38
|
+
* - additionally removes dots from the local part for gmail /
|
|
39
|
+
* googlemail (Gmail is the only major provider that treats dots as
|
|
40
|
+
* insignificant)
|
|
41
|
+
*
|
|
42
|
+
* Returns the input trimmed/lowercased if it cannot be split into
|
|
43
|
+
* local@domain. Never returns an empty string for a non-empty input.
|
|
44
|
+
*/
|
|
45
|
+
var normaliseEmailForMatching = (email) => {
|
|
46
|
+
const parts = splitEmail(email);
|
|
47
|
+
if (!parts) return email.trim().toLowerCase();
|
|
48
|
+
const beforePlus = parts.local.split("+")[0];
|
|
49
|
+
const withoutPlusTag = beforePlus ? beforePlus : parts.local;
|
|
50
|
+
if (GMAIL_DOMAINS.has(parts.domain)) return `${withoutPlusTag.replace(/\./g, "") || withoutPlusTag}@gmail.com`;
|
|
51
|
+
return `${withoutPlusTag}@${parts.domain}`;
|
|
52
|
+
};
|
|
31
53
|
var countDots = (s) => {
|
|
32
54
|
let n = 0;
|
|
33
55
|
for (const c of s) if (c === ".") n += 1;
|
|
@@ -80,4 +102,5 @@ var evaluateEmailSpamRules = (email, rules) => {
|
|
|
80
102
|
//#endregion
|
|
81
103
|
exports.DEFAULT_EMAIL_SPAM_PATTERNS = DEFAULT_EMAIL_SPAM_PATTERNS;
|
|
82
104
|
exports.evaluateEmailSpamRules = evaluateEmailSpamRules;
|
|
105
|
+
exports.normaliseEmailForMatching = normaliseEmailForMatching;
|
|
83
106
|
exports.normaliseGmailAddress = normaliseGmailAddress;
|
|
@@ -8,6 +8,10 @@ import { type AccessPolicy, type AccessRulesStorage, type UserScope, type UserSc
|
|
|
8
8
|
import type { BehavioralDataResult } from "./detection/decodeBehavior.js";
|
|
9
9
|
import type { SimdReadingsResult } from "./detection/decodeSimd.js";
|
|
10
10
|
import { type TrafficCheckResult } from "./spam/checkTrafficFilter.js";
|
|
11
|
+
export interface PoolBundleDecrypt {
|
|
12
|
+
key: string;
|
|
13
|
+
innerConfig: string;
|
|
14
|
+
}
|
|
11
15
|
export declare class CaptchaManager {
|
|
12
16
|
pair: KeyringPair;
|
|
13
17
|
db: IProviderDatabase;
|
|
@@ -16,7 +20,7 @@ export declare class CaptchaManager {
|
|
|
16
20
|
writeQueue: RedisWriteQueue | null;
|
|
17
21
|
constructor(db: IProviderDatabase, pair: KeyringPair, config: ProsopoConfigOutput, logger?: Logger, writeQueue?: RedisWriteQueue | null);
|
|
18
22
|
updateSessionRecordWithCache(sessionId: string, updates: Partial<Session>, streamToCentral?: boolean): Promise<void>;
|
|
19
|
-
decryptSimdReadingsForAttach(simdReadingsCiphertext: string): Promise<NonNullable<Session["simdReadings"]> | undefined>;
|
|
23
|
+
decryptSimdReadingsForAttach(simdReadingsCiphertext: string, bundle: PoolBundleDecrypt | undefined): Promise<NonNullable<Session["simdReadings"]> | undefined>;
|
|
20
24
|
decryptAndAttachSimdReadingsIfAbsent(sessionId: string, simdReadingsCiphertext: string, stage: SimdReadingsStage): Promise<void>;
|
|
21
25
|
recordSessionSimdReadingsIfAbsentWithCache(sessionId: string, readings: NonNullable<Session["simdReadings"]>, stage: SimdReadingsStage): Promise<void>;
|
|
22
26
|
scheduleMongoSessionUpdate(sessionId: string, updates: Partial<Session>, streamToCentral?: boolean): void;
|
|
@@ -44,9 +48,13 @@ export declare class CaptchaManager {
|
|
|
44
48
|
blockOnly?: boolean;
|
|
45
49
|
requestMemoHost?: object;
|
|
46
50
|
}): Promise<import("@prosopo/user-access-policy").AccessRule[]>;
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
51
|
+
resolveBundleById(bundleId?: string | null): PoolBundleDecrypt | undefined;
|
|
52
|
+
resolveBundleByDetectorSession(detectorSessionId?: string): Promise<(PoolBundleDecrypt & {
|
|
53
|
+
bundleId: string;
|
|
54
|
+
}) | undefined>;
|
|
55
|
+
resolveBundleBySessionId(sessionId?: string): Promise<PoolBundleDecrypt | undefined>;
|
|
56
|
+
decryptSimdReadings(encryptedData: string, bundle: PoolBundleDecrypt | undefined): Promise<SimdReadingsResult | null>;
|
|
57
|
+
decryptBehavioralData(encryptedData: string, bundle: PoolBundleDecrypt | undefined): Promise<BehavioralDataResult | null>;
|
|
50
58
|
checkForHardBlock(userAccessRulesStorage: AccessRulesStorage, challengeRecord: PoWCaptchaRecord | PuzzleCaptchaRecord | UserCommitment, userAccount: string, headers: RequestHeaders, coords?: [number, number][][], countryCode?: string, asn?: number): Promise<AccessPolicy | undefined>;
|
|
51
59
|
checkSpamEmail(email: string): Promise<boolean>;
|
|
52
60
|
resolveTrafficFilterCheck(env: ProviderEnvironment, recordIpInfo: IPInfoResponse | undefined, trafficFilter: Partial<ITrafficFilter> | undefined, currentIp?: string, enrichedDnsEvent?: EnrichedDnsEvent): Promise<TrafficCheckResult>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"captchaManager.d.ts","sourceRoot":"","sources":["../../src/tasks/captchaManager.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,KAAK,MAAM,EAAa,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAEN,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,mBAAmB,EACxB,KAAK,cAAc,EAEnB,KAAK,OAAO,EACZ,KAAK,iBAAiB,EACtB,IAAI,EACJ,KAAK,cAAc,EACnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EACX,YAAY,EACZ,iBAAiB,EACjB,aAAa,EACb,gBAAgB,EAChB,mBAAmB,EACnB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EACN,KAAK,YAAY,EAEjB,KAAK,kBAAkB,EACvB,KAAK,SAAS,EACd,KAAK,eAAe,EACpB,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"captchaManager.d.ts","sourceRoot":"","sources":["../../src/tasks/captchaManager.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,KAAK,MAAM,EAAa,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAEN,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,mBAAmB,EACxB,KAAK,cAAc,EAEnB,KAAK,OAAO,EACZ,KAAK,iBAAiB,EACtB,IAAI,EACJ,KAAK,cAAc,EACnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EACX,YAAY,EACZ,iBAAiB,EACjB,aAAa,EACb,gBAAgB,EAChB,mBAAmB,EACnB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EACN,KAAK,YAAY,EAEjB,KAAK,kBAAkB,EACvB,KAAK,SAAS,EACd,KAAK,eAAe,EACpB,MAAM,6BAA6B,CAAC;AAOrC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAC1E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAGpE,OAAO,EACN,KAAK,kBAAkB,EAEvB,MAAM,8BAA8B,CAAC;AAStC,MAAM,WAAW,iBAAiB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;CACpB;AAkCD,qBAAa,cAAc;IAC1B,IAAI,EAAE,WAAW,CAAC;IAClB,EAAE,EAAE,iBAAiB,CAAC;IACtB,MAAM,EAAE,mBAAmB,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,eAAe,GAAG,IAAI,CAAC;gBAGlC,EAAE,EAAE,iBAAiB,EACrB,IAAI,EAAE,WAAW,EACjB,MAAM,EAAE,mBAAmB,EAC3B,MAAM,CAAC,EAAE,MAAM,EACf,UAAU,CAAC,EAAE,eAAe,GAAG,IAAI;IAqBvB,4BAA4B,CACxC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,EACzB,eAAe,CAAC,EAAE,OAAO,GACvB,OAAO,CAAC,IAAI,CAAC;IAkBH,4BAA4B,CACxC,sBAAsB,EAAE,MAAM,EAC9B,MAAM,EAAE,iBAAiB,GAAG,SAAS,GACnC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,GAAG,SAAS,CAAC;IAe/C,oCAAoC,CAChD,SAAS,EAAE,MAAM,EACjB,sBAAsB,EAAE,MAAM,EAC9B,KAAK,EAAE,iBAAiB,GACtB,OAAO,CAAC,IAAI,CAAC;IAkBH,0CAA0C,CACtD,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,WAAW,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,EAC9C,KAAK,EAAE,iBAAiB,GACtB,OAAO,CAAC,IAAI,CAAC;IAgBT,0BAA0B,CAChC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,EACzB,eAAe,CAAC,EAAE,OAAO,GACvB,IAAI;IAqBA,+BAA+B,CACrC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,WAAW,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,EAC9C,KAAK,EAAE,iBAAiB,GACtB,IAAI;IAYD,iBAAiB,CACtB,aAAa,EAAE,OAAO,EACtB,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,mBAAmB,GACtB,OAAO,CAAC;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,cAAc,CAAA;KAAE,CAAC;IAMjD,cAAc,CACnB,cAAc,EAAE,YAAY,GAAG,aAAa,EAC5C,oBAAoB,EAAE,WAAW,EACjC,GAAG,EAAE,mBAAmB,EACxB,SAAS,CAAC,EAAE,MAAM,EAClB,gBAAgB,CAAC,EAAE,YAAY,EAC/B,SAAS,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC;QACV,KAAK,EAAE,OAAO,CAAC;QACf,MAAM,CAAC,EAAE,cAAc,CAAC;QACxB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,IAAI,EAAE,WAAW,CAAC;QAClB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAI3B,MAAM,CAAC,EAAE,cAAc,CAAC;KACxB,CAAC;IA8QF,uBAAuB,CACtB,QAAQ,EAAE,OAAO,EACjB,YAAY,EAAE,YAAY,EAC1B,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,EACpC,KAAK,CAAC,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,MAAM;;;;;;IAkBV,4BAA4B,CACjC,sBAAsB,EAAE,kBAAkB,EAC1C,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,SAAS,GAAG,eAAe,EACtC,OAAO,CAAC,EAAE;QACT,SAAS,CAAC,EAAE,OAAO,CAAC;QAKpB,eAAe,CAAC,EAAE,MAAM,CAAC;KACzB;IAeF,iBAAiB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,iBAAiB,GAAG,SAAS;IAepE,8BAA8B,CACnC,iBAAiB,CAAC,EAAE,MAAM,GACxB,OAAO,CAAC,CAAC,iBAAiB,GAAG;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,SAAS,CAAC;IAa5D,wBAAwB,CAC7B,SAAS,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC;IAsBnC,mBAAmB,CACxB,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,iBAAiB,GAAG,SAAS,GACnC,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC;IAwB/B,qBAAqB,CAC1B,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,iBAAiB,GAAG,SAAS,GACnC,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC;IAyCjC,iBAAiB,CACtB,sBAAsB,EAAE,kBAAkB,EAC1C,eAAe,EAAE,gBAAgB,GAAG,mBAAmB,GAAG,cAAc,EACxE,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,cAAc,EACvB,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,EAC7B,WAAW,CAAC,EAAE,MAAM,EACpB,GAAG,CAAC,EAAE,MAAM,GACV,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;IA+C9B,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAwB/C,yBAAyB,CAC9B,GAAG,EAAE,mBAAmB,EACxB,YAAY,EAAE,cAAc,GAAG,SAAS,EACxC,aAAa,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,SAAS,EAClD,SAAS,CAAC,EAAE,MAAM,EAClB,gBAAgB,CAAC,EAAE,gBAAgB,GACjC,OAAO,CAAC,kBAAkB,CAAC;IAmB9B,MAAM,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE,MAAM;CAGnD"}
|