@magield/collectors 0.6.1 → 0.7.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.
Files changed (57) hide show
  1. package/dist/behavior/recorder.d.ts +33 -0
  2. package/dist/behavior/recorder.js +303 -1
  3. package/dist/hash.d.ts +15 -0
  4. package/dist/hash.js +27 -1
  5. package/dist/index.d.ts +7 -0
  6. package/dist/index.js +7 -1
  7. package/dist/native.d.ts +39 -0
  8. package/dist/native.js +142 -1
  9. package/dist/registry.d.ts +57 -0
  10. package/dist/registry.js +108 -1
  11. package/dist/run.d.ts +10 -0
  12. package/dist/run.js +128 -1
  13. package/dist/signals/adblock.d.ts +2 -0
  14. package/dist/signals/adblock.js +135 -1
  15. package/dist/signals/apps.d.ts +2 -0
  16. package/dist/signals/apps.js +191 -1
  17. package/dist/signals/audio.d.ts +16 -0
  18. package/dist/signals/audio.js +63 -1
  19. package/dist/signals/automation.d.ts +2 -0
  20. package/dist/signals/automation.js +346 -1
  21. package/dist/signals/behavior.d.ts +17 -0
  22. package/dist/signals/behavior.js +31 -1
  23. package/dist/signals/capabilities.d.ts +2 -0
  24. package/dist/signals/capabilities.js +235 -1
  25. package/dist/signals/devices.d.ts +2 -0
  26. package/dist/signals/devices.js +119 -1
  27. package/dist/signals/display.d.ts +2 -0
  28. package/dist/signals/display.js +101 -1
  29. package/dist/signals/errors.d.ts +2 -0
  30. package/dist/signals/errors.js +84 -1
  31. package/dist/signals/features.d.ts +2 -0
  32. package/dist/signals/features.js +951 -1
  33. package/dist/signals/fonts.d.ts +2 -0
  34. package/dist/signals/fonts.js +128 -1
  35. package/dist/signals/integrity.d.ts +2 -0
  36. package/dist/signals/integrity.js +216 -1
  37. package/dist/signals/math.d.ts +2 -0
  38. package/dist/signals/math.js +43 -1
  39. package/dist/signals/navigator.d.ts +10 -0
  40. package/dist/signals/navigator.js +81 -1
  41. package/dist/signals/pointer.d.ts +2 -0
  42. package/dist/signals/pointer.js +93 -1
  43. package/dist/signals/render.d.ts +12 -0
  44. package/dist/signals/render.js +214 -1
  45. package/dist/signals/screen.d.ts +9 -0
  46. package/dist/signals/screen.js +80 -1
  47. package/dist/signals/storage.d.ts +33 -0
  48. package/dist/signals/storage.js +100 -1
  49. package/dist/signals/timezone.d.ts +9 -0
  50. package/dist/signals/timezone.js +63 -1
  51. package/dist/signals/webrtc.d.ts +2 -0
  52. package/dist/signals/webrtc.js +168 -1
  53. package/dist/stable-core.d.ts +128 -0
  54. package/dist/stable-core.js +187 -1
  55. package/dist/types.d.ts +54 -0
  56. package/dist/types.js +15 -1
  57. package/package.json +2 -1
@@ -0,0 +1,2 @@
1
+ import type { Collector } from '../types.js';
2
+ export declare const fontsCollector: Collector;
@@ -1 +1,128 @@
1
- function F(){const Cv=['W6pcVZa4tW','WP/dKx/cJmoQfJTaE8kQm2G','WRW4WOnUAW','WOtdJgBcMSoW','WQzdygZcUW','rmoNWQNcMgO','vSoJWQlcNx8','W7JcMZq','WRvcqCk4W7u','cNNdVComq0BcPGyDW5C0WOe','W4xcSwpdSCkJ','WPVcH37dLSom','zmoxWONcSgm','mKOiD8kJ','FwymDSkT','W4JdJSkJWPNdLq','wmoAW4ldISo2','tZ3cQSkVWRS','W5NcTwNdPSopxmkN','WP/cICkeW496','gX56xmoU','yhr7W6OP','j8k+WOiYdG','WP7cGapcSgu','W5qxlJft','WOvHhgKk','FmkGn8oypq','W7LVzXlcVq','WQK5WR8UxJCwhmoDpCkiW5K','WOjMsITD','wYlcOCkz','rCoPbSoCiq','W7pcR8kcW5r3','W4JcUx7dHSow','W67cS8ksW4xcJW','smoHW5D6W70','bfRdJWC6','smkGngFcVW','W6uRWOz/zW','W6NdU8ouWPVdIa','sKxdPdRdLmkLWRtcQIpdHHNdUwW','WQdcM37dHmot','WPyaWPldOq','WRxcJSkKDCkf','WQvjywZcQq','wmkGnG','WPVcNCkcW5jQ','n2m6WPWE','ECoHWR/cNIy','sSo7W5OFWOi','gd8v','W67dTmkzWQtdJW','DcxcT8kL','W51Hrb/cVq','WPD7cMnE','b13dIqqH','WQdcHmorWPJcPa','WQFcJSkoW4rR','qwGjAa','q8oZuq7cIG','W5VcGJy4ta','W6H7W6f+ha','W5RcMdSWsW','WRZcO8oUW6uY','a0hdIbWN','WQJcHW7cKvi','dbpcV24','WRnjFhhcMW','qmo9WPGoW5q','W4vdENTY','W5aDjZnF','p8k4WR8Juq','fcKolay','WQxcJxRdJmos','W4DjENi','gbNcVxBcNG','WRPguCkPW6K','u3rs','FCkZAMxcSW','W5KwlYq','pYyilby','nsC0BCo1','ds3dOCopva','Bmo4W4BdGSoU','W54sw8kRWR0','W4RcIYddGmkO','F8oIcb3cKq','WQdcImkEW4P7','imkLWQGQgq','C8oJWQJcN2q','WRmyuaiJ','W7GMc1HQ','z8o9W5K0W5O','emkWWR8Yhq','WQVdUCoi','WPtdOCoxWOJdHW','WRFcImkTCSke','W4jfb0L/W7lcP8kKW4qLw8oo','m3NdQ8oWW6e','h3NdNCoouW','vh7dMYam','WRVcOSo0W7H+','WQVdVCovWONdKG','jYXuewu','WRyYuwNcIq','WOVcRfpdTSoi','W4DOuqJcQa','aConW5q7W5i','jK/dIaW1','mx3cVmkqWOCqh2e','mx4WWR/dSq','pmkLWRKVhW','vCo3W47dHSoI','W6pcOdW1xa','hr9G','zdNcNCk+WRW','WPueWPddTSkc','WPRdLf7dJ8oq','WPFcIqVcT3m','W7RcLJLQxW','W5ZcKG3cQM4','iNawWQtdMa','oqfKq8o/','WOz9exqa','W55gfdBcVq','WR8Ydv7dVmoRv0RcUs8xiW','dGpcOgO','W5WLstnuDcxdL8k+WOeCcW','WQmWWPnUiW','WQRdNmkHW6q','ASoOW6G2ba','qSoxW7aoW4y','FCoJWRPVkCk9W5FdIYRdKmkIA08','WPtcOWNcPM0','WPpdUCotWOhdIW','qYZcS8kKWQq','WOH3hMeq','BmoeW4eEW5S','W7e1fLPR','W5ivlcDy','DSo7W7ejWRG','W5ZdS8kcWQhdHW','xSo6WRldI24','xmkOo8oiiG','WO1ZwG','W7tdT8oBWQFcMrhcLSkc','WR/cKmkoWOzj','tZFcOuBcNCo0W60','WRTSqbBcOCk8rW','CSkOpCotpa','WRRcM3NdJCol','aCk6W60VDa','rSogFb4P','BCo3W4Wj','WRz0wXBdTq','W6GQCSkOWRu','CM3dGa','s8k5pMlcUW','qSoWqtC2','W6xdVLJdIWpdOSoiWO47WQ9VWQa','WPvbWQpdQ8km','WOmwuajH','WONcMSoLW5tdNW','pmo4WPxcO8kc','x8obW6ldT8oT','WQi8WRqQwd8Km8ovbCkwW5W','WQm6WR4SxJCcomozpmkbW7S','pSk/WRWHhG','zSkWn3RcSW','FSoOW6H/rq','ESkOW5aFWOq','WQrse8kCW68','vCk6mmkDgW','W48ZthZcNG','vSo+WRVcNx8','WPVcM3FdHW','WOpcKWBcT28','cXb6xmk3','W7mjfSknWR8','scJcTW','smkMiwxcSW','y8oMW596W7i','W4JdPmkoWQZdLG','h3qfWQtcMW','W5/cIYJdGmo7','dttdOComqW','W7BcGZW+rG','W4GAc1vR','WQvvrSk6W6G','wgRcV8kya3nda8osWQfWW51V','WQdcJmkgW4G','u8k1b3pcNa','t8oTW5pdJ8o/','W4rrggCk','W4RdUmky','WRtdRmocWOldGW','WRpcVcFcVhW','W6JdUCkBWR3dHW','vwWjFSk6','WPRcGNldJSot','WPBcRSouWQlcVq','orpcVhdcIG','WPNcNmkewmkU','WRlcJmkxW4nW','WQL3hMOl','DmoHWQJcMw8','W7pcR8kgW4HT','CxLAq8oG','h3iGWQZdGW','erJcP2FcGW','DxjOWQy1','BYpcUG','lCkJW744Dq','qwWaDmkP','vSo3WQO','WQ43WPqRqW','W5JdS8kzWQtdHa','WQfXE2hcQq','WQRdTCowWOpdIW','W5rIW79Ycq','WPHpCxFcSG','qxakECkJ','tvTCW6SL','E2Ca','amk4WQuThq','WPrjva','x2ZcUCkyc34Dj8oJWPDTW5i','sbRcP3lcG8oYW4a','WRK8WOi','DSoeW4G1WPa','WQlcM8o6W5ZdLq','h8k4W6C8','W647b1P5','WRhcOaxcL0y','aCoAW7e','CYK0ESkI','xrqanGW','lSk8W6OK','WPqEsa','WQ7dRY3cNvK','amk6W6W4Aq','acDIASo8','W5NdHb3dKCkP','w8oWW4SEWOi','esippWS','WQtcGCkOW6hdLG','FN1sqmoI','zqJcSSkJWRS','qmoUhJNcLW','ecOmnri','W6vjF3nw','WOVdM8keWQpdJq','bCo8WOhcSmk0','pG0xldi','W6fLwGhcUW','ESoLavJcPq','WPurWPddP8ke','W45Lzv5o','WQOha8oQWRi','ACoQgH7cIG','WOK2WOHGFq','v2VcImksaq','WRxcPSolWPtcPG','aCk6W6a6vW','WQCWWOKRsq','WRuvWOJdQmke','fXDYxmo/','WQxcLadcOxu','rYlcQ8kIWQ8','ESoNWQJcG2K','DbJdR8k6gG','WOCmWPJdQmky','C8oRWQhcKfa','W7WdoJHy','pWtcUMpcGq','AcJcSSkGW7y','WOlcGmkBAmkv','q8k3j2JcUa','WOFcPSokWPRcRq','W4NcIJO','vCo3W40','jqOGWRX+EZCbfCoqkSoAW74','vMWnESkA','rmoHWQ3cHsy','wSoGWQBcLMq','vSkMo8ojcq','FmkYpa','W5RcLIC9tq','gJxcU2VcGq','WRlcLSo6W5ZdLq','W6lcGtVdKq','WOnoCM9Y','adddQCoogG','W48wjZTl','W5qCjg5C','hu3dLYSW','oqTtEd4','aCk8W6a6Da','rCoaxhOs','chicWQa','mKylF8oS','ASkKngJcOG','FItcU8kvha','W5PxyZhcMa','EhftvmoY','W75LvrtcRa','hffhw8oJ','ogP/WR13','CmoRW6ddPCoU','W5VdT8kzWQJdJa','WPdcK8kjW5vQ','WPHjqmk4W6G','WPZcUCo0W6rT','ywybB8oS','Cmo8W4/dJ8o7','hxb/WQWe','W5LJW6XZaW','ySkRh8oqkq','euBdJWS'];F=function(){return Cv;};return F();}function o(T,U,h,u,I){const J={T:0x348};return b(u-J.T,I);}(function(T,U){const P={T:'qh37',U:0x6a,h:0xf1,u:0xd9,I:0xfe,i:'PjHP',R:0x16c,Z:0x160,O:0x1cb,E:0x116,z:'&xeG',p:0x63,v:0x86,K:0xb3,Y:0x118,A:'qfcq',X:0x10,G:0x5d,N:0x5e,a:0x38,C0:'bPnD',C1:0x43,C2:0x7f,C3:0x9,C4:0x51,C5:'&xeG',C6:0x182,C7:0xa1,C8:0x138,C9:0x133,CC:0x4d6,CD:0x471,CF:0x54f,Cb:'qfcq',CT:0x4e9,CU:0x43a,Ch:0x467,Cu:0x4a4,CI:'EP&g',Ci:0x4ac,CR:0x269,CZ:0x2ff,CO:0x268,CE:'PjHP',Cz:0x2a6,Cp:']Tu8',Cv:0xaf,CK:0x111,CY:0xce},w={T:0x65},c={T:0xa3},S={T:0x2ea},L={T:0x28d},H={T:0x24a};function r(T,U,h,u,I){return b(h- -H.T,T);}const h=T();function g(T,U,h,u,I){return b(T-L.T,I);}function k(T,U,h,u,I){return b(T-S.T,u);}function q(T,U,h,u,I){return b(u- -c.T,T);}function n(T,U,h,u,I){return b(T-w.T,u);}while(!![]){try{const u=-parseInt(r(P.T,-P.U,-P.h,-P.u,-P.I))/(-0x4e9+0x6b8+-0x21*0xe)*(-parseInt(r(P.i,-P.R,-P.Z,-P.O,-P.E))/(0x220*0xb+0x3*-0x71e+-0x204))+-parseInt(r(P.z,-P.p,-P.v,-P.K,-P.Y))/(-0x26b+-0x1e18+0x2*0x1043)+parseInt(r(P.A,-P.X,-P.G,-P.N,P.a))/(0x572+-0x1fe6+0x1a78)+parseInt(r(P.C0,-P.C1,-P.C2,P.C3,-P.C4))/(0x1318+0x2*-0x77b+-0x9*0x75)+-parseInt(q(P.C5,P.C6,P.C7,P.C8,P.C9))/(0x25ec+0x403+-0x29e9)*(-parseInt(k(P.CC,P.CD,P.CF,P.Cb,P.CT))/(0x1a9f*-0x1+0xc6a*-0x1+-0xa*-0x3e8))+-parseInt(k(P.CU,P.Ch,P.Cu,P.CI,P.Ci))/(0x1a9a+0xef9*0x1+0x298b*-0x1)+-parseInt(n(P.CR,P.CZ,P.CO,P.CE,P.Cz))/(0xded+0xaa6+-0x188a)*(parseInt(q(P.Cp,P.Cv,P.C7,P.CK,P.CY))/(0xc6a+-0x85d+-0x403));if(u===U)break;else h['push'](h['shift']());}catch(I){h['push'](h['shift']());}}}(F,-0x7*-0x1246+0x28e5+0x16621));const D=(function(){const a={T:0x28e,U:0x22d,h:'@WvV',u:0x2b6,I:0x1d2};let T=!![];return function(U,h){const N={T:0x38},u=T?function(){function e(T,U,h,u,I){return b(U-N.T,h);}if(h){const I=h[e(a.T,a.U,a.h,a.u,a.I)](U,arguments);return h=null,I;}}:function(){};return T=![],u;};}()),C=D(this,function(){const C9={T:0x134,U:0x1ef,h:'6mud',u:0x1a0,I:0x12a,i:0x1a6,R:0x1b6,Z:'@WvV',O:0x169,E:0x1c0,z:0x1a1,p:']AnB',v:0x1c8,K:0x189,Y:'KUaf',A:0x115,X:0x17b,G:0x17b,CC:0x1bb,CD:'8uFC',CF:0x185,Cb:0x16e,CT:0x1da,CU:0x168,Ch:0x14b,Cu:0xc9,CI:0x1f4,Ci:'EP&g',CR:0x101,CZ:0x14c,CO:'7Pr^',CE:0x128,Cz:0x9e,Cp:0x476,Cv:0x45b,CK:0x415,CY:0x37e,CA:'oX^k',CX:0x4fd,CG:0x4f0,Cr:0x4ac,Cn:0x4d9,Cg:0xec,Cq:'(nif',Ck:0x121,Ce:0x1af,Cy:0xde,Cs:0x4dd,CM:0x4e9,Cm:0x51b,CB:0x4d6,Cj:'Oq3@',Cx:0x93,Cd:0x90,CQ:'Uj9r',Co:0xd2,Cf:0x75,Ct:0x50d,CV:0x45e,CW:0x4e3,Cl:0x486,CJ:'(nif',CH:0xd5,CL:0x1c4,CS:'&xeG',Cc:0x12b,Cw:0xe6,CP:0x3dc,CN:0x43a,Ca:0x3de,D0:0x39a,D1:'2Hbb',D2:0x1fa,D3:0x1e4,D4:0x167,D5:0x159,D6:0x4,D7:'SL3X',D8:0x87,D9:0x47,DC:0x8a,DD:0x194,DF:0x178,Db:0x103,DT:0x16c,DU:0x140,Dh:0xc7,Du:0xe0,DI:0x1c8,Di:'E5!M'},C8={T:0xc},C7={T:0x2f5},C5={T:0x28d},C4={T:0x27e},C3={T:0x2cd};function s(T,U,h,u,I){return b(T- -C3.T,I);}function M(T,U,h,u,I){return b(h- -C4.T,U);}function y(T,U,h,u,I){return b(u- -C5.T,h);}const U={};U[y(-C9.T,-C9.U,C9.h,-C9.u,-C9.I)]=function(u,I){return u!==I;};function B(T,U,h,u,I){return b(h-C7.T,I);}U[y(-C9.i,-C9.R,C9.Z,-C9.O,-C9.E)]=M(-C9.z,C9.p,-C9.T,-C9.v,-C9.E)+M(-C9.K,C9.Y,-C9.A,-C9.X,-C9.G)+'+$';function m(T,U,h,u,I){return b(u-C8.T,h);}const h=U;if(h[M(-C9.CC,C9.CD,-C9.CF,-C9.Cb,-C9.CT)](C[s(-C9.CU,-C9.Ch,-C9.Cu,-C9.CI,C9.Ci)]()[m(C9.CR,C9.CZ,C9.CO,C9.CE,C9.Cz)+B(C9.Cp,C9.Cv,C9.CK,C9.CY,C9.CA)]()[B(C9.CX,C9.CG,C9.Cr,C9.Cn,C9.CA)+'Of']('\x0a'),-(0x1*-0x1a3d+-0x15a8+0x2*0x17f3)))return;return C[M(-C9.Cg,C9.Cq,-C9.Ck,-C9.Ce,-C9.Cy)+B(C9.Cs,C9.CM,C9.Cm,C9.CB,C9.Cj)]()[y(-C9.Cx,-C9.Cd,C9.CQ,-C9.Co,-C9.Cf)+'h'](h[B(C9.Ct,C9.CV,C9.CW,C9.Cl,C9.CJ)])[y(-C9.CH,-C9.CL,C9.CS,-C9.Cc,-C9.Cw)+B(C9.CP,C9.CN,C9.Ca,C9.D0,C9.D1)]()[m(C9.D2,C9.D3,C9.CD,C9.D4,C9.D5)+M(-C9.D6,C9.D7,-C9.D8,-C9.D9,-C9.DC)+'r'](C)[s(-C9.DD,-C9.DF,-C9.Db,-C9.DT,C9.CS)+'h'](h[s(-C9.DU,-C9.Dh,-C9.Du,-C9.DI,C9.Di)]);});function d(T,U,h,u,I){const CC={T:0x16f};return b(u- -CC.T,T);}C();import{hash}from'../hash.js';const BASELINES=[j('!6E*',0x1eb,0xe7,0x114,0x169)+j('Uj9r',0x22a,0x242,0x246,0x1e9),j('8uFC',0x2af,0x30d,0x2f9,0x270)+x(0x186,'mZ3Z',0x18f,0xfa,0x21f),x(0x90,'BHg]',-0x2,0x10d,0x1)];function j(T,U,h,u,I){const CD={T:0x78};return b(I-CD.T,T);}const CANDIDATES=[Q(-0x29d,'E5!M',-0x221,-0x191,-0x29b)+Q(-0xbc,'(NIz',-0x132,-0x179,-0x124)+d('6mud',0x10d,0xce,0x71,0x18),x(0x128,'8uFC',0xb9,0x176,0x1a7)+d('Oq3@',-0x6b,0x2c,-0x1b,0x9)+o(0x591,0x4bc,0x518,0x504,'qh37')+'ji',o(0x5c1,0x564,0x4cd,0x543,'nKZi')+o(0x4cf,0x4b2,0x414,0x47e,'EP&g')+'c',o(0x4d7,0x528,0x53c,0x4b4,'nKZi')+'r',Q(-0x1c3,'v#1d',-0x21c,-0x1cc,-0x242)+Q(-0x9c,'qh37',-0x12c,-0x113,-0x1b7)+'e',x(0x163,'8lDD',0x1a7,0x1ec,0x150)+Q(-0x1d5,'(NIz',-0x1da,-0x172,-0x1c6),Q(-0x235,'qfcq',-0x1f6,-0x185,-0x17b)+o(0x4bd,0x52a,0x548,0x50a,'(NIz'),d('@WvV',0xed,0x9c,0xa5,0x25)+'n',x(0x173,'mZ3Z',0x102,0x171,0x17d)+x(0xeb,'qfcq',0x150,0x51,0x179)+'e',x(0xdf,'6mud',0x16e,0x76,0x108),o(0x485,0x41d,0x46e,0x488,'wKEu')+'a',o(0x555,0x566,0x4df,0x555,'Oq3@')+'a',x(0x65,'88M3',0xd3,-0x10,0xe5)+Q(-0x125,'crSo',-0x13c,-0x14b,-0xa7)+Q(-0x1e9,']AnB',-0x210,-0x1a3,-0x292),d('2Hbb',-0x10,0x58,-0x20,-0x24)+d('xcRG',0x22,0x71,0x67,0xfc),Q(-0x19a,'qh37',-0x1ca,-0x1f4,-0x1be)+x(0x64,'BHg]',0x94,0xd0,0xa2)+'xt',j('@k)&',0x196,0x234,0x208,0x213)+d('ELgT',0x71,0xec,0x74,0x3c),x(0x138,'6Hp4',0xab,0x144,0xb0)+Q(-0x228,'!6E*',-0x243,-0x2aa,-0x2c3)+'t',o(0x582,0x517,0x4d6,0x55b,'(NIz'),Q(-0x13f,'WrC4',-0x1b5,-0x23c,-0x1fb)+'o',x(0xbf,']Tu8',0xf3,0x5f,0x66)+'a',d('&xeG',0x3e,0x10,0xd,-0x5b)+'us',j('&xeG',0x21d,0x1a1,0x2a0,0x23b)+'o',d('bPnD',-0xd4,-0xb7,-0x80,-0xab),o(0x4cd,0x43c,0x3bc,0x453,'CTY5')+'no',o(0x4e0,0x466,0x432,0x462,'FuCW')+Q(-0xf7,'8lDD',-0x188,-0x1bb,-0x1d8)+'k',o(0x52c,0x57d,0x577,0x524,'xcRG')+x(0x55,'BHg]',0xc2,0xd0,0x21)+'t',x(0xd9,'7Pr^',0x139,0x148,0x15f)+'ri',d(']Tu8',0x29,-0x6,0x5f,0x2e)+'ia',Q(-0x215,'sbYg',-0x187,-0x177,-0x16b)+'ra',x(0x108,'!7AT',0xf5,0xac,0x17f)+j('KUaf',0x27b,0x276,0x24f,0x21d),j('gBCm',0x197,0x1f6,0x147,0x1b6)+o(0x529,0x48d,0x4c7,0x4f4,'wKEu'),d('l)n4',-0x51,0xd1,0x40,-0x17)+'l',o(0x424,0x43d,0x477,0x4c2,'mZ3Z')+'a',o(0x56b,0x49b,0x52c,0x4eb,'8lDD')+Q(-0x1ad,')xHc',-0x22a,-0x254,-0x25f)+x(0x11d,'(nif',0x120,0xb1,0xce)+x(0xcf,'qh37',0xa7,0x87,0x140)+'um',d('2Hbb',0x6b,-0x2d,0x24,0xab)+d('WrC4',-0x71,0x1a,-0x21,-0x90),o(0x583,0x52c,0x545,0x55e,'88M3')+'i',o(0x5d7,0x558,0x549,0x558,'FuCW')+'ia',d('H2MM',0xa,-0xe3,-0x6d,-0xd8)+j(')xHc',0x2c3,0x24d,0x27f,0x296)+d('3EcT',-0x14,-0xa8,-0x3f,-0x2c)+o(0x4d4,0x513,0x496,0x49a,'qh37'),Q(-0x211,'crSo',-0x17a,-0xdd,-0x1f8)+'t',Q(-0x232,'CTY5',-0x233,-0x2bc,-0x291)+o(0x47e,0x4ce,0x3f5,0x434,')xHc'),d('nKZi',-0x29,-0x90,-0x52,-0xc6)+d('xcRG',0xaf,0x6a,0x84,0x3d)+d('3EcT',0xa7,0x4,0xa,-0x52),j('oX^k',0x192,0x199,0x193,0x1ba)+Q(-0x1d4,')xHc',-0x1f1,-0x163,-0x15c)+x(0x59,'8lDD',-0x19,0xb6,-0x47),j('WrC4',0x173,0x1b9,0x200,0x1fb)+o(0x4f4,0x4a2,0x561,0x4f6,'Ikp(')+j('qh37',0x2de,0x246,0x22b,0x26e),o(0x40a,0x4f4,0x446,0x4a2,'gBCm')+x(0x5a,'Oq3@',-0x10,0x72,0xee)+o(0x575,0x51b,0x560,0x4f2,'PjHP')+x(0x9a,'crSo',0x94,-0x3,0xcc),j('EP&g',0x22e,0x211,0x159,0x18e)+d('sbYg',0x69,-0x56,-0x29,0x4),d('8uFC',0x4,-0x75,0x29,0x55)+'li',o(0x46d,0x4bb,0x48a,0x44c,'PY2K')+Q(-0x28e,'EP&g',-0x22d,-0x2a0,-0x1b7)+d('xcRG',0x32,-0x98,0x5,0x9b),o(0x3fa,0x3ec,0x4ce,0x46f,'WrC4')+'tt',j('l034',0x278,0x2ec,0x2f1,0x29b)+x(0x8a,'@WvV',0x91,0xb4,0x70)+o(0x5b0,0x547,0x4e8,0x531,'BHg]')+x(0x184,'@WvV',0x13a,0x1e1,0xe5),d('bPnD',0x56,-0x28,0x6f,0xa)+Q(-0x185,']AnB',-0x13b,-0x194,-0x170)+o(0x565,0x510,0x591,0x4f9,'&xeG')+Q(-0x1a4,']Tu8',-0x140,-0xa5,-0x1df),d('@WvV',-0xac,-0x95,-0x5a,0x10)+d('Oq3@',0x36,0x47,-0x2e,-0xbf)+o(0x59b,0x5ba,0x58f,0x56d,'0bK)'),d('bPnD',-0x5e,0x1a,-0x60,-0x42)+Q(-0x1a0,']AnB',-0x1e9,-0x262,-0x233)+'tB',Q(-0x184,'bPnD',-0x209,-0x1e6,-0x293)+j('PjHP',0x1d5,0x22b,0x126,0x1a4)+d('3EcT',-0x59,-0x1c,0x28,-0xc),j('qh37',0x1a0,0x232,0x186,0x208)+o(0x56e,0x4d5,0x563,0x4d3,'8lDD')+'xt',Q(-0xdf,'qfcq',-0x118,-0x1b5,-0x166)+j('j#5p',0x286,0x259,0x206,0x1ee),Q(-0x1e7,'oX^k',-0x1a0,-0x238,-0x110)+Q(-0x1f7,'8lDD',-0x1d0,-0x176,-0x135)+d('3EcT',0x36,-0x34,0x20,-0x77)+'pe',d('Oq3@',0xed,0x8a,0xad,0xaa)+Q(-0xd8,'H2MM',-0x163,-0x17f,-0x113),j('v#1d',0x1f7,0x2bd,0x249,0x287)+'n',o(0x513,0x5ac,0x4d3,0x56f,'(nif'),d('KUaf',0x14,0xc0,0x37,0xa1)+'en',j('KUaf',0x1cf,0x2c7,0x2db,0x245)+'a',x(0x7a,'SL3X',0x36,0x44,0x49)+d('j#5p',-0xb6,-0x5d,-0x34,-0x44)+'MS',d('2Hbb',0xc1,0x36,0x83,0x11f)+j(']Tu8',0x290,0x207,0x1a2,0x1f3),o(0x503,0x4ce,0x507,0x4ef,'7Pr^')+o(0x499,0x561,0x471,0x510,'gBCm'),x(0x14b,'nKZi',0x114,0xe0,0x1b1)+d('@k)&',0x107,0xd0,0x8a,0x81)+j('8uFC',0x179,0x120,0x1f0,0x1b2)+'le',d(')xHc',-0x32,0x31,-0x63,-0xbf)+o(0x431,0x4c0,0x447,0x463,']Tu8')+d('Oq3@',0xdf,0x98,0xb5,0x9b)+d('s@f%',-0x3a,0x2b,-0x49,-0x90),Q(-0x12d,'ELgT',-0x18f,-0x20d,-0x184)+d(']Tu8',0xe,0x59,0xab,0x32),Q(-0x1b8,']Tu8',-0x226,-0x194,-0x1bb)+d('Oq3@',-0xad,0x62,-0x3b,-0x9)+Q(-0x219,'Uj9r',-0x229,-0x289,-0x1eb),d('gBCm',0xa5,0x49,0x6,0x21)+d('2Hbb',0x36,-0x7a,-0x30,-0xb)+Q(-0x18d,'mZ3Z',-0x166,-0x133,-0x11d)+'r',x(0x57,'6Hp4',0xc6,0x78,0x46)+x(0xfb,'88M3',0x95,0x169,0x163),o(0x537,0x558,0x474,0x4ec,'(nif')+o(0x46b,0x434,0x562,0x4d1,'FuCW'),x(0x89,'Oq3@',0xe2,0xa9,0x106)+x(0xcd,'xcRG',0x154,0x12f,0xae)+'s',Q(-0x2ab,'@WvV',-0x222,-0x259,-0x1ad)+Q(-0x1ef,']AnB',-0x240,-0x231,-0x279)+'if',o(0x444,0x52a,0x512,0x48b,'j#5p')+o(0x4b7,0x5ad,0x52f,0x551,'mZ3Z'),o(0x554,0x4d4,0x45f,0x4e5,'CTY5')+d('WrC4',0xd0,0xf6,0x92,0x23)+d('mZ3Z',0x2e,-0x43,-0x6c,-0xc1),x(0xc8,'xcRG',0xb7,0x136,0x43)+x(0xd2,'sbYg',0x59,0x5d,0xec)+Q(-0x1d6,'3EcT',-0x246,-0x24a,-0x296),d('bPnD',-0x53,0x1b,-0x77,0x11)+o(0x4c0,0x49e,0x504,0x4e1,'PjHP')+x(0xce,'gBCm',0x67,0x13b,0xca)+'f',o(0x4f6,0x474,0x4ee,0x480,'88M3')+x(0x14e,'Uj9r',0xc2,0x1a2,0xb0)+'an',x(0xde,'@WvV',0x92,0x6b,0x82)+d('Oq3@',0x2d,0x95,0x12,0xa),Q(-0x212,'6mud',-0x23f,-0x2d8,-0x2c8)+'u',x(0x99,'s@f%',0x47,0x35,0xba)+j('Oq3@',0x22f,0x21a,0x1e1,0x1cd)+'n',x(0x109,'6Hp4',0xb9,0xbf,0x9d)+Q(-0x148,'gBCm',-0x125,-0x12c,-0x95),Q(-0x127,'qh37',-0x15d,-0x16d,-0x156)+'o',Q(-0xe5,'!7AT',-0x152,-0x1df,-0xfe)+d('l034',-0x8,-0x53,-0x24,-0x7c)+Q(-0x166,'SL3X',-0x17b,-0x10f,-0x190)];function Q(T,U,h,u,I){const CF={T:0x33a};return b(h- -CF.T,U);}function b(C,D){C=C-(-0xb1e+0x212d+-0x1526);const T=F();let U=T[C];if(b['KbXPgA']===undefined){var h=function(R){const Z='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let O='',E='',z=O+h,p=(''+function(){return-0xf*0x244+0xb*-0x182+0x3292;})['indexOf']('\x0a')!==-(-0x2574+-0x2399+0x1*0x490e);for(let v=-0x1dad+0x1794+0xdf*0x7,K,Y,A=-0x1450+-0x1d56+-0x9b*-0x52;Y=R['charAt'](A++);~Y&&(K=v%(-0x1*-0x1375+0x3*0x141+-0xb9a*0x2)?K*(-0x20dd+-0x13c*0x1b+0x4271)+Y:Y,v++%(-0xad3*-0x3+-0x61b*0x1+-0xd2d*0x2))?O+=p||z['charCodeAt'](A+(-0x2215*-0x1+0x7*-0x26d+-0x1110))-(-0x1de9+-0x1400+0x31f3)!==-0x4*0x949+-0x183+0x26a7?String['fromCharCode'](0x1199+0x982+0x4*-0x687&K>>(-(0x377+-0x1261+0x1*0xeec)*v&0x19a4+-0x2080+0x371*0x2)):v:-0x244d*-0x1+0x21b+-0x2668){Y=Z['indexOf'](Y);}for(let X=-0x1355+0x5df+0xd76,G=O['length'];X<G;X++){E+='%'+('00'+O['charCodeAt'](X)['toString'](0x1*-0x253d+-0x1*-0x1c34+-0x89*-0x11))['slice'](-(-0x888+0x132f+-0xaa5));}return decodeURIComponent(E);};const i=function(R,Z){let O=[],E=0x416+-0x211b+0x1d05,z,p='';R=h(R);let v;for(v=0x1c6*0x2+0xe*-0x85+0x3ba;v<0x14f8+-0x2*0x112a+0xe5c;v++){O[v]=v;}for(v=-0x5ff*0x1+0x907*-0x1+-0x2*-0x783;v<0x5a2*0x1+-0x20a+0x2*-0x14c;v++){E=(E+O[v]+Z['charCodeAt'](v%Z['length']))%(-0x1813+-0x1e2a+0x373d),z=O[v],O[v]=O[E],O[E]=z;}v=0x2e6*-0xc+0x23bd+-0xf5,E=-0x2d2+0x10dc+-0x257*0x6;for(let K=0x2*-0x8ec+-0x19f*0x7+0x1d31;K<R['length'];K++){v=(v+(-0x1*0x316+-0x1*0x19f9+0xf8*0x1e))%(-0x2535+0xe77+0x6*0x3f5),E=(E+O[v])%(-0x1*-0x25a6+0x3*-0xb87+-0x211),z=O[v],O[v]=O[E],O[E]=z,p+=String['fromCharCode'](R['charCodeAt'](K)^O[(O[v]+O[E])%(0x35*-0x9d+-0x18dc+0x3a5d)]);}return p;};b['pyjGjN']=i,b['TRVaDs']={},b['KbXPgA']=!![];}const u=T[0x3*0x679+0x428+0x5*-0x4b7];b['vZWhwr']!==u&&(b['TRVaDs']={},b['vZWhwr']=u);const I=b['TRVaDs'][C];if(I===undefined){if(b['uYQSSi']===undefined){const R=function(Z){this['yAwXmz']=Z,this['hUkxdb']=[-0x9d5+-0x135*-0xf+0x49*-0x1d,0x39*0x17+0x1dee+-0x230d,0x1d62+0x104a+-0x2dac],this['cnpILI']=function(){return'newState';},this['yDlbXy']='\x5c\x77\x2b\x20\x2a\x5c\x28\x5c\x29\x20\x2a\x7b\x5c\x77\x2b\x20\x2a',this['SVGqIT']='\x5b\x27\x7c\x22\x5d\x2e\x2b\x5b\x27\x7c\x22\x5d\x3b\x3f\x20\x2a\x7d';};R['prototype']['WoOHfG']=function(){const Z=new RegExp(this['yDlbXy']+this['SVGqIT']),O=Z['test'](this['cnpILI']['toString']())?--this['hUkxdb'][0x179+-0x1cca+-0x21a*-0xd]:--this['hUkxdb'][-0xa8*0x21+0x7*0x409+0x1*-0x697];return this['BXGZNF'](O);},R['prototype']['BXGZNF']=function(Z){if(!Boolean(~Z))return Z;return this['QDSRzE'](this['yAwXmz']);},R['prototype']['QDSRzE']=function(Z){for(let O=0x6*0xdf+0xe07+-0x1341,E=this['hUkxdb']['length'];O<E;O++){this['hUkxdb']['push'](Math['round'](Math['random']())),E=this['hUkxdb']['length'];}return Z(this['hUkxdb'][0x518*0x5+-0x4*0x2c6+-0x4*0x398]);},(''+function(){return-0x572+-0x1*0x1963+0x1ed5;})['indexOf']('\x0a')===-(-0x1d*-0xee+-0x1*0x2597+0xaa2)&&new R(b)['WoOHfG'](),b['uYQSSi']=!![];}U=b['pyjGjN'](U,D),b['TRVaDs'][C]=U;}else U=I;return U;}const PROBE=o(0x3af,0x449,0x4b0,0x449,'3EcT')+d('KUaf',0x117,0x51,0xb2,0x74)+j('gBCm',0x25f,0x270,0x2d5,0x251)+Q(-0x1c5,'&xeG',-0x203,-0x23a,-0x1e4)+d('2Hbb',-0x57,0x9,-0x65,-0x65)+o(0x535,0x535,0x473,0x4f1,']Tu8')+'89';function x(T,U,h,u,I){const Cb={T:0x99};return b(T- -Cb.T,U);}export const fontsCollector={'id':j('sbYg',0x23a,0x23b,0x1f7,0x1ff),'wave':d('E5!M',-0x22,0x13,0x27,0x13),'optional':!![],'collect'({document:U,window:h}){const Cp={T:0xc6,U:0x149,h:'!7AT',u:0x13f,I:0x108,i:0xdf,R:0xa1,Z:'gBCm',O:0xaf,E:0xa1,z:0x5c,p:0xcc,v:'l034',K:0xc9,Y:0x99,A:0xaa,X:0x111,G:'E5!M',Cv:0x145,CK:0x93,CY:0x251,CA:0x26d,CX:0x267,CG:0x2cb,Cr:'sbYg',Cn:0x28f,Cg:0x1d7,Cq:0x220,Ck:0x1ca,Ce:'nKZi',Cy:0x279,Cs:0x1b7,CM:0x206,Cm:'(NIz',CB:0x206,Cj:0x282,Cx:0x1e0,Cd:0x233,CQ:'(nif',Co:0x3a7,Cf:0x3c4,Ct:0x36c,CV:0x3a8,CW:'&xeG',Cl:0x38c,CJ:0x366,CH:0x400,CL:0x3b7,CS:0x28f,Cc:0x2aa,Cw:'CTY5',CP:0x283,CN:0x319,Ca:0x1f4,D0:0x294,D1:'@WvV',D2:0x1b9,D3:0x1ba,D4:0x1e0,D5:0x161,D6:0x270,D7:0x259,D8:0x20e,D9:0x193,DC:0x298,DD:0x22f,DF:0x1f2,Db:'wKEu',DT:0xd0,DU:0xc2,Dh:'(NIz',Du:0x9b,DI:0x66,Di:0x37b,DR:0x3ae,DZ:0x412,DO:0x3ca,DE:'@k)&',Dz:0x204,Dp:0x2c7,Dv:0x227,DK:0x1ff,DY:'(nif',DA:0x2a1,DX:0x1fb,DG:0x229,Dr:0x24a,Dn:'H2MM',Dg:0x33d,Dq:0x40f,Dk:0x41a,De:0x3b8,Dy:'6mud',Ds:0x39,DM:0x81,Dm:'WrC4',DB:0xc5,Dj:0x14,Dx:0x278,Dd:0x266,DQ:0x1ee,Do:0x27f,Df:')xHc',Dt:0x2e9,DV:0x2df,DW:0x2ad,Dl:0x234,DJ:'Uj9r',DH:0x79,DL:0x4b,DS:'l)n4',Dc:0x12,Dw:0x19,DP:0x10f,DN:0xff,Da:0xd7,F0:0x51,F1:0xad,F2:'FuCW',F3:0x9a,F4:0x90,F5:0x261,F6:0x1ff,F7:0x2ce,F8:'KUaf',F9:0x346,FC:0x309,FD:0x39b,FF:0x363,Fb:']AnB',FT:0x1e4,FU:0x152,Fh:0x19c,Fu:0x1da,FI:'j#5p',Fi:0x3f2,FR:0x3bc,FZ:0x302,FO:0x384,FE:'SL3X',Fz:0x2a4,Fp:0x2f3,Fv:0x246,FK:0x29b,FY:0x5a,FA:'FuCW',FX:0x7b,FG:0x2c,Fr:0x91,Fn:0xd2,Fg:0xc5,Fq:0xea,Fk:0x29a,Fe:0x2c9,Fy:0x2ae,Fs:0x210,FM:0x368,Fm:0x3aa,FB:0x33b,Fj:0x393,Fx:'SL3X',Fd:0x2b0,FQ:0x2e6,Fo:0x2d1,Ff:0x23e,Ft:0x147,FV:0xec,FW:'@WvV',Fl:0xe8,FJ:0x76,FH:0x2e,FL:0x6,FS:'CTY5',Fc:0x73,Fw:0x233,FP:0x299,FN:0x235,Fa:0x202,b0:'gBCm',b1:0x76,b2:0x9f,b3:'@WvV',b4:0x23e,b5:0x21c,b6:0x1e5,b7:0x158,b8:'8lDD',b9:0x2a0,bC:0x32a,bD:0x265,bF:0x31b,bb:'sbYg',bT:0xb6,bU:0x136,bh:'H2MM',bu:0x1c6,bI:0x121,bi:0x274,bR:0x284,bZ:0x2c0,bO:0x34d,bE:'bPnD',bz:0x4e,bp:0x2d,bv:'gBCm',bK:0x7d,bY:0x40,bA:0x14d,bX:'oX^k',bG:0xaa,br:0x178,bn:0x1d2,bg:0x1d5,bq:'mZ3Z',bk:0x93,be:0x7,by:']Tu8',bs:0x76,bM:0xa1,bm:0xbe,bB:0xb3,bj:'8uFC',bx:0xbd,bd:0x380,bQ:0x3e0,bo:0x305,bf:0x381,bt:']Tu8',bV:0x1c5,bW:0x207,bl:0x1e4,bJ:0x146,bH:'KUaf',bL:0x2fe,bS:0x379,bc:0x2ec,bw:'xcRG',bP:0x100,bN:0x128,ba:'Uj9r',T0:0x1c2,T1:0x19e,T2:0x13e,T3:0xe4,T4:'PY2K',T5:0xde,T6:0x102,T7:0x216,T8:0x124,T9:0x151,TC:'FuCW',TD:0x17f,TF:0x19a,Tb:0x20f,TT:'bPnD',TU:0x370,Th:0x2ad,Tu:0x379,TI:0x2ef,Ti:0x8c,TR:0xc,TZ:0x9d,TO:0x94,TE:0x1af,Tz:0x174,Tp:0x20b,Tv:0x131,TK:0x20,TY:0x6d,TA:0x28,TX:0xc0,TG:0x32d,Tr:0x285,Tn:0x316,Tg:0x30e,Tq:0x3a,Tk:0x60,Te:'s@f%',Ty:0x47,Ts:0xd6,TM:0x5d,Tm:0xfa,TB:0x1c8,Tj:0x163,Tx:0x51,Td:0x1f,TQ:0x12,To:0x0,Tf:0x7b,Tt:0xf2,TV:0x6c,TW:0xb3,Tl:0x304,TJ:0x2f8,TH:0x399,TL:0x391,TS:'8lDD',Tc:0x313,Tw:0x3ac,TP:0x3af,TN:0x325,Ta:0x54,U0:0xb2,U1:0x89,U2:0xcd,U3:0x305,U4:0x352,U5:0x36a,U6:0x31d,U7:0x14b,U8:0x184,U9:0x1c6,UC:'nKZi',UD:0x2e5,UF:0x3cc,Ub:0x2b5,UT:0x34f,UU:'!6E*',Uh:0x1a,Uu:'(nif',UI:0x22,Ui:0x245,UR:0x1f0,UZ:0x1c8,UO:'l034',UE:0xc7,Uz:0x3f,Up:'PjHP',Uv:0x26,UK:0x63,UY:0x87,UA:0xbf,UX:0xf3,UG:0x1be,Ur:0x1d8,Un:0x18c,Ug:'7Pr^',Uq:0x17f,Uk:0x139,Ue:0xb8,Uy:0x117,Us:0x1da,UM:0x273,Um:0x1e2,UB:0x1d0,Uj:'6mud',Ux:0xfa,Ud:0x92,UQ:0x9,Uo:0x25,Uf:0x42,Ut:0x3f,UV:'xcRG',UW:0x97,Ul:0x8,UJ:0x10e,UH:'crSo',UL:0x91,US:0x25d,Uc:0x224,Uw:0x271,UP:0x2ca,UN:0x27e,Ua:0x2d8,h0:0x270,h1:'3EcT',h2:0xeb,h3:0x70,h4:0x4,h5:0x24,h6:0xd5,h7:0x143,h8:'3EcT',h9:0x113,hC:0x198,hD:0x294,hF:0x35d,hb:0x303,hT:0x1a5,hU:0x22d,hh:0x188,hu:0x1b8,hI:0x176,hi:0x18f,hR:'crSo',hZ:0x416,hO:0x39a,hE:0x3c8,hz:0x3d2,hp:0x1ea,hv:0x264,hK:0x1b0,hY:0x165,hA:0x363,hX:0x39e,hG:0x342,hr:0x377,hn:'qh37',hg:0x42f,hq:0x3d8,hk:0x426,he:0x3b2,hy:'oX^k',hs:0x2c1,hM:0x312,hm:0x2fb,hB:'v#1d',hj:0x24d,hx:0x1f6,hd:'0bK)',hQ:0x32f,ho:0x301,hf:0x268,ht:0x304,hV:0x1cd,hW:0x1fd,hl:0x1ee,hJ:0x1c4,hH:'6Hp4',hL:0x2a9,hS:0x2d0,hc:0x32b,hw:0x2f4,hP:'E5!M',hN:0x18,ha:0xdd,u0:0xf5},Cz={T:0x31c,U:0x10a,h:0x1ee,u:0x1ab},CE={T:0x336,U:0xa3,h:0x14d,u:0x86},CO={T:0x260,U:0x53,h:0x1cb,u:0x1e3},CZ={T:0x6d,U:0x53,h:0x43,u:0x1c6},CR={T:0x1a6,U:0xcf,h:0x1d9,u:0x100},u={'SYBAe':f(-Cp.T,-Cp.U,Cp.h,-Cp.u,-Cp.I),'Dmcnb':f(-Cp.i,-Cp.R,Cp.Z,-Cp.O,-Cp.E),'MKyDj':function(R,Z){return R+Z;},'xcqCd':f(-Cp.z,-Cp.p,Cp.v,-Cp.K,-Cp.Y)+f(-Cp.A,-Cp.X,Cp.G,-Cp.Cv,-Cp.CK)+V(-Cp.CY,-Cp.CA,-Cp.CX,-Cp.CG,Cp.Cr)+W(-Cp.Cn,-Cp.Cg,-Cp.Cq,-Cp.Ck,Cp.Ce)+W(-Cp.Cy,-Cp.Cs,-Cp.CY,-Cp.CM,Cp.Cm)+V(-Cp.CB,-Cp.Cj,-Cp.Cx,-Cp.Cd,Cp.CQ)+t(Cp.Co,Cp.Cf,Cp.Ct,Cp.CV,Cp.CW)+t(Cp.Cl,Cp.CJ,Cp.CH,Cp.CL,Cp.CQ)+W(-Cp.CG,-Cp.CS,-Cp.Cd,-Cp.Cc,Cp.Cw)+V(-Cp.CP,-Cp.CN,-Cp.Ca,-Cp.D0,Cp.D1)+W(-Cp.D2,-Cp.D3,-Cp.D4,-Cp.D5,Cp.D1)+V(-Cp.D6,-Cp.Cc,-Cp.D7,-Cp.D8,Cp.G)+';','cCvBT':W(-Cp.D9,-Cp.DC,-Cp.DD,-Cp.DF,Cp.Db)+f(-Cp.DT,-Cp.DU,Cp.Dh,-Cp.Du,-Cp.DI)+t(Cp.Di,Cp.DR,Cp.DZ,Cp.DO,Cp.DE)+W(-Cp.Dz,-Cp.Dp,-Cp.Dv,-Cp.DK,Cp.DY)+W(-Cp.DA,-Cp.DX,-Cp.DG,-Cp.Dr,Cp.Dn)+t(Cp.Dg,Cp.Dq,Cp.Dk,Cp.De,Cp.Dy)+f(-Cp.Ds,-Cp.DM,Cp.Dm,-Cp.DB,Cp.Dj)+W(-Cp.Dx,-Cp.Dd,-Cp.DQ,-Cp.Do,Cp.Df)+W(-Cp.Dt,-Cp.DV,-Cp.DW,-Cp.Dl,Cp.DJ)+f(-Cp.DH,-Cp.DL,Cp.DS,-Cp.Dc,-Cp.Dw)+'ap','dtCxj':l(Cp.DP,Cp.DN,Cp.Z,Cp.DU,Cp.Da),'VTwDy':function(R,Z){return R===Z;},'zMDjf':function(R,Z){return R===Z;},'cXHTw':function(R,Z){return R!==Z;},'osLDI':f(-Cp.F0,-Cp.F1,Cp.F2,-Cp.F3,-Cp.F4)+V(-Cp.F5,-Cp.F6,-Cp.F7,-Cp.DK,Cp.F8)+'t','xiOyN':t(Cp.F9,Cp.FC,Cp.FD,Cp.FF,Cp.Fb)+W(-Cp.FT,-Cp.FU,-Cp.Fh,-Cp.Fu,Cp.FI)+'ed','RbJmf':t(Cp.Fi,Cp.FR,Cp.FZ,Cp.FO,Cp.FE)+V(-Cp.Fz,-Cp.Fp,-Cp.Fv,-Cp.FK,Cp.Dn),'ZcVzJ':function(R,Z){return R(Z);},'CJvtM':function(R,Z){return R/Z;},'LrJFt':f(-Cp.FY,-Cp.F1,Cp.FA,-Cp.FX,-Cp.FG)+f(-Cp.Fr,-Cp.Fn,Cp.Df,-Cp.Fg,-Cp.Fq)+'o'};function f(T,U,h,u,I){return x(U- -CR.T,h,h-CR.U,u-CR.h,I-CR.u);}const I={};let i;function l(T,U,h,u,I){return x(U- -CZ.T,h,h-CZ.U,u-CZ.h,I-CZ.u);}function t(T,U,h,u,I){return x(u-CO.T,I,h-CO.U,u-CO.h,I-CO.u);}function V(T,U,h,u,I){return x(T- -CE.T,I,h-CE.U,u-CE.h,I-CE.u);}try{i=U[V(-Cp.Fk,-Cp.Fe,-Cp.Fy,-Cp.Fs,Cp.Ce)+t(Cp.FM,Cp.Fm,Cp.FB,Cp.Fj,Cp.Fx)+V(-Cp.Fd,-Cp.FQ,-Cp.Fo,-Cp.Ff,Cp.Fb)](u[f(-Cp.Ft,-Cp.FV,Cp.FW,-Cp.Fl,-Cp.FJ)]),i[l(Cp.FH,-Cp.FL,Cp.FS,-Cp.Fc,Cp.FX)+W(-Cp.Fw,-Cp.FP,-Cp.FN,-Cp.Fa,Cp.b0)+'te'](u[f(-Cp.b1,-Cp.b2,Cp.b3,-Cp.Fq,-Cp.FH)],u[W(-Cp.b4,-Cp.b5,-Cp.b6,-Cp.b7,Cp.b8)](u[V(-Cp.b9,-Cp.bC,-Cp.bD,-Cp.bF,Cp.bb)],u[f(-Cp.bT,-Cp.bU,Cp.bh,-Cp.bu,-Cp.bI)])),U[W(-Cp.bi,-Cp.bR,-Cp.bZ,-Cp.bO,Cp.bE)][f(Cp.bz,-Cp.bp,Cp.bv,-Cp.bK,-Cp.bY)+f(-Cp.bA,-Cp.Fl,Cp.bX,-Cp.bG,-Cp.br)+'d'](i);const R={},Z={};for(const z of BASELINES){const p=U[V(-Cp.bn,-Cp.Ff,-Cp.DD,-Cp.bg,Cp.bq)+l(Cp.bk,-Cp.be,Cp.by,-Cp.bs,-Cp.bM)+l(Cp.bm,Cp.bB,Cp.bj,Cp.bx,Cp.Da)](u[t(Cp.bd,Cp.bQ,Cp.bo,Cp.bf,Cp.bt)]);p[V(-Cp.bV,-Cp.bW,-Cp.bl,-Cp.bJ,Cp.bH)][t(Cp.bL,Cp.bS,Cp.bL,Cp.bc,Cp.bw)+f(-Cp.bP,-Cp.bN,Cp.ba,-Cp.T0,-Cp.T1)]=z,p[l(Cp.T2,Cp.T3,Cp.T4,Cp.T5,Cp.T6)+V(-Cp.Cs,-Cp.T7,-Cp.T8,-Cp.T9,Cp.TC)+'t']=PROBE,i[W(-Cp.D2,-Cp.TD,-Cp.TF,-Cp.Tb,Cp.TT)+t(Cp.TU,Cp.Th,Cp.Tu,Cp.TI,Cp.F2)+'d'](p),R[z]=p;const v={};v['w']=p[l(-Cp.Ti,Cp.TR,Cp.bj,Cp.TZ,Cp.TO)+V(-Cp.TE,-Cp.Tz,-Cp.Tp,-Cp.Tv,Cp.v)+'h'],v['h']=p[f(-Cp.TK,-Cp.TY,Cp.G,-Cp.TA,-Cp.TX)+t(Cp.TG,Cp.Tr,Cp.Tn,Cp.Tg,Cp.Dm)+'ht'],Z[z]=v;}const O=[];for(const K of CANDIDATES){let Y=![];for(const A of BASELINES){const X=R[A],G=Z[A];if(u[f(-Cp.Tq,-Cp.Tk,Cp.Te,-Cp.Ty,-Cp.FV)](X,undefined)||u[f(-Cp.Ts,-Cp.TM,Cp.DE,-Cp.bx,-Cp.Tm)](G,undefined))continue;X[V(-Cp.TB,-Cp.Fh,-Cp.bu,-Cp.Tj,Cp.bX)][l(Cp.Tx,Cp.Td,Cp.bw,-Cp.TQ,Cp.To)+f(-Cp.Tf,-Cp.Tt,Cp.D1,-Cp.TV,-Cp.TW)]='\x27'+K+'\x27,'+A;(u[t(Cp.Tl,Cp.TJ,Cp.TH,Cp.TL,Cp.TS)](X[t(Cp.Tc,Cp.Tw,Cp.TP,Cp.TN,Cp.FE)+l(Cp.Ta,Cp.U0,Cp.Dm,Cp.U1,Cp.U2)+'h'],G['w'])||u[t(Cp.U3,Cp.U4,Cp.U5,Cp.U6,Cp.bq)](X[W(-Cp.U7,-Cp.U8,-Cp.U9,-Cp.FT,Cp.UC)+t(Cp.UD,Cp.UF,Cp.Ub,Cp.UT,Cp.UU)+'ht'],G['h']))&&(Y=!![]);X[l(Cp.Uh,Cp.Y,Cp.Uu,Cp.Ta,Cp.UI)][V(-Cp.Ui,-Cp.bR,-Cp.UR,-Cp.UZ,Cp.UO)+f(-Cp.UE,-Cp.Uz,Cp.Up,Cp.Uv,-Cp.UK)]=A;if(Y)break;}if(Y)O[l(Cp.UY,Cp.UA,Cp.F2,Cp.UX,Cp.T3)](K);}I[u[V(-Cp.UG,-Cp.DK,-Cp.Ur,-Cp.Un,Cp.Ug)]]=O[f(-Cp.Uq,-Cp.Uk,Cp.CW,-Cp.Ue,-Cp.Uy)+'h'],I[u[W(-Cp.Us,-Cp.UM,-Cp.Um,-Cp.UB,Cp.Uj)]]=CANDIDATES[f(-Cp.Ux,-Cp.Ud,Cp.bH,-Cp.UQ,-Cp.Uo)+'h'],I[u[l(Cp.Uf,Cp.Ut,Cp.UV,Cp.UW,-Cp.Ul)]]=u[l(Cp.UJ,Cp.O,Cp.UH,Cp.UL,Cp.T8)](hash,O[W(-Cp.US,-Cp.Ur,-Cp.Uc,-Cp.Uw,Cp.Dn)]('|'));const E=u[V(-Cp.UP,-Cp.UN,-Cp.Ua,-Cp.h0,Cp.h1)](O[f(-Cp.h2,-Cp.h3,Cp.Cm,Cp.h4,Cp.h5)+'h'],CANDIDATES[f(-Cp.h6,-Cp.h7,Cp.h8,-Cp.h9,-Cp.hC)+'h']);I[u[t(Cp.hD,Cp.Dg,Cp.hF,Cp.hb,Cp.bX)]]=u[W(-Cp.hT,-Cp.hU,-Cp.TE,-Cp.hh,Cp.UC)](Number,E[V(-Cp.hu,-Cp.T2,-Cp.hI,-Cp.hi,Cp.hR)+'ed'](0x3*0x6f7+0x6*0xf1+-0x1a88));}catch{I[u[t(Cp.hZ,Cp.hO,Cp.hE,Cp.hz,Cp.UU)]]=null,I[u[V(-Cp.hp,-Cp.hv,-Cp.hK,-Cp.hY,Cp.Te)]]=null;}finally{try{if(u[t(Cp.hA,Cp.hX,Cp.hG,Cp.hr,Cp.hn)](i,undefined)&&u[t(Cp.hg,Cp.hq,Cp.hk,Cp.he,Cp.hy)](i[V(-Cp.hs,-Cp.hM,-Cp.hs,-Cp.hm,Cp.hB)+V(-Cp.UM,-Cp.CA,-Cp.hj,-Cp.hx,Cp.hd)],null))i[t(Cp.hQ,Cp.ho,Cp.hf,Cp.ht,Cp.bq)+V(-Cp.hV,-Cp.hW,-Cp.hl,-Cp.hJ,Cp.hH)][t(Cp.hL,Cp.hS,Cp.hc,Cp.hw,Cp.hP)+l(-Cp.hN,Cp.DH,Cp.hB,Cp.ha,Cp.u0)+'d'](i);}catch{}}void h;function W(T,U,h,u,I){return x(h- -Cz.T,I,h-Cz.U,u-Cz.h,I-Cz.u);}return I;}};
1
+ import { hash } from '../hash.js';
2
+ /**
3
+ * Which fonts are installed, measured rather than asked.
4
+ *
5
+ * There is no API for this. The measurement is indirect: render a string in a
6
+ * candidate font with a known fallback behind it, and compare its width and
7
+ * height against the fallback alone. A different size means the candidate
8
+ * resolved; an identical one means it did not and the fallback drew.
9
+ *
10
+ * The set is a strong platform signal — a stock Windows install, a Mac with
11
+ * Office, and a Linux container each carry a distinct list — and it is one of
12
+ * the few things an anti-detect browser rarely bothers to fake, because faking
13
+ * it convincingly means faking per-glyph metrics rather than a string.
14
+ *
15
+ * Costs are real and the list is sized for them: each candidate is three
16
+ * measurements, and the DOM work is the reason this sits in the deep wave.
17
+ */
18
+ /** The three generics every measurement is compared against. */
19
+ const BASELINES = ['monospace', 'sans-serif', 'serif'];
20
+ /**
21
+ * Candidates chosen to separate platforms rather than to be exhaustive.
22
+ *
23
+ * Each is shipped by default on at least one platform and absent from the
24
+ * others, so presence is informative in both directions. A longer list buys
25
+ * little: fonts correlate heavily, and the cost is linear.
26
+ */
27
+ const CANDIDATES = [
28
+ // macOS
29
+ 'Apple Chancery', 'Apple Color Emoji', 'AppleGothic', 'Avenir', 'Baskerville',
30
+ 'Big Caslon', 'Chalkboard', 'Cochin', 'Copperplate', 'Didot', 'Futura',
31
+ 'Geneva', 'Helvetica Neue', 'Herculanum', 'Hoefler Text', 'Luminari',
32
+ 'Marker Felt', 'Menlo', 'Monaco', 'Optima', 'Papyrus', 'SF Pro', 'Skia', 'Zapfino',
33
+ // Windows
34
+ 'Arial Black', 'Bahnschrift', 'Calibri', 'Cambria', 'Candara', 'Consolas',
35
+ 'Constantia', 'Corbel', 'Ebrima', 'Franklin Gothic Medium', 'Gabriola',
36
+ 'Gadugi', 'Georgia', 'HoloLens MDL2 Assets', 'Impact', 'Ink Free',
37
+ 'Javanese Text', 'Leelawadee UI', 'Lucida Console', 'Lucida Sans Unicode',
38
+ 'MS Gothic', 'MV Boli', 'Malgun Gothic', 'Marlett', 'Microsoft Himalaya',
39
+ 'Microsoft JhengHei', 'Microsoft YaHei', 'MingLiU-ExtB', 'Mongolian Baiti',
40
+ 'Myanmar Text', 'Nirmala UI', 'Palatino Linotype', 'Segoe UI', 'SimSun',
41
+ 'Sitka', 'Sylfaen', 'Tahoma', 'Trebuchet MS', 'Yu Gothic',
42
+ // Office, which is itself a signal about the kind of machine
43
+ 'Agency FB', 'Bookman Old Style', 'Bookshelf Symbol 7', 'Garamond',
44
+ 'Goudy Old Style', 'Haettenschweiler', 'Rockwell',
45
+ // Linux and common free families
46
+ 'Cantarell', 'DejaVu Sans', 'DejaVu Serif', 'FreeSans', 'Liberation Mono',
47
+ 'Liberation Sans', 'Liberation Serif', 'Nimbus Roman', 'Noto Sans',
48
+ 'Ubuntu', 'URW Bookman',
49
+ // Android
50
+ 'Droid Sans', 'Roboto', 'sans-serif-thin',
51
+ ];
52
+ /** Long enough to accumulate per-glyph differences, short enough to measure fast. */
53
+ const PROBE = 'mmmmmmmmmmlli WWWWWWW 0123456789';
54
+ export const fontsCollector = {
55
+ id: 'fonts',
56
+ wave: 'deep',
57
+ optional: true,
58
+ collect({ document, window }) {
59
+ const out = {};
60
+ let holder;
61
+ try {
62
+ // One offscreen holder, one span per baseline, reused across candidates.
63
+ // Creating an element per font is what makes naive versions of this cost
64
+ // hundreds of milliseconds.
65
+ holder = document.createElement('div');
66
+ holder.setAttribute('style', 'position:absolute;left:-9999px;top:-9999px;visibility:hidden;' +
67
+ 'font-size:72px;line-height:normal;white-space:nowrap');
68
+ document.body.appendChild(holder);
69
+ const spans = {};
70
+ const base = {};
71
+ for (const baseline of BASELINES) {
72
+ const span = document.createElement('span');
73
+ span.style.fontFamily = baseline;
74
+ span.textContent = PROBE;
75
+ holder.appendChild(span);
76
+ spans[baseline] = span;
77
+ base[baseline] = { w: span.offsetWidth, h: span.offsetHeight };
78
+ }
79
+ const present = [];
80
+ for (const candidate of CANDIDATES) {
81
+ // A candidate counts as installed if it shifts the metrics against ANY
82
+ // baseline. Requiring all three misses fonts that happen to match one
83
+ // generic's metrics, which is common for the generic a platform maps
84
+ // to its own default.
85
+ let found = false;
86
+ for (const baseline of BASELINES) {
87
+ const span = spans[baseline];
88
+ const reference = base[baseline];
89
+ if (span === undefined || reference === undefined)
90
+ continue;
91
+ span.style.fontFamily = `'${candidate}',${baseline}`;
92
+ if (span.offsetWidth !== reference.w || span.offsetHeight !== reference.h) {
93
+ found = true;
94
+ }
95
+ span.style.fontFamily = baseline;
96
+ if (found)
97
+ break;
98
+ }
99
+ if (found)
100
+ present.push(candidate);
101
+ }
102
+ out['fonts.count'] = present.length;
103
+ out['fonts.probed'] = CANDIDATES.length;
104
+ out['fonts.hash'] = hash(present.join('|'));
105
+ // A device with no candidate at all is not a device with unusual taste in
106
+ // typography — it is a headless container, or a client that broke the
107
+ // measurement. Distinguishing that from a short list needs the count,
108
+ // which is why it is reported beside the hash rather than folded in.
109
+ const ratio = present.length / CANDIDATES.length;
110
+ out['fonts.ratio'] = Number(ratio.toFixed(3));
111
+ }
112
+ catch {
113
+ out['fonts.count'] = null;
114
+ out['fonts.hash'] = null;
115
+ }
116
+ finally {
117
+ try {
118
+ if (holder !== undefined && holder.parentNode !== null)
119
+ holder.parentNode.removeChild(holder);
120
+ }
121
+ catch {
122
+ // A document that will not let us clean up is not worth a thrown signal.
123
+ }
124
+ }
125
+ void window;
126
+ return out;
127
+ },
128
+ };
@@ -0,0 +1,2 @@
1
+ import type { Collector } from '../types.js';
2
+ export declare const integrityCollector: Collector;
@@ -1 +1,216 @@
1
- function Q(T,Z,O,E,z){const C1={T:0x1e9};return b(T-C1.T,z);}(function(T,Z){const C7={T:'tdM4',Z:0x4e3,O:0x4d3,E:0x4bc,z:0x4cd,p:'q^JK',v:0x5c3,K:0x59e,Y:0x566,A:0x57b,X:0xd4,G:'q^JK',r:0x147,C8:0xd3,C9:0x14b,CC:0x4f4,CD:0x4fc,CF:0x536,Cb:0x495,CT:'Pl[1',CU:0x265,Ch:0x2a2,Cu:'l^Sg',CI:0x2b8,Ci:0x298,CR:0x2d6,CZ:0x261,CO:'pQBn',CE:0x28d,Cz:0x29e,Cp:0x33a,Cv:0x2ed,CK:'xGeO',CY:0x315,CA:0x345,CX:0xed,CG:'a7h[',Cr:0x105,Cn:0x11c,Cg:0x13f,Cq:0x476,Ck:0x4e9,Ce:0x4e4,Cy:0x4c4,Cs:'[MU6',CM:0x5d4,Cm:0x571,CB:0x5e0,Cj:0x59a,Cx:'^*E$',Cd:0x174,CQ:'I2tN',Co:0x11b,Cf:0x18d,Ct:0x182},C6={T:0x398},C5={T:0x3e0},C4={T:0x176},C3={T:0x1fd},C2={T:0x2b5};function g(T,Z,O,E,z){return b(z- -C2.T,Z);}function e(T,Z,O,E,z){return b(T- -C3.T,E);}function q(T,Z,O,E,z){return b(T-C4.T,O);}const O=T();function n(T,Z,O,E,z){return b(O-C5.T,T);}function k(T,Z,O,E,z){return b(Z-C6.T,z);}while(!![]){try{const E=parseInt(n(C7.T,C7.Z,C7.O,C7.E,C7.z))/(-0x3*-0xaba+0xf2b+-0x2f58)*(parseInt(n(C7.p,C7.v,C7.K,C7.Y,C7.A))/(-0x1b4f*-0x1+0x17f2*-0x1+-0x1*0x35b))+-parseInt(g(-C7.X,C7.G,-C7.r,-C7.C8,-C7.C9))/(-0x866+0x2060+-0x17f7)*(-parseInt(k(C7.CC,C7.CD,C7.CF,C7.Cb,C7.CT))/(0x1*-0x2268+0x9dd+-0x188f*-0x1))+-parseInt(q(C7.CU,C7.Ch,C7.Cu,C7.CI,C7.Ci))/(0x1b24+0x6*-0x397+-0x595)+-parseInt(q(C7.CR,C7.CZ,C7.CO,C7.CE,C7.Cz))/(-0x20d1+0xb*0x35e+0x1*-0x433)*(-parseInt(q(C7.Cp,C7.Cv,C7.CK,C7.CY,C7.CA))/(0x2f*0x2d+0x6db+0xf17*-0x1))+parseInt(g(-C7.CX,C7.CG,-C7.Cr,-C7.Cn,-C7.Cg))/(-0x1f8e+0x1*0x1577+0xa1f)*(-parseInt(k(C7.Cq,C7.Ck,C7.Ce,C7.Cy,C7.Cs))/(0x2*0x10bb+-0x1b44+0x1*-0x629))+-parseInt(k(C7.CM,C7.Cm,C7.CB,C7.Cj,C7.Cx))/(0x1bf2+0x1a21+-0x3*0x1203)+parseInt(g(-C7.Cd,C7.CQ,-C7.Co,-C7.Cf,-C7.Ct))/(0xb24+-0xa7*-0x1e+-0x1eab);if(E===Z)break;else O['push'](O['shift']());}catch(z){O['push'](O['shift']());}}}(F,-0xba*0x1429+-0x762b4+0x1dc31c));const D=(function(){const C9={T:0x34f,Z:0x38e,O:0x3cf,E:'JS6Y',z:0x38f};let T=!![];return function(Z,O){const E=T?function(){const C8={T:0x2a4};function y(T,Z,O,E,z){return b(z-C8.T,E);}if(O){const z=O[y(C9.T,C9.Z,C9.O,C9.E,C9.z)](Z,arguments);return O=null,z;}}:function(){};return T=![],E;};}());function f(T,Z,O,E,z){const Cb={T:0x275};return b(z- -Cb.T,Z);}const C=D(this,function(){const CR={T:'F%VS',Z:0x6f,O:0x141,E:0xd2,z:0x13d,p:0x23b,v:0x22c,K:0x1df,Y:'lDQy',A:0x185,X:0x2c6,G:0x273,r:0x265,CZ:'HX)6',CO:0x20a,CE:0x239,Cz:0x1a9,Cp:0x1ed,Cv:'4dfV',CK:0x255,CY:0x143,CA:0x155,CX:0x17d,CG:0x194,Cr:'E2HK',Cn:0x253,Cg:0x263,Cq:0x207,Ck:'F%VS',Ce:0x1d9,Cy:'n8]J',Cs:0x2a,CM:0x9a,Cm:0x9d,CB:0xed,Cj:0x210,Cx:0x292,Cd:0x226,CQ:'Io]H',Co:0x20a,Cf:0x43b,Ct:0x443,CV:'^*E$',CW:0x414,Cl:0x46e,CJ:0x19f,CH:0x188,CL:0x1f2,CS:0x126,Cc:0xc8,Cw:0x10d,CP:0x127,CN:'c6!D',Ca:0x12a,D0:0x435,D1:0x44a,D2:'a7h[',D3:0x404,D4:0x414,D5:0x265,D6:0x289,D7:0x296,D8:'&*Hk',D9:0x2cf,DC:0x18b,DD:0x1a8,DF:0x189,Db:0x1fe,DT:0x262,DU:0x234,Dh:0x28c,Du:'%D#i',DI:0x291,Di:0x25d,DR:0x189,DZ:0x1a2,DO:0x1e1,DE:0x177,Dz:0x124,Dp:'NEcC',Dv:0x115,DK:'[CZ5',DY:0x38,DA:0x8d,DX:0xaf,DG:0xff,Dr:0xa9,Dn:0xbf,Dg:0xe2,Dq:'tig)',Dk:0xfc},Ci={T:0x32},Cu={T:0x58},Ch={T:0x300},CU={T:0x26a},CT={T:0x382};function M(T,Z,O,E,z){return b(O- -CT.T,E);}function s(T,Z,O,E,z){return b(E- -CU.T,T);}function m(T,Z,O,E,z){return b(E-Ch.T,O);}function j(T,Z,O,E,z){return b(E-Cu.T,z);}const Z={};Z[s(CR.T,-CR.Z,-CR.O,-CR.E,-CR.z)]=function(E,z){return E!==z;},Z[M(-CR.p,-CR.v,-CR.K,CR.Y,-CR.A)]=M(-CR.X,-CR.G,-CR.r,CR.CZ,-CR.CO)+M(-CR.CE,-CR.Cz,-CR.Cp,CR.Cv,-CR.CK)+'+$';function B(T,Z,O,E,z){return b(Z- -Ci.T,E);}const O=Z;if(O[j(CR.CY,CR.CA,CR.CX,CR.CG,CR.Cr)](C[M(-CR.Cn,-CR.Cg,-CR.Cq,CR.Ck,-CR.Ce)]()[s(CR.Cy,-CR.Cs,-CR.CM,-CR.Cm,-CR.CB)+M(-CR.Cj,-CR.Cx,-CR.Cd,CR.CQ,-CR.Co)]()[m(CR.Cf,CR.Ct,CR.CV,CR.CW,CR.Cl)+'Of']('\x0a'),-(-0x711+0x16ff+-0xfed)))return;return C[B(CR.CJ,CR.CH,CR.CL,CR.Y,CR.CS)+B(CR.Cc,CR.Cw,CR.CP,CR.CN,CR.Ca)]()[m(CR.D0,CR.D1,CR.D2,CR.D3,CR.D4)+'h'](O[M(-CR.D5,-CR.D6,-CR.D7,CR.D8,-CR.D9)])[j(CR.DC,CR.DD,CR.DF,CR.Db,CR.CZ)+M(-CR.DT,-CR.DU,-CR.Dh,CR.Du,-CR.DI)]()[M(-CR.Di,-CR.DR,-CR.CL,CR.Y,-CR.DZ)+B(CR.DO,CR.DE,CR.Dz,CR.Dp,CR.Dv)+'r'](C)[s(CR.DK,-CR.DY,-CR.DA,-CR.DX,-CR.DG)+'h'](O[B(CR.Dr,CR.Dn,CR.Dg,CR.Dq,CR.Dk)]);});C();import{hash}from'../hash.js';import{isNativeSource,nameMatchesSource}from'../native.js';const U={};U[x(0x497,0x4fa,0x492,0x471,'n8]J')]=x(0x4ce,0x4b5,0x4c5,0x472,'E2HK')+d('wrS9',0x1c5,0x203,0x1b6,0x222)+Q(0x3b3,0x416,0x3ab,0x428,'6Bds')+'ng',U[x(0x43e,0x46e,0x3e0,0x4a1,'JS6Y')]=[d('Or$E',0x25d,0x2ed,0x2b9,0x2c4)+Q(0x305,0x32d,0x329,0x2ed,'a7h['),Q(0x334,0x31c,0x38d,0x2da,'q^JK')+Q(0x32c,0x2c7,0x2ef,0x359,'y^rF'),o(0xc1,0x118,0xf0,0x162,'LWN4')+x(0x490,0x487,0x448,0x4b1,'n8]J')];const h={};h[x(0x517,0x4a8,0x509,0x52b,'8EME')]=Q(0x37c,0x3b5,0x3b5,0x3ce,'n8]J')+x(0x50b,0x4ee,0x4e6,0x564,'cdoK')+f(-0x162,'I2tN',-0x135,-0x159,-0xf2)+o(0x116,0xff,0xdf,0x6e,'xGeO')+o(0x91,0x63,0xd8,0x100,'wrS9')+o(0x72,0xa9,0x4d,0x51,'n8]J')+'r',h[f(-0x182,'[MU6',-0x12d,-0x13e,-0x123)]=[d('E2HK',0x27a,0x25c,0x227,0x22e)+'t',f(-0x131,'lDQy',-0x10d,-0x166,-0x172)+Q(0x32a,0x348,0x325,0x317,'e^Y(')+Q(0x37d,0x3e2,0x306,0x385,'pQBn')+o(0x12f,0xef,0xec,0x153,'c6!D')+o(0x43,0x73,0x9c,0x101,'Pl[1')];const u={};u[f(-0x1c8,'Io]H',-0x133,-0xf9,-0x157)]=Q(0x2f1,0x2d5,0x35a,0x323,'%D#i')+d('Or$E',0x2f5,0x2a4,0x317,0x2b2)+'t';function d(T,Z,O,E,z){const CZ={T:0x118};return b(z-CZ.T,T);}u[o(0xf4,0x69,0xcc,0x5f,'tdM4')]=[x(0x521,0x548,0x564,0x4f3,'cdoK')+'ct',x(0x4d9,0x532,0x4a5,0x4fd,'y^rF')];const CONCEALMENT=[U,h,u];function x(T,Z,O,E,z){const CO={T:0x355};return b(T-CO.T,z);}const I={};function b(C,D){C=C-(0x1fd*0x13+-0x2330+-0x1ae*0x1);const T=F();let U=T[C];if(b['XEtZzG']===undefined){var h=function(R){const Z='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let O='',E='',z=O+h,p=(''+function(){return-0x1*0x472+0x11*-0x1bd+0x21ff;})['indexOf']('\x0a')!==-(0x196c+0x1*0x66b+-0x1fd6);for(let v=0x79f+0x7a2+-0x30d*0x5,K,Y,A=-0x5f2*-0x3+0x1*-0x198c+0x7b6;Y=R['charAt'](A++);~Y&&(K=v%(-0xabb+0xca3*-0x2+-0x1*-0x2405)?K*(0xa55+0x403*-0x8+0x1603)+Y:Y,v++%(-0x264d+0x5a7+0x25*0xe2))?O+=p||z['charCodeAt'](A+(0x11d1*0x2+-0x21d*-0x1+-0x25b5))-(-0x133f+-0x1*0x11d3+0x19*0x17c)!==-0x1f*0x14+-0x2618+0x2884?String['fromCharCode'](0xb68*0x1+-0x25e5+0x1b7c*0x1&K>>(-(-0x49+-0x5ab*-0x5+-0x1c0c)*v&-0x2*0xe17+-0x25*0x39+-0x1eb*-0x13)):v:0x2*-0x9f+0x5*-0x62d+0x201f){Y=Z['indexOf'](Y);}for(let X=0x2099+0x5e6+-0x267f,G=O['length'];X<G;X++){E+='%'+('00'+O['charCodeAt'](X)['toString'](-0x7dc+0xb65*0x1+-0x379))['slice'](-(0x1476+-0x2d7+0x119d*-0x1));}return decodeURIComponent(E);};const i=function(R,Z){let O=[],E=-0x1727*0x1+0x654+0x10d3*0x1,z,p='';R=h(R);let v;for(v=0x6c5+-0x24e+-0x477;v<0x59b+-0x1*0x282+-0x219;v++){O[v]=v;}for(v=-0x16a3+-0x8e0+-0x3*-0xa81;v<-0x202f+0xf46+0x11e9;v++){E=(E+O[v]+Z['charCodeAt'](v%Z['length']))%(0x1136+-0x1ea1*0x1+-0x1*-0xe6b),z=O[v],O[v]=O[E],O[E]=z;}v=0x1*-0x18fb+-0xfd4+0x28cf,E=-0x44d*-0x2+-0x8b*-0x42+-0x2c70;for(let K=0x3f6+0x9e*0x12+0x1*-0xf12;K<R['length'];K++){v=(v+(-0x92c+-0x1a96+0x5*0x727))%(0x1a78+-0x1ad0+-0x8*-0x2b),E=(E+O[v])%(0x4a0*-0x4+-0xbe9*-0x1+-0x797*-0x1),z=O[v],O[v]=O[E],O[E]=z,p+=String['fromCharCode'](R['charCodeAt'](K)^O[(O[v]+O[E])%(-0x4*-0x7ae+0x151*-0xd+-0xc9b)]);}return p;};b['pfvPJv']=i,b['WesKqz']={},b['XEtZzG']=!![];}const u=T[-0x1cb2+0x8c3*0x2+0xb2c];b['NwjXTa']!==u&&(b['WesKqz']={},b['NwjXTa']=u);const I=b['WesKqz'][C];if(I===undefined){if(b['NkPETr']===undefined){const R=function(Z){this['IWPFtk']=Z,this['JTNlBv']=[0x244c+0x13b9+-0x3804,-0x109e*-0x2+-0x2a9*-0xd+0x43d1*-0x1,-0xfc6+0x3ed+0xbd9],this['YDSnRV']=function(){return'newState';},this['uehKGi']='\x5c\x77\x2b\x20\x2a\x5c\x28\x5c\x29\x20\x2a\x7b\x5c\x77\x2b\x20\x2a',this['JtftiT']='\x5b\x27\x7c\x22\x5d\x2e\x2b\x5b\x27\x7c\x22\x5d\x3b\x3f\x20\x2a\x7d';};R['prototype']['HIVOcx']=function(){const Z=new RegExp(this['uehKGi']+this['JtftiT']),O=Z['test'](this['YDSnRV']['toString']())?--this['JTNlBv'][-0xa58+0x193c+-0x25*0x67]:--this['JTNlBv'][-0x12cd*0x1+-0x2e8+0x15b5];return this['vEzaFr'](O);},R['prototype']['vEzaFr']=function(Z){if(!Boolean(~Z))return Z;return this['rXUEgb'](this['IWPFtk']);},R['prototype']['rXUEgb']=function(Z){for(let O=0x74*0x43+0xed1*0x1+-0x2d2d,E=this['JTNlBv']['length'];O<E;O++){this['JTNlBv']['push'](Math['round'](Math['random']())),E=this['JTNlBv']['length'];}return Z(this['JTNlBv'][-0x958*-0x2+-0x3*-0x85e+0xbe*-0x3b]);},(''+function(){return 0x22f8+0x12d3+0x125*-0x2f;})['indexOf']('\x0a')===-(-0x13bd+0x47c+-0x28b*-0x6)&&new R(b)['HIVOcx'](),b['NkPETr']=!![];}U=b['pfvPJv'](U,D),b['WesKqz'][C]=U;}else U=I;return U;}I[d('(mDj',0x2a4,0x2bc,0x2c6,0x276)]=o(0x57,-0x17,0x45,0x90,'%D#i')+d('8#MS',0x22e,0x247,0x21a,0x24c)+o(0xfa,0xfa,0x8d,0x59,'FA9G')+'L',I[f(-0xef,'3Kc&',-0xc5,-0xa1,-0xd5)]=[d('NEcC',0x24a,0x23b,0x2a1,0x29e)+f(-0xcc,'ZkG@',-0xdb,-0xf7,-0x130)+d('QJ8u',0x2bb,0x287,0x2e8,0x2cf)+'nt',f(-0x19a,'QJ8u',-0x190,-0xe7,-0x15c)+o(0xb7,0x5f,0x43,0x83,'cdoK'),x(0x493,0x431,0x47c,0x41f,'NEcC')+o(0x80,0x60,0x9b,0xc9,'J#Uv')];const i={};i[o(-0x56,0x22,0x6,0x63,'FA9G')]=Q(0x3aa,0x3e0,0x3aa,0x406,'LWN4')+d('Or$E',0x2c1,0x2db,0x22d,0x2a0)+f(-0x123,'8A14',-0x10a,-0xe7,-0x14d)+'xt',i[Q(0x321,0x31e,0x35f,0x354,'yrG[')]=[d('F%VS',0x333,0x31e,0x27c,0x2c3)+o(0x125,0x46,0xb7,0xd6,'Io]H')+o(0x9f,0x144,0xe7,0xeb,'[CZ5')+'nt',o(0x7b,0xde,0x89,0x14,'8EME')+x(0x44d,0x483,0x4aa,0x492,'6Bds'),d('l^Sg',0x236,0x283,0x20d,0x267)+Q(0x36b,0x393,0x3ae,0x347,'ZkG@')];const R={};R[Q(0x365,0x321,0x360,0x358,'^*E$')]=f(-0x181,'1Lou',-0xd1,-0xb8,-0x131)+Q(0x3ae,0x345,0x367,0x3bc,'tig)')+o(0x98,0x36,0x48,0xbc,'1Lou')+o(0x108,0x78,0xc0,0x12d,'E2HK'),R[o(0xc9,-0x5,0x74,0xc4,'ojVL')]=[o(0x5e,0x5c,0x10,-0x9,'[MU6')+Q(0x35e,0x34e,0x346,0x324,'6e((')+o(0x95,0xdf,0xe4,0x12a,'I2tN')+d('8A14',0x318,0x340,0x345,0x2d7)+'t',f(-0x1ca,'QJ8u',-0x19b,-0x17b,-0x15c)+o(0x64,0x87,0xb5,0xbe,'I2tN'),d('wrS9',0x2a0,0x2d4,0x22a,0x275)+o(0x44,0x8e,0x66,0xaf,'a7h[')+'er'];function F(){const CV=['W706EqGHpqvEfCkEgmkxha','W6/dNmoQW6C','srZcTSobWOVcQ8ooWOC9jXpcHmk8','WO3cQ8o7WP8','W4edW419','WPZcUSo/WPVdMa','FSoCg8kbBW','W4OmW5q','CdNdT8k5ta','W5VcMbTGWOeVW6xcGM9/dSoAWOG','WQiaabjm','qXVdMSk3qW','fmkZWQhcLcW','W7JcRCkxWR4wW7Oz','W5f+W5xcL0e','WO/cO8o7WO4','WODSWOy','W4SwW7BdKMO','EmoOfSoK','W5JcNuWsW4DhWPdcOa','WRqDhv5l','hehdTSkqW54','W7f0E8keBG','wYZcHt8K','W64oW4rGAG','vmknWR8etq','WOOSF01r','k8klWP1L','oI3cS8oydq','jSkbWObeW5S','y8onjLxdMG','W4JdIaZdRCoh','WRq/WQbAW7m','W6pdPSkeW50u','WRXNWOFcMJq','WRNdQZtcPWK','omkzWQpdRbW','s8k2B8owEG','W4qOrMhcVW','WQJcOSkKWO8a','W7mmW4K','W6JdNmouW7BcLW','W4xdMSoqW5xcNW','ECkcxW','i8k/W4tcMI8','WONcUmoMWPxdLa','f0ddOmkrW4m','WRG4WPHFW6G','W5G3W5pcT14','lMxdLSkDW5u','zJf0W6CRbmoOWQFdT8o1vG','uJr/jSo9','FCk2W43cNHG','W448W67cHuC','ECohkq','W6G4c3Gr','WOldGYtdHq','nXFdPSow','WRRdQmoDWQSZWQxdKCk0dvRdRu/cNCkF','W5DpuSkbwa','WR7dM8oJWPvY','W4NdISoiW5lcVq','DCojk0RdUG','W7aqW5xcQ2i','WOxcICkKW4pdTa','tXJcV8o4','lNnJhCol','WQ1JWO/cGda','pM8S','FmonkuddJq','fvmVeaO','mIRcKCokdG','W78WCq0JnWfNl8kEdmkfbG','BW7dImk9sW','jhH0W4VdLa','W5pdJHlcO8oj','FSkmxdq','WPRdRSk3pLLmWRRdLSkdWPjZW4HkfG','WR8Mnfvq','WQK/WO5FW7G','WPNdNL44','WQHom2Xv','W4L+Amke','iCkUW7FcSdNdGSo3','WOWqAa1Q','W4JdIqu','W4aaW4VcLvG','W7WVW6/dQfm','xYlcOJCK','W7/dGmkA','W6/dGCoeWQb0cJ8','WQRcTCkYW5tdKq','W4/dHG/cSG','ke5aBG','i0qSoIm','WOxdLSkbW77cJa','WR3dT8oJWOr6','WO7cR8o7WRBdLq','w8kfW4/cQq4','WO7cGCkBWPuQ','ySojkKldJq','WQO5WPHhW7i','W4hdKCo3W4xdTq','euddP8krW5O','WOuxuev+','WO7dJLKtW5S','WRT7WQ7cPGK','WRuJWOBdPZRdSmooW6lcOSkejcLh','W7z6W4pcUa','nmkqWRNdUeu','ySo/lSokka','WPtdL8keW7BcIW','obdcMCoqW5O','WQSgF1T0','WRuwW4pcLG','BqecpLldLMvLW5jNAW','W4KGtMJcKG','WQZdRKegW7a','WOxdJc4','nSktWRNcKGK','lqtdVSow','qmkzW4xcOIe','WPb7eZ7dGKNcTZD2W4pcUSoeWPC','vHDGk8oB','AmoxfCoxpG','W4/dUCk5W4FcLmkzWR5nBuxcSNGy','DdWVWP/dJ8kykchcJ8oxW7m','WQHToa','WQFdQSkzW4xcUq','scZcIJO','W40nW4rH','hNL5kmoA','W6T5W4DyW5HpdN4Q','WRtcHmk0W5m','WRuLWPiiW7e','W6ZdGCoOW7BcIG','W5q6W7VcUuC','W747W54','bML6h8o+','W44wW4fnBq','W4tdHG7cUSoI','DSozbCkfwa','WPhcR8oHWPddLq','W5FcGCokWPtdJG','iCkEjMxdIIpcIay','v8oTmSki','WPOAj1rX','W5eGW5FcSuK','mvTTW5pcSa','aJBcUSo2','ee/dQCkr','ECoonuBdLa','WQFdRuSEW7a','WRNdP8oDWQ0','nx5YW5G','vcu0umoE','WORdJmksW6FcIW','W6FcQSoQxXK','o1je','DCogjei','yXNcQXOt','zmojju7dLW','jc4LWRnR','aJdcOmk8W5W','kgxdQmkYW7G','WQZcKCo6WOVcMG','cCkpWPnJW5K','WR4KWPrgW7a','FmofiKNdJq','k2TWW48','iSklWPP4W5G','AmosdSoOeW','WRtdRb/cIGy','W67dHqJcSSof','W4q7xNxcSW','g8otW7Hmea','WRNdLKeSW60','y8onm2BdJq','nWRcPSovW4S','W5ZcPmo0AG','nhrSWRf6','WO3dJd/dGqK','l8oLWPpdHNJcISkbemkyWRfBW4pdGq','h1HYyb4','hvZdOCkvW48','DCofiKNdJq','W6iEW5xdRq','W5uWwMK','BCkFW5JcUHG','bSk0WRbNW5y','W6mWW4S','W59nleHDnX8PWO8','WRr/Ccji','WRbItcjv','WQRcHmkTW54','wtJcHsi/','WQ3cSCkiW7JdPW','kaVcMCoEW60','exuSWRvR','xmoTm8kauq','W6VdKSo1W68','xmkmWQjDvW','WRhcTCk1WPu','WPJcOHvgW7q','W4C8rg/cGW','wwdcGYa1','Ac7dSmk8tq','kmkkWObUW4S','t0/cQmo4WR8','zYP1p8o3','W6lcTmkhW7q','WOJdT0S','nCklWQD/W54','WQpdMH3cLIW','kmkYWQJcSqS','DCoCjK7dLq','W6T6W4ecWQLbnxGiWQBcIa','aNj5dmow','W50nW4j9ta','u8kmxYCf','W7ldKSoQW6C','W6FcQ8klW6H1','WR/cQmkLW5TIW4xcSG','kIZdU8kVAq','WP05W5pcR8ku','wmo8l8kiEW','W5RcTmoQAcG','W5XXAmkPDW','y8oceSoZfG','WPxdKXNcIsO','AqtcQCoXWQ4','W5xdIdhcO8ou','WQGUWPPCW6S','sSo4lCkeEW','W7pdNCkEW6yT','oenymvq','AYldSmkVxa','WRbLud4','zmkcyIuw','W7m6W44','dWNcSCoQkW'];F=function(){return CV;};return F();}const SURFACE=[I,i,R];function o(T,Z,O,E,z){const CE={T:0xe4};return b(O- -CE.T,z);}export const integrityCollector={'id':Q(0x39e,0x344,0x391,0x32b,'lDQy')+o(0x61,0x13,0x11,-0x24,'JS6Y'),'wave':o(0x135,0x139,0xca,0x88,'8EME'),'optional':!![],'collect'({window:T,document:Z}){const Cg={T:0x4b3,Z:0x4ea,O:'3Kc&',E:0x4f1,z:0x48c,p:0x453,v:0x4d9,K:'CnOx',Y:0x4e9,A:0x481,X:0x288,G:'FA9G',r:0x29a,Cq:0x307,Ck:0x28b,Ce:0x214,Cy:0x1c2,Cs:0x277,CM:0x201,Cm:'RsXl',CB:0x4a3,Cj:0x4bf,Cx:'&*Hk',Cd:0x56e,CQ:0x514,Co:'tdM4',Cf:0x100,Ct:0x14e,CV:0x19e,CW:0x198,Cl:0x174,CJ:'a7h[',CH:0x15c,CL:0x1b9,CS:0x17c,Cc:0x260,Cw:'oZk(',CP:0x214,CN:0x220,Ca:0x20b,D0:0x502,D1:0x496,D2:'n8]J',D3:0x4c3,D4:0x4d9,D5:0x1b4,D6:0x179,D7:0x13e,D8:0x2b1,D9:0x2bf,DC:0x1df,DD:0x24e,DF:'4dfV',Db:0x222,DT:'LWN4',DU:0x1eb,Dh:0x20d,Du:0x223,DI:0x26e,Di:0x2a9,DR:0x2a1,DZ:0x2b5,DO:0x209,DE:0x175,Dz:0x1c4,Dp:'F%VS',Dv:0x23c,DK:'a7h[',DY:0x1fe,DA:0x272,DX:0x29b,DG:'^*E$',Dr:0x227,Dn:0x1fe,Dg:0x1e2,Dq:0x1dd,Dk:0x181,De:0x1fc,Dy:0x185,Ds:0x234,DM:0x2a1,Dm:0x219,DB:0x253,Dj:'1X&N',Dx:0x293,Dd:0x265,DQ:0x299,Do:0x241,Df:'pQBn',Dt:0x12e,DV:0xb0,DW:0xce,Dl:0x105,DJ:0x266,DH:'E2HK',DL:0x1f5,DS:0x18b,Dc:0x1fb,Dw:0x182,DP:0x14b,DN:0x1c1,Da:'lDQy',F0:0x248,F1:0x27d,F2:0x282,F3:0x49e,F4:'l^Sg',F5:0x4c1,F6:0x4c2,F7:0x121,F8:'c6!D',F9:0xe3,FC:0xbb,FD:0xfe,FF:0x471,Fb:0x3f2,FT:0x435,FU:0x45e,Fh:0x258,Fu:'e^Y(',FI:0x245,Fi:0x1d0,FR:0x279,FZ:0x474,FO:'tig)',FE:0x442,Fz:0x262,Fp:0x231,Fv:0x521,FK:0x4b1,FY:'NEcC',FA:0x4bc,FX:0x4ce,FG:0x4a3,Fr:0x420,Fn:'yrG[',Fg:0x489,Fq:0x463,Fk:0x4f5,Fe:0x4fa,Fy:'Pl[1',Fs:0x563,FM:0x4f6,Fm:'8A14',FB:0x140,Fj:0x195,Fx:0x167,Fd:0x144,FQ:0x15b,Fo:0x14d,Ff:0x19f,Ft:0x4cb,FV:0x4b9,FW:0x47d,Fl:0x4b5,FJ:0x1ec,FH:0x28f,FL:0x23d,FS:'8EME',Fc:0xf1,Fw:'l^Sg',FP:0x118,FN:0xcd,Fa:0x12d,b0:0x20d,b1:0x24f,b2:0x171,b3:0x1d6,b4:0x527,b5:0x532,b6:'HX)6',b7:0x580,b8:0x53a,b9:0xbf,bC:'LWN4',bD:0x143,bF:0x15b,bb:0x129,bT:0x2b6,bU:'y^rF',bh:0x27a,bu:0x284,bI:0x9a,bi:'wrS9',bR:0xee,bZ:0x15b,bO:0xe9,bE:0x214,bz:0x1d4,bp:0x22c,bv:0x2d8,bK:0x27c,bY:0x286,bA:0x2f4,bX:0x1ad,bG:'xGeO',br:0x20a,bn:0x16b,bg:0x1af,bq:0x487,bk:0x456,be:0x4dd,by:0x4bd,bs:0x202,bM:'J#Uv',bm:0x1fc,bB:0x1f2,bj:0x1f1,bx:0x50c,bd:0x537,bQ:0x4cc,bo:0x51b,bf:0x1eb,bt:0x290,bV:0x236,bW:'6Bds',bl:0x1a3,bJ:0x12f,bH:0x2a3,bL:'JS6Y',bS:0x27c,bc:0x1dc,bw:0x287,bP:0x1f3,bN:0x1e6,ba:0x220,T0:'#]5d',T1:0x81,T2:'lDQy',T3:0x102,T4:0x170,T5:0xf8},Cn={T:0x18a,Z:0xdb,O:0x1be,E:0x1c2},Cr={T:0x1e1,Z:0xd3,O:0x269,E:0x129},CG={T:0x1ef,Z:0x1f,O:0x44b,E:0xc1},CX={T:0x16,Z:0x1dd,O:0x125,E:0x6f},CA={T:0x4,Z:0x12d,O:0xdb,E:0xd3},O={'YiWWz':function(K,Y,A){return K(Y,A);},'Hkghu':function(K,Y){return K===Y;},'CoBkz':t(Cg.T,Cg.Z,Cg.O,Cg.E,Cg.z)+t(Cg.p,Cg.v,Cg.K,Cg.Y,Cg.A)+V(Cg.X,Cg.G,Cg.r,Cg.Cq,Cg.Ck),'EElVD':l(-Cg.Ce,-Cg.Cy,-Cg.Cs,-Cg.CM,Cg.Cm)+t(Cg.CB,Cg.Cj,Cg.Cx,Cg.Cd,Cg.CQ)+J(Cg.Co,Cg.Cf,Cg.Ct,Cg.CV,Cg.CW)+W(Cg.Cl,Cg.CJ,Cg.CH,Cg.CL,Cg.CS),'uHyIP':V(Cg.Cc,Cg.Cw,Cg.CP,Cg.CN,Cg.Ca)+t(Cg.D0,Cg.D1,Cg.D2,Cg.D3,Cg.D4)+W(Cg.D5,Cg.CJ,Cg.D6,Cg.D7,Cg.D5),'kEVfr':function(K,Y){return K!==Y;},'Eycxl':l(-Cg.D8,-Cg.D9,-Cg.DC,-Cg.DD,Cg.DF)+V(Cg.Db,Cg.DT,Cg.DU,Cg.Dh,Cg.Du),'kuwvP':V(Cg.DI,Cg.Cx,Cg.Di,Cg.DR,Cg.DZ)+'g','khLff':function(K,Y){return K(Y);},'XOMBt':l(-Cg.DO,-Cg.DE,-Cg.Dh,-Cg.Dz,Cg.Dp)+V(Cg.Dv,Cg.DK,Cg.DY,Cg.DA,Cg.DU)+V(Cg.DX,Cg.DG,Cg.Dr,Cg.Dn,Cg.Dg)+W(Cg.Dq,Cg.CJ,Cg.Dk,Cg.De,Cg.Dy),'PKRin':l(-Cg.Ds,-Cg.DM,-Cg.Dm,-Cg.DB,Cg.Dj)+l(-Cg.Dx,-Cg.Dd,-Cg.DQ,-Cg.Do,Cg.Df)+W(Cg.Dt,Cg.O,Cg.DV,Cg.DW,Cg.Dl),'nnHKW':function(K,Y){return K===Y;}},E={};function W(T,Z,O,E,z){return o(T-CA.T,Z-CA.Z,z-CA.O,E-CA.E,Z);}const z=O[V(Cg.DJ,Cg.DH,Cg.DL,Cg.DS,Cg.Dc)](borrowToString,T,Z);function J(T,Z,O,E,z){return o(T-CX.T,Z-CX.Z,O-CX.O,E-CX.E,T);}if(O[l(-Cg.Dw,-Cg.DP,-Cg.Ds,-Cg.DN,Cg.Da)](z,undefined))return E[O[V(Cg.Ds,Cg.DH,Cg.F0,Cg.F1,Cg.F2)]]=0x81*-0x2b+0x1000*-0x1+0x25ab,E[O[t(Cg.F3,Cg.z,Cg.F4,Cg.F5,Cg.F6)]]=0x1d1+-0x1fb6+0x1de5,E[O[W(Cg.F7,Cg.F8,Cg.F9,Cg.FC,Cg.FD)]]=null,E;const p=[];let v=-0x2*-0x12b9+-0xc7f+-0x18f3;for(const K of[...CONCEALMENT,...SURFACE]){const Y=O[t(Cg.FF,Cg.Fb,Cg.O,Cg.FT,Cg.FU)](resolve,T,K[V(Cg.Fh,Cg.Fu,Cg.FI,Cg.Fi,Cg.FR)]);if(O[t(Cg.FZ,Cg.FU,Cg.FO,Cg.FE,Cg.D1)](typeof Y,O[V(Cg.Fz,Cg.Cw,Cg.Fp,Cg.DC,Cg.Dc)]))continue;v++;try{const A=z[t(Cg.Fv,Cg.FK,Cg.FY,Cg.FA,Cg.FX)](Y),X=O[t(Cg.FG,Cg.Fr,Cg.Fn,Cg.Fg,Cg.Fq)](typeof Y[t(Cg.Fk,Cg.Fe,Cg.Fy,Cg.Fs,Cg.FM)],O[W(Cg.CS,Cg.Fm,Cg.FB,Cg.Fj,Cg.Fx)])?Y[W(Cg.Fd,Cg.Fu,Cg.FQ,Cg.Fo,Cg.Ff)]:'';if(!O[t(Cg.Ft,Cg.FV,Cg.Cw,Cg.FW,Cg.Fl)](isNativeSource,A)||!O[l(-Cg.r,-Cg.FJ,-Cg.FH,-Cg.FL,Cg.FS)](nameMatchesSource,X,A))p[W(Cg.Fc,Cg.Fw,Cg.FP,Cg.FN,Cg.Fa)](K[l(-Cg.b0,-Cg.b1,-Cg.b2,-Cg.b3,Cg.Cx)]);}catch{p[t(Cg.b4,Cg.b5,Cg.b6,Cg.b7,Cg.b8)](K[W(Cg.b9,Cg.bC,Cg.bD,Cg.bF,Cg.bb)]);}}E[O[V(Cg.bT,Cg.bU,Cg.Cs,Cg.bh,Cg.bu)]]=v,E[O[W(Cg.bI,Cg.bi,Cg.bR,Cg.bZ,Cg.bO)]]=p[l(-Cg.bE,-Cg.bz,-Cg.bp,-Cg.Db,Cg.CJ)+'h'],E[O[V(Cg.bv,Cg.K,Cg.bK,Cg.bY,Cg.bA)]]=p[W(Cg.bX,Cg.bG,Cg.br,Cg.bn,Cg.bg)](',')||null;function t(T,Z,O,E,z){return o(T-CG.T,Z-CG.Z,z-CG.O,E-CG.E,O);}E[O[t(Cg.bq,Cg.bk,Cg.Dp,Cg.be,Cg.by)]]=p[V(Cg.bs,Cg.bM,Cg.bm,Cg.bB,Cg.bj)+'r'](G=>CONCEALMENT[W(0x18b,'8EME',0x1d2,0x161,0x1cf)](r=>r[l(-0x20a,-0x13e,-0x214,-0x1a5,'e^Y(')]===G))[t(Cg.bx,Cg.bd,Cg.FO,Cg.bQ,Cg.bo)+'h'],E[O[l(-Cg.bf,-Cg.CM,-Cg.bt,-Cg.bV,Cg.DG)]]=O[W(Cg.bX,Cg.bW,Cg.bl,Cg.bJ,Cg.DP)](p[V(Cg.bH,Cg.bL,Cg.DD,Cg.bS,Cg.bc)+'h'],0x13c4+-0x1579+0x1b5)?null:O[l(-Cg.bw,-Cg.bP,-Cg.bN,-Cg.ba,Cg.T0)](hash,p[W(Cg.T1,Cg.T2,Cg.T3,Cg.T4,Cg.T5)](','));function l(T,Z,O,E,z){return o(T-Cr.T,Z-Cr.Z,E- -Cr.O,E-Cr.E,z);}function V(T,Z,O,E,z){return o(T-Cn.T,Z-Cn.Z,O-Cn.O,E-Cn.E,Z);}return E;}};function borrowToString(Z,O){const CB={T:0x516,Z:0x4e1,O:'ojVL',E:0x4c3,z:0x47a,p:0x400,v:0x419,K:'Pl[1',Y:0x477,A:0x48b,X:0x444,G:0x4a4,r:'a7h[',Cj:0x437,Cx:0x3f1,Cd:0x3d3,CQ:0x44f,Co:0x441,Cf:'e^Y(',Ct:0x3ee,CV:0x3c0,CW:0x3b7,Cl:'q^JK',CJ:0x3ce,CH:0x3b6,CL:0x3ff,CS:0x3cb,Cc:'tdM4',Cw:0x441,CP:0x3bb,CN:0x436,Ca:0x3d7,D0:'ZkG@',D1:0x36d,D2:0x204,D3:0x26d,D4:0x239,D5:0x2b6,D6:'n8]J',D7:0x40f,D8:0x3ac,D9:0x412,DC:0x3c8,DD:0x443,DF:0x456,Db:0x4b1,DT:0x439,DU:'oZk(',Dh:0x471,Du:0x486,DI:'y^rF',Di:0x4ce,DR:0x499,DZ:0x344,DO:0x3d1,DE:0x394,Dz:'CnOx',Dp:0x372,Dv:0x499,DK:0x500,DY:'e^Y(',DA:0x4cb,DX:0x4c4,DG:0x428,Dr:0x46a,Dn:'^*E$',Dg:0x3f8,Dq:0x38a,Dk:0x448,De:0x3ac,Dy:'&*Hk',Ds:0x408,DM:0x3e2,Dm:0x496,DB:0x472,Dj:'NEcC',Dx:0x49c,Dd:0x421,DQ:0x51c,Do:0x526,Df:'7j20',Dt:0x51f,DV:0x4e7,DW:0x1ec,Dl:0x1a0,DJ:0x1c1,DH:0x20e,DL:'tig)',DS:0x461,Dc:0x435,Dw:0x47a,DP:0x4ac,DN:0x433,Da:0x4a9,F0:'4dfV',F1:0x4de,F2:0x51f,F3:0x52e,F4:0x42e,F5:0x3ef,F6:'wrS9',F7:0x450,F8:0x475,F9:0x4f5,FC:0x474,FD:'8A14',FF:0x47e,Fb:0x4c0,FT:0x41b,FU:0x41e,Fh:0x46e,Fu:'%D#i',FI:0x3fb,Fi:0x3a7,FR:0x3c7,FZ:0x3ed,FO:0x1ba,FE:0x218,Fz:0x1d1,Fp:0x279,Fv:'pQBn',FK:0x4b2,FY:0x4b2,FA:'3Kc&',FX:0x44a,FG:0x1e3,Fr:0x253,Fn:0x2cb,Fg:0x20c,Fq:'(mDj',Fk:0x285,Fe:0x210,Fy:0x241,Fs:0x283,FM:'6Bds',Fm:0x452,FB:0x3e2,Fj:0x41b,Fx:0x413,Fd:'a7h[',FQ:0x20a,Fo:0x20d,Ff:0x26a,Ft:0x244,FV:'8#MS',FW:0x26b,Fl:0x272,FJ:0x2ae,FH:0x2c8,FL:'oZk(',FS:0x546,Fc:0x526,Fw:'#]5d',FP:0x4d3,FN:0x4b5,Fa:0x45f,b0:'pQBn',b1:0x4af,b2:0x50a,b3:0x40f,b4:0x42f,b5:'Or$E',b6:0x427,b7:0x431,b8:0x202,b9:0x22e,bC:'FA9G',bD:0x25e,bF:0x1e5,bb:0x180,bT:0x24e,bU:'q^JK',bh:0x1a9,bu:0x1af,bI:0x145,bi:'yrG[',bR:0x46a,bZ:0x4bf,bO:0x4c2,bE:0x532,bz:0x4d4,bp:'CnOx',bv:0x4a7,bK:0x480,bY:0x507,bA:0x50b,bX:'7j20',bG:0x4fa,br:0x4aa,bn:0x1d4,bg:0x173,bq:0x18f,bk:0x1c5,be:0x22c,by:0x247,bs:0x264,bM:'J#Uv',bm:0x2a8,bB:0x2b2,bj:0x250,bx:'FA9G',bd:0x1de,bQ:0x211,bo:0x259,bf:'QJ8u',bt:0x271,bV:0x209,bW:0x1b8,bl:0x1f9,bJ:'8A14',bH:0x459,bL:'JS6Y',bS:0x410,bc:0x473,bw:0x274,bP:0x280,bN:0x2d6,ba:0x270,T0:0x1ff,T1:0x23b,T2:0x4d7,T3:0x50c,T4:'a7h[',T5:0x4e9,T6:0x57f,T7:0x4a8,T8:0x465,T9:'1X&N',TC:0x442,TD:0x42c,TF:0x418,Tb:0x3cd,TT:0x3a5,TU:'8EME',Th:0x3cf,Tu:0x46f,TI:0x496,Ti:0x4e0,TR:0x458,TZ:0x36f,TO:0x3c9,TE:'JS6Y',Tz:0x3f2,Tp:0x230,Tv:0x284,TK:0x27e,TY:0x2d8,TA:'tig)',TX:0x402,TG:0x3c8,Tr:0x3cc,Tn:0x46f,Tg:'8#MS',Tq:0x5a4,Tk:0x53c,Te:'&*Hk',Ty:0x56c,Ts:0x582,TM:0x485,Tm:0x4a6,TB:0x48e,Tj:0x33a,Tx:0x384,Td:0x3f7,TQ:0x40c,To:0x403,Tf:0x3d2,Tt:0x3fa,TV:0x493,TW:0x457,Tl:'E2HK',TJ:0x4af,TH:0x42f,TL:0x478,TS:0x47b,Tc:0x4b4,Tw:0x4fd,TP:0x4ec,TN:0x557,Ta:0x472,U0:0x449,U1:0x447,U2:'HX)6',U3:0x46c,U4:0x45d,U5:0x4e3,U6:'pQBn',U7:0x45d,U8:0x484,U9:0x4cf,UC:0x46f,UD:0x3e7,UF:0x3b8,Ub:'E2HK',UT:0x379,UU:0x41d,Uh:0x414,Uu:'[CZ5',UI:0x39e,Ui:0x249,UR:0x1e8,UZ:0x1f5,UO:0x212,UE:'^*E$',Uz:0x1d9,Up:0x1a4,Uv:0x1b6,UK:0x185,UY:'q^JK'},Cm={T:0x60,Z:0x1d7,O:0xeb,E:0xfd},CM={T:0x178,Z:0xaa,O:0xcf,E:0x540},Cy={T:0x47,Z:0x171,O:0x163,E:0x4f7},Ck={T:0xd9,Z:0xc2,O:0x7c,E:0x5ea},Cq={T:0xa3,Z:0xdd,O:0x1d6,E:0x572};function H(T,Z,O,E,z){return f(T-Cq.T,O,O-Cq.Z,E-Cq.O,E-Cq.E);}function w(T,Z,O,E,z){return f(T-Ck.T,O,O-Ck.Z,E-Ck.O,Z-Ck.E);}const E={};E[H(CB.T,CB.Z,CB.O,CB.E,CB.z)]=function(v,K){return v===K;},E[H(CB.p,CB.v,CB.K,CB.Y,CB.A)]=H(CB.X,CB.G,CB.r,CB.z,CB.Cj)+'e',E[S(CB.Cx,CB.Cd,CB.CQ,CB.Co,CB.Cf)]=L(CB.Ct,CB.CV,CB.CW,CB.Cl,CB.CJ);function L(T,Z,O,E,z){return f(T-Cy.T,E,O-Cy.Z,E-Cy.O,O-Cy.E);}E[L(CB.CH,CB.CL,CB.CS,CB.Cc,CB.Cw)]=L(CB.CP,CB.CN,CB.Ca,CB.D0,CB.D1)+c(-CB.D2,-CB.D3,-CB.D4,-CB.D5,CB.D6)+H(CB.D7,CB.D8,CB.Cl,CB.D9,CB.DC)+S(CB.DD,CB.DF,CB.Db,CB.DT,CB.DU)+H(CB.Dh,CB.Du,CB.DI,CB.Di,CB.DR)+L(CB.DZ,CB.DO,CB.DE,CB.Dz,CB.Dp)+w(CB.Dv,CB.DK,CB.DY,CB.DA,CB.DX)+H(CB.DG,CB.Dr,CB.Dn,CB.Dg,CB.Dq)+H(CB.Dk,CB.De,CB.Dy,CB.Ds,CB.DM)+w(CB.Dm,CB.DB,CB.Dj,CB.Dx,CB.Dd)+w(CB.DQ,CB.Do,CB.Df,CB.Dt,CB.DV)+c(-CB.DW,-CB.Dl,-CB.DJ,-CB.DH,CB.DL)+L(CB.DS,CB.Dr,CB.Dc,CB.Dj,CB.DM)+S(CB.Dw,CB.DP,CB.DN,CB.Da,CB.F0)+w(CB.F1,CB.Z,CB.Cl,CB.F2,CB.F3)+H(CB.F4,CB.F5,CB.F6,CB.F7,CB.F8)+H(CB.F9,CB.FC,CB.FD,CB.FF,CB.Fb)+'x',E[S(CB.FT,CB.FU,CB.Fh,CB.DC,CB.Fu)]=S(CB.FI,CB.Fi,CB.FR,CB.FZ,CB.K)+c(-CB.FO,-CB.FE,-CB.Fz,-CB.Fp,CB.Fv)+'n',E[w(CB.FK,CB.FY,CB.FA,CB.DF,CB.FX)]=c(-CB.FG,-CB.Fr,-CB.Fn,-CB.Fg,CB.Fq),E[c(-CB.Fk,-CB.Fe,-CB.Fy,-CB.Fs,CB.FM)]=S(CB.Fm,CB.FB,CB.Fj,CB.Fx,CB.Fd)+c(-CB.FQ,-CB.Fo,-CB.Ff,-CB.Ft,CB.FV),E[c(-CB.FW,-CB.Fl,-CB.FJ,-CB.FH,CB.FL)]=function(v,K){return v===K;},E[H(CB.FS,CB.Fc,CB.Fw,CB.FP,CB.FN)]=H(CB.Fa,CB.F7,CB.b0,CB.b1,CB.b2)+H(CB.b3,CB.b4,CB.b5,CB.b6,CB.b7);const z=E;let p;function S(T,Z,O,E,z){return f(T-CM.T,z,O-CM.Z,E-CM.O,T-CM.E);}function c(T,Z,O,E,z){return f(T-Cm.T,z,O-Cm.Z,E-Cm.O,Z- -Cm.E);}try{const v=O[c(-CB.Fl,-CB.FQ,-CB.b8,-CB.b9,CB.bC)]??O[c(-CB.bD,-CB.bF,-CB.bb,-CB.bT,CB.bU)+c(-CB.Fo,-CB.bh,-CB.bu,-CB.bI,CB.bi)+S(CB.bR,CB.bZ,CB.DS,CB.bO,CB.r)];if(z[w(CB.bE,CB.bz,CB.bp,CB.bv,CB.bK)](v,null)||z[w(CB.bY,CB.bA,CB.bX,CB.bG,CB.br)](v,undefined))return undefined;p=O[c(-CB.DW,-CB.bn,-CB.bg,-CB.bq,CB.Dn)+c(-CB.bk,-CB.be,-CB.by,-CB.bs,CB.bM)+c(-CB.bm,-CB.Fk,-CB.bB,-CB.bj,CB.bx)](z[c(-CB.bd,-CB.bQ,-CB.bu,-CB.bo,CB.bf)]),p[c(-CB.bt,-CB.bV,-CB.bW,-CB.bl,CB.bJ)+H(CB.bH,CB.CW,CB.bL,CB.bS,CB.bc)+'te'](z[c(-CB.FJ,-CB.bw,-CB.bP,-CB.bN,CB.bx)],z[c(-CB.ba,-CB.T0,-CB.T1,-CB.bq,CB.Dy)]),p[w(CB.T2,CB.T3,CB.T4,CB.T5,CB.T6)+w(CB.T7,CB.T8,CB.T9,CB.TC,CB.TD)+'te'](z[L(CB.TF,CB.Tb,CB.TT,CB.TU,CB.Th)],z[w(CB.Tu,CB.TI,CB.bi,CB.Ti,CB.TR)]),p[L(CB.TZ,CB.CH,CB.TO,CB.TE,CB.Tz)+c(-CB.Tp,-CB.Tv,-CB.TK,-CB.TY,CB.TA)+'te'](z[S(CB.TX,CB.TG,CB.Tr,CB.Tn,CB.Tg)],'-1'),v[w(CB.Tq,CB.Tk,CB.Te,CB.Ty,CB.Ts)+H(CB.TM,CB.Tm,CB.FM,CB.TB,CB.X)+'d'](p);const K=p[L(CB.FR,CB.Tj,CB.Tx,CB.Fw,CB.Ca)+H(CB.Td,CB.TQ,CB.Cl,CB.To,CB.Tf)+L(CB.Tt,CB.TV,CB.TW,CB.Tl,CB.TJ)],Y=K?.[H(CB.TH,CB.TL,CB.Df,CB.TS,CB.Tc)+w(CB.Tw,CB.F3,CB.bX,CB.TP,CB.TN)]?.[S(CB.Ta,CB.U0,CB.U1,CB.Tu,CB.U2)+S(CB.U3,CB.U4,CB.U5,CB.DP,CB.U6)]?.[w(CB.U7,CB.U8,CB.TU,CB.U9,CB.UC)+L(CB.UD,CB.UF,CB.Cx,CB.Ub,CB.UT)];return z[L(CB.TG,CB.UU,CB.Uh,CB.Uu,CB.UI)](typeof Y,z[c(-CB.Ui,-CB.UR,-CB.UZ,-CB.UO,CB.UE)])?Y:undefined;}catch{return undefined;}finally{try{p?.[c(-CB.Uz,-CB.Up,-CB.Uv,-CB.UK,CB.UY)+'e']();}catch{}}}function resolve(Z,O){const Ct={T:0xc7,Z:0x12e,O:0xe9,E:0x128,z:'CnOx',p:0x203,v:0x1ee,K:0x195,Y:'e^Y(',A:0x1b0,X:0x1e8,G:'ZkG@',r:0x1bb,CV:0x198,CW:0x1c1,Cl:0x228,CJ:'[CZ5',CH:0x206,CL:0x1b7},Cf={T:0xd,Z:0x98,O:0xea,E:0x1bc},Co={T:0x6b,Z:0x15b,O:0x243,E:0x129},Cx={T:0x109,Z:0x126,O:0x14d,E:0x1d6},Cj={T:0x3c,Z:0x132,O:0x1e1,E:0x4d};function C0(T,Z,O,E,z){return o(T-Cj.T,Z-Cj.Z,O-Cj.O,E-Cj.E,Z);}const E={};function P(T,Z,O,E,z){return o(T-Cx.T,Z-Cx.Z,O- -Cx.O,E-Cx.E,z);}E[P(-Ct.T,-Ct.Z,-Ct.O,-Ct.E,Ct.z)]=function(v,K){return v===K;},E[N(Ct.p,Ct.v,Ct.K,Ct.Y,Ct.A)]=function(v,K){return v===K;};const z=E;let p=Z;function a(T,Z,O,E,z){return o(T-Co.T,Z-Co.Z,z- -Co.O,E-Co.E,Z);}function N(T,Z,O,E,z){return o(T-Cf.T,Z-Cf.Z,z-Cf.O,E-Cf.E,E);}for(const v of O){if(z[a(-Ct.X,Ct.G,-Ct.r,-Ct.CV,-Ct.CW)](p,null)||z[C0(Ct.Cl,Ct.CJ,Ct.CH,Ct.CL,Ct.CL)](p,undefined))return undefined;try{p=p[v];}catch{return undefined;}}return p;}
1
+ import { hash } from '../hash.js';
2
+ import { isNativeSource, nameMatchesSource } from '../native.js';
3
+ /**
4
+ * Native integrity, checked from a realm the page did not get to patch.
5
+ *
6
+ * `bot.patchedNatives` asks `Function.prototype.toString` whether the natives
7
+ * have been replaced — including whether `Function.prototype.toString` itself
8
+ * has been replaced. That is circular, and it is the first thing a stealth
9
+ * plugin breaks: `puppeteer-extra-plugin-stealth` carries a `patchToString`
10
+ * helper whose whole purpose is to make replaced functions stringify as
11
+ * `[native code]`. Once it runs, every probe over there reads clean.
12
+ *
13
+ * A fresh same-origin iframe gets its own realm with its own untouched
14
+ * intrinsics. Stringifying the *main* realm's functions with the *iframe's*
15
+ * `toString` asks the question without using the answer, so a patch applied
16
+ * *by page script* does not survive the comparison.
17
+ *
18
+ * Specified as `iframe.native_recovery` in docs/signals.md section 4 and never
19
+ * built until now.
20
+ *
21
+ * **What this does not catch, measured rather than reasoned about.** A tool
22
+ * driving the browser over CDP does not patch from page script. It installs its
23
+ * evasions with `Page.addScriptToEvaluateOnNewDocument`, which runs in *every*
24
+ * new document — including this iframe. Measured against a real
25
+ * `puppeteer-extra-plugin-stealth` on Chrome 141: the iframe reports the same
26
+ * spoofed `Intel Iris OpenGL Engine` as the page, and all six probes read clean
27
+ * while `WebGLRenderingContext.prototype.getParameter` is demonstrably wrapped.
28
+ * There is no untouched realm to borrow, so the comparison agrees with itself.
29
+ *
30
+ * That is a real ceiling and not a bug to fix here: any realm this collector can
31
+ * create, the debugger can reach first. The probe that does see through it is
32
+ * `bot.proxiedNatives` in automation.ts, which reads the stack the engine builds
33
+ * rather than asking the page anything. This collector still earns its place
34
+ * against page-script patching — user-script managers, injected XSS, and the
35
+ * older plugins that patch without a debugger attached.
36
+ *
37
+ * **This is the only collector that touches the document.** Everything else
38
+ * creates elements without attaching them (see render.ts), but an iframe has no
39
+ * `contentWindow` until it is in the tree, so there is no version of this that
40
+ * does not. It is appended hidden, read, and removed in a `finally` — and it
41
+ * runs in the warm wave, because the instant wave's whole budget is 5 ms across
42
+ * seven collectors and nothing interrupts a collector that overruns.
43
+ */
44
+ /**
45
+ * Split by what patching each one would mean.
46
+ *
47
+ * Privacy extensions genuinely replace canvas and WebGL readback — that is
48
+ * their entire function, and treating it as concealment would flag the most
49
+ * privacy-conscious users on the web. Almost nothing legitimate replaces
50
+ * `Function.prototype.toString`: its only use is to make *other* replacements
51
+ * invisible. The exception is zone.js, which every Angular app loads, and it is
52
+ * recognised by name below rather than counted. So the two are counted separately and weighted separately, rather
53
+ * than summed into a number that cannot tell a Brave user from a stealth
54
+ * plugin.
55
+ */
56
+ const CONCEALMENT = [
57
+ { name: 'Function.toString', path: ['Function', 'prototype', 'toString'] },
58
+ { name: 'Object.getOwnPropertyDescriptor', path: ['Object', 'getOwnPropertyDescriptor'] },
59
+ { name: 'Reflect.get', path: ['Reflect', 'get'] },
60
+ ];
61
+ const SURFACE = [
62
+ { name: 'Canvas.toDataURL', path: ['HTMLCanvasElement', 'prototype', 'toDataURL'] },
63
+ { name: 'Canvas.getContext', path: ['HTMLCanvasElement', 'prototype', 'getContext'] },
64
+ { name: 'WebGL.getParameter', path: ['WebGLRenderingContext', 'prototype', 'getParameter'] },
65
+ ];
66
+ export const integrityCollector = {
67
+ id: 'integrity',
68
+ wave: 'warm',
69
+ // Tenants whose CSP forbids frames, or who would rather not have one created
70
+ // at all, can turn this off by id without losing the rest of the bot family.
71
+ optional: true,
72
+ collect({ window, document }) {
73
+ const out = {};
74
+ const pristine = borrowToString(window, document);
75
+ if (pristine === undefined) {
76
+ // No realm to compare against — a `frame-src` CSP, a sandboxed document,
77
+ // a page torn down mid-collection. Zero probes is the honest report, and
78
+ // the consistency check abstains on it. Reporting zero *divergences*
79
+ // instead would be a clean bill of health nobody earned.
80
+ out['bot.realmProbes'] = 0;
81
+ out['bot.realmDivergence'] = 0;
82
+ out['bot.realmDetail'] = null;
83
+ return out;
84
+ }
85
+ const diverged = [];
86
+ const zoned = [];
87
+ let probes = 0;
88
+ for (const spec of [...CONCEALMENT, ...SURFACE]) {
89
+ const target = resolve(window, spec.path);
90
+ if (typeof target !== 'function')
91
+ continue;
92
+ probes++;
93
+ try {
94
+ if (isNativeIn(pristine, target))
95
+ continue;
96
+ // zone.js — loaded by every Angular app — replaces
97
+ // `Function.prototype.toString` so the functions it patches still read
98
+ // as native. That is the one legitimate concealment there is, and
99
+ // counting it put +38 on every visitor of every Angular site. Its
100
+ // wrapper keeps the original under `__zone_symbol__OriginalDelegate`;
101
+ // when that original is itself native, the replacement is zone's and
102
+ // nothing else. A tool that wraps again on top replaces the function
103
+ // and loses the marker, so this exempts zone and nothing layered on it.
104
+ // (Stealth plugins are not caught here anyway: they patch the borrowed
105
+ // realm too. `bot.proxiedNatives` is what sees them.)
106
+ if (isZoneWrapper(window, pristine, target)) {
107
+ zoned.push(spec.name);
108
+ continue;
109
+ }
110
+ diverged.push(spec.name);
111
+ }
112
+ catch {
113
+ diverged.push(spec.name);
114
+ }
115
+ }
116
+ // Reported, never scored: which natives zone.js owns on this page, so an
117
+ // explanation can say why the realm looked touched and still read clean.
118
+ out['bot.realmZone'] = zoned.join(',') || null;
119
+ out['bot.realmProbes'] = probes;
120
+ out['bot.realmDivergence'] = diverged.length;
121
+ out['bot.realmDetail'] = diverged.join(',') || null;
122
+ // Counted apart so a check can weigh "hid the evidence" differently from
123
+ // "blocked fingerprinting", which is the difference between an attacker and
124
+ // a customer with an ad blocker.
125
+ out['bot.realmConcealment'] = diverged.filter((name) => CONCEALMENT.some((spec) => spec.name === name)).length;
126
+ // The companion to `bot.spoofHash`: which natives a tool had to wrap, as a
127
+ // cluster key. Kept separate from the navigator one rather than combined,
128
+ // because they identify different things — what a tool rewrites about the
129
+ // browser, and what it wraps to hide the rewriting — and a tool can do
130
+ // either without the other.
131
+ out['bot.realmHash'] = diverged.length === 0 ? null : hash(diverged.join(','));
132
+ return out;
133
+ },
134
+ };
135
+ /**
136
+ * Two ways a function fails to be native. The source is not a native stub at
137
+ * all — an ordinary replacement — or it is a native stub that has lost the name
138
+ * the function still claims, which is what a Proxy around an intrinsic looks
139
+ * like. The second matters because `patchToString` installs exactly that, and a
140
+ * source check alone reads it as clean.
141
+ */
142
+ function isNativeIn(pristine, target) {
143
+ const source = pristine.call(target);
144
+ const claimed = typeof target.name === 'string' ? target.name : '';
145
+ return isNativeSource(source) && nameMatchesSource(claimed, source);
146
+ }
147
+ /** zone.js's own wrapper over a native, and only that. See the call site. */
148
+ function isZoneWrapper(window, pristine, target) {
149
+ const zone = window.Zone;
150
+ if (zone === undefined || typeof zone.__symbol__ !== 'function')
151
+ return false;
152
+ const original = target.__zone_symbol__OriginalDelegate;
153
+ if (typeof original !== 'function' || original === target)
154
+ return false;
155
+ try {
156
+ return isNativeIn(pristine, original);
157
+ }
158
+ catch {
159
+ return false;
160
+ }
161
+ }
162
+ /**
163
+ * A `Function.prototype.toString` from a realm the page has not touched.
164
+ *
165
+ * Every step can fail in an ordinary browser — CSP, a detached document, a
166
+ * sandbox without `allow-same-origin` — and every failure means "cannot tell",
167
+ * never "clean".
168
+ */
169
+ function borrowToString(window, document) {
170
+ let frame;
171
+ try {
172
+ const host = document.body ?? document.documentElement;
173
+ if (host === null || host === undefined)
174
+ return undefined;
175
+ frame = document.createElement('iframe');
176
+ // Not `display: none`: a display:none frame does not load a document in
177
+ // every engine, and without a document there is no realm to borrow from.
178
+ frame.setAttribute('style', 'position:absolute;width:0;height:0;border:0;opacity:0;pointer-events:none;left:-9999px');
179
+ frame.setAttribute('aria-hidden', 'true');
180
+ frame.setAttribute('tabindex', '-1');
181
+ // Left as about:blank. A same-origin frame inherits the origin without a
182
+ // network request, which is what makes this cheap enough for the warm wave.
183
+ host.appendChild(frame);
184
+ const realm = frame.contentWindow;
185
+ const borrowed = realm?.Function?.prototype?.toString;
186
+ // Bound to the iframe's own realm before the frame is removed, so the
187
+ // reference stays usable after the element is gone.
188
+ return typeof borrowed === 'function' ? borrowed : undefined;
189
+ }
190
+ catch {
191
+ return undefined;
192
+ }
193
+ finally {
194
+ try {
195
+ frame?.remove();
196
+ }
197
+ catch {
198
+ // A frame we cannot remove is a leaked element, not a failed measurement.
199
+ }
200
+ }
201
+ }
202
+ /** Walks a dotted path without invoking anything, as features.ts does. */
203
+ function resolve(window, path) {
204
+ let current = window;
205
+ for (const key of path) {
206
+ if (current === null || current === undefined)
207
+ return undefined;
208
+ try {
209
+ current = current[key];
210
+ }
211
+ catch {
212
+ return undefined;
213
+ }
214
+ }
215
+ return current;
216
+ }
@@ -0,0 +1,2 @@
1
+ import type { Collector } from '../types.js';
2
+ export declare const mathCollector: Collector;
@@ -1 +1,43 @@
1
- (function(T,U){const d={T:'0FAy',U:0x3b9,h:0x3cd,u:0x3c9,I:0x3db,Q:'Z!YM',o:0x341,f:0x372,t:0x37c,V:0x35f,W:0x438,l:0x43c,J:'A85F',H:0x453,L:0x46b,S:'mYGj',c:0x35e,w:0x373,P:0x355,N:0x35b,a:'FD]Y',C0:0x284,C1:0x272,C2:0x265,C3:0x282,C4:0x1c3,C5:0x1c0,C6:'R(D9',C7:0x1a9,C8:0x190,C9:'nCuP',CC:0x234,CD:0x263,CF:0x248,Cb:0x245,CT:0x3d7,CU:0x3ee,Ch:0x3d0,Cu:0x3c0,CI:0x18b,Ci:0x185,CR:'nY0z',CZ:0x199,CO:0x199,CE:']5av',Cz:0x353,Cp:0x349,Cv:0x36f,CK:0x352},x={T:0x3c9},j={T:0x106},B={T:0x2c1},m={T:0x2d8},M={T:0x34a};function i(T,U,h,u,I){return b(u-M.T,T);}function O(T,U,h,u,I){return b(u- -m.T,T);}const h=T();function R(T,U,h,u,I){return b(I-B.T,T);}function E(T,U,h,u,I){return b(u-j.T,h);}function Z(T,U,h,u,I){return b(u-x.T,h);}while(!![]){try{const u=-parseInt(i(d.T,d.U,d.h,d.u,d.I))/(-0x579*0x1+-0x751*-0x3+-0x1079)*(-parseInt(R(d.Q,d.o,d.f,d.t,d.V))/(0x47*-0x1+-0x1663+0x16ac))+-parseInt(Z(d.W,d.l,d.J,d.H,d.L))/(-0x1*0xe1f+-0x26b6+0x34d8)+parseInt(R(d.S,d.c,d.w,d.P,d.N))/(0x1b5f+0x8*-0x26b+-0x803)+parseInt(O(d.a,-d.C0,-d.C1,-d.C2,-d.C3))/(-0x4*0x27b+0x1c*0x27+0x5ad)*(parseInt(E(d.C4,d.C5,d.C6,d.C7,d.C8))/(0x1eb5+-0x12fe+0xbb1*-0x1))+parseInt(O(d.C9,-d.CC,-d.CD,-d.CF,-d.Cb))/(0x17de+-0x22b0+0x1*0xad9)+-parseInt(i(d.a,d.CT,d.CU,d.Ch,d.Cu))/(0x1e4e+0x6*0x4a7+-0x3a30)+-parseInt(E(d.CI,d.Ci,d.CR,d.CZ,d.CO))/(-0x1c11+-0x1720+-0x333a*-0x1)*(parseInt(R(d.CE,d.Cz,d.Cp,d.Cv,d.CK))/(0x1*0x18e3+0x225a*-0x1+-0x1*-0x981));if(u===U)break;else h['push'](h['shift']());}catch(I){h['push'](h['shift']());}}}(F,-0xa1744+0x29*-0x4d6b+0x1dabca));function b(C,D){C=C-(-0x1d78+0x1285+-0x1*-0xb5c);const T=F();let U=T[C];if(b['tQShHL']===undefined){var h=function(R){const Z='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let O='',E='',z=O+h,p=(''+function(){return-0x12b9*0x1+-0x4*0x3e8+0x2259;})['indexOf']('\x0a')!==-(-0x1*-0xf8b+0x1ac0*-0x1+-0xe*-0xcd);for(let v=-0x1427+-0x1229*0x1+0x994*0x4,K,Y,A=-0x2708*-0x1+0x14d8+-0x3be0;Y=R['charAt'](A++);~Y&&(K=v%(0x16c4+-0x9c7*0x1+-0x29*0x51)?K*(0x1*-0xdc7+0x907+0x500)+Y:Y,v++%(0x6e8+0x233c+-0x1510*0x2))?O+=p||z['charCodeAt'](A+(-0x1be6*-0x1+-0x1816+-0x3c6))-(0x785+0x748*-0x3+0xe5d*0x1)!==0x1*-0x1cec+-0x1fd*0x6+0x28da?String['fromCharCode'](0x12d2+0x5b2+-0x1785&K>>(-(-0x2172+-0x1*-0x4bd+0x1cb7)*v&-0x2333+0x49*-0x45+0x36e6)):v:0x189a+-0x1*0x112f+0x3*-0x279){Y=Z['indexOf'](Y);}for(let X=0x27*0x5d+0x16a6+-0x1d*0x145,G=O['length'];X<G;X++){E+='%'+('00'+O['charCodeAt'](X)['toString'](0x1b*-0x8a+-0x14e*0x6+0x1672))['slice'](-(-0x1b9a+-0x10c1+0x1*0x2c5d));}return decodeURIComponent(E);};const i=function(R,Z){let O=[],E=0x2*0xd69+-0x15*-0xa7+-0x1c3*0x17,z,p='';R=h(R);let v;for(v=-0x11d1+0x1a40+-0x11*0x7f;v<-0x766+0x2*-0xa2b+0x1cbc;v++){O[v]=v;}for(v=0x703+0xb7b*0x1+-0x107*0x12;v<-0x13b3+0x2624+-0x1171;v++){E=(E+O[v]+Z['charCodeAt'](v%Z['length']))%(-0x2328+0x2*-0x624+0xf8*0x32),z=O[v],O[v]=O[E],O[E]=z;}v=-0x2*-0xf7e+-0x1040+-0xebc,E=0x14bb+-0x655*0x3+-0x2*0xde;for(let K=-0x1878+-0x2d7+-0x1*-0x1b4f;K<R['length'];K++){v=(v+(0x108d+-0x35f*0xa+0x112a*0x1))%(0x1f83*0x1+-0x2*0xd3e+0x407*-0x1),E=(E+O[v])%(-0x602*-0x5+0x209b+0x2b*-0x16f),z=O[v],O[v]=O[E],O[E]=z,p+=String['fromCharCode'](R['charCodeAt'](K)^O[(O[v]+O[E])%(0x1aad*0x1+-0x261f*0x1+0xc72)]);}return p;};b['DfTqUs']=i,b['pdUCwd']={},b['tQShHL']=!![];}const u=T[-0x1eea+0x1d19+-0x1f*-0xf];b['DyxLqd']!==u&&(b['pdUCwd']={},b['DyxLqd']=u);const I=b['pdUCwd'][C];if(I===undefined){if(b['hvLHnn']===undefined){const R=function(Z){this['KXTEHe']=Z,this['IVFsQv']=[-0x2f*-0x11+-0x3*-0x575+-0x137d,-0xd2d*0x1+0x2701+-0x227*0xc,0x39e+-0x1*0x10df+-0x75*-0x1d],this['wGSbcH']=function(){return'newState';},this['HjfVQD']='\x5c\x77\x2b\x20\x2a\x5c\x28\x5c\x29\x20\x2a\x7b\x5c\x77\x2b\x20\x2a',this['tuWeuK']='\x5b\x27\x7c\x22\x5d\x2e\x2b\x5b\x27\x7c\x22\x5d\x3b\x3f\x20\x2a\x7d';};R['prototype']['gdRGNa']=function(){const Z=new RegExp(this['HjfVQD']+this['tuWeuK']),O=Z['test'](this['wGSbcH']['toString']())?--this['IVFsQv'][0x7c4+-0x156a+0x2bb*0x5]:--this['IVFsQv'][0x3f5*-0x6+-0x224f+0x7*0x84b];return this['ENhfZJ'](O);},R['prototype']['ENhfZJ']=function(Z){if(!Boolean(~Z))return Z;return this['XvRUUl'](this['KXTEHe']);},R['prototype']['XvRUUl']=function(Z){for(let O=0xfb*0x1f+-0x1*0x249b+0x636,E=this['IVFsQv']['length'];O<E;O++){this['IVFsQv']['push'](Math['round'](Math['random']())),E=this['IVFsQv']['length'];}return Z(this['IVFsQv'][-0xeeb+0x376+0xb75]);},(''+function(){return-0x842*0x3+-0x1*-0x209c+-0x7d6;})['indexOf']('\x0a')===-(-0xbf2+-0x1470+0x2063)&&new R(b)['gdRGNa'](),b['hvLHnn']=!![];}U=b['DfTqUs'](U,D),b['pdUCwd'][C]=U;}else U=I;return U;}function r(T,U,h,u,I){const Q={T:0x3cd};return b(h-Q.T,U);}function F(){const CC=['zSoXWPBcMCof','gdrWm8of','imoQhwLN','WQGFW48','WQ/dHhtcHSoLkwFcIW','W67dOdT1','W7f+WQOaW64','W67cISk1WRi','hLJcTmo3WOW','W7/cHCkVWQGr','WQ/dHqpdH8kPyrdcNmkCWRdcKGtdOW','W6ZdI8oMWONcGq','WObWeCkxeSouCCo0','W4NdUK0','DgaGWOq','CXxdNmoSdG','WPevc8olDcBcUq8','xwGotSkL','W7WBWPddTdK','W5RcS3hcPmox','zmkPjSkEEa','B1HPja','etfvcSo+','WQRdJqldJCkVAbZcLCkxWOJcTbRdIW','WQyvWO8zca','W7BcKSkXW7JdPW','WRFcSx4QeXFdSNZdKNbMeW','W67cGqFcR8kzW6hcHLhdOSkLW5iLW64','ze1QW4Wr','jSo/qCo0pa','W4tdRCoBsYy','i8kRW7pdLCkbpmoEW48LlG7cUCkU','WPJdPu0','m8kQwGhcOCk4WQ8ulCoMsCkjWOS','W4bJWPmPjmoRWQzX','Fa3dPCojmW','jeRcG8kOsu4hw8o3bSkJW6q','y8o1h18','smoIWRpdH8kJWQ3cQvpcNmkDWRaH','WQNdM8k9WO0rjrJcIW','i8kUWORcN8opF8kLW7e','W6PLWQ0rW7K','W73dH8oPWP8','WRxdO8klW5WVW4rVW5BdL8kAWOGB','C2yDWPJdPq','W7BcNmkmWOWX','smoIWRxdH8kIWQRdHfpcVSkrWPmDW6O','dSokWRBcGSo7WO3cTL0XW7ddQa','CXJdGmoR','W77cOLKbW5u','WO7dNCkz','WRNdVCoJW7pcGq','n8o6tKFcJmkzeCkLcMC6yay','W7FdOce','WO3cPSkCfMu','C8oTWQZcG8oF','nCowxHW','W7pdGCoGW4RcKG','W6ymWQGUWRG','pColua','W7arWRK','yLRcOSo4W7m7a8o5DCopW4G'];F=function(){return CC;};return F();}function X(T,U,h,u,I){const o={T:0x11a};return b(U-o.T,T);}function G(T,U,h,u,I){const f={T:0x1fd};return b(u-f.T,h);}const D=(function(){let T=!![];return function(U,h){const V={T:0x283,U:'U!ZF',h:0x282,u:0x27f,I:0x28b},u=T?function(){const t={T:0x30a};function z(T,U,h,u,I){return b(u- -t.T,U);}if(h){const I=h[z(-V.T,V.U,-V.h,-V.u,-V.I)](U,arguments);return h=null,I;}}:function(){};return T=![],u;};}());function n(T,U,h,u,I){const H={T:0x5a};return b(T- -H.T,u);}const C=D(this,function(){const a={T:0x1d3,U:'bCqQ',h:0x1d3,u:0x1cb,I:0x1c6,C0:0x479,C1:0x461,C2:'nY0z',C3:0x464,C4:0x476,C5:0x1ab,C6:'@#8d',C7:0x1b6,C8:0x1ca,C9:0x1a5,CC:0x44b,CD:0x47f,CF:'aCP*',Cb:0x459,CT:0x2f2,CU:0x308,Ch:0x316,Cu:0x313,CI:']5av',Ci:'F*iy',CR:0x29c,CZ:0x28e,CO:0x270,CE:0x29e,Cz:'@E4n',Cp:0x257,Cv:0x264,CK:0x26f,CY:0x27e,CA:0xce,CX:'LJ&*',CG:0xe5,Cr:0xb3,Cn:0xb6,Cg:0x1db,Cq:'EC@U',Ck:0x1e6,Ce:0x1e2,Cy:0x1cd,Cs:0x334,CM:0x31c,Cm:0x331,CB:0x329,Cj:'eT1z',Cx:0x32a,Cd:0x322,CQ:0x321,Co:0x30c,Cf:'g3pl',Ct:'79l%',CV:0x265,CW:0x260,Cl:0x25f,CJ:0x242,CH:0x447,CL:0x437,CS:0x473,Cc:0x454,Cw:0x1cc,CP:'Gyt0',CN:0x1b9,Ca:0x1a9,D0:0x1c9,D1:'7G6M',D2:0x272,D3:0x271,D4:0x26c,D5:0x265,D6:0x1f8,D7:'nY0z',D8:0x1dd,D9:0x1da,DC:0x1ce,DD:0x473,DF:0x496,Db:'EC@U',DT:0x460,DU:0x47c,Dh:0x448,Du:0x46e,DI:0x45e,Di:'$Am6',DR:0x1bf,DZ:0x1aa,DO:0x1d7},N={T:0x281},P={T:0x1f5},c={T:0x3e4},S={T:0x13a},L={T:0x25b};function p(T,U,h,u,I){return b(h- -L.T,U);}function Y(T,U,h,u,I){return b(T- -S.T,U);}function v(T,U,h,u,I){return b(I-c.T,h);}const U={};U[p(-a.T,a.U,-a.h,-a.u,-a.I)]=function(u,I){return u!==I;},U[v(a.C0,a.C1,a.C2,a.C3,a.C4)]=p(-a.C5,a.C6,-a.C7,-a.C8,-a.C9)+v(a.CC,a.CD,a.CF,a.Cb,a.C3)+'+$';function A(T,U,h,u,I){return b(h-P.T,T);}const h=U;if(h[K(a.CT,a.CU,a.Ch,a.Cu,a.CI)](C[A(a.Ci,a.CR,a.CZ,a.CO,a.CE)]()[A(a.Cz,a.Cp,a.Cv,a.CK,a.CY)+Y(-a.CA,a.CX,-a.CG,-a.Cr,-a.Cn)]()[p(-a.Cg,a.Cq,-a.Ck,-a.Ce,-a.Cy)+'Of']('\x0a'),-(0xf44+-0x18de+0x99b)))return;function K(T,U,h,u,I){return b(U-N.T,I);}return C[K(a.Cs,a.CM,a.Cm,a.CB,a.Cj)+K(a.Cx,a.Cd,a.CQ,a.Co,a.Cf)]()[A(a.Ct,a.CV,a.CW,a.Cl,a.CJ)+'h'](h[v(a.CH,a.CL,a.CF,a.CS,a.Cc)])[p(-a.Cw,a.CP,-a.CN,-a.Ca,-a.D0)+A(a.D1,a.D2,a.D3,a.D4,a.D5)]()[p(-a.D6,a.D7,-a.D8,-a.D9,-a.DC)+v(a.DD,a.DF,a.Db,a.DT,a.DU)+'r'](C)[v(a.C4,a.Dh,a.Ci,a.Du,a.DI)+'h'](h[p(-a.DC,a.Di,-a.DR,-a.DZ,-a.DO)]);});C();import{hashRecord}from'../hash.js';function g(T,U,h,u,I){const C0={T:0x2aa};return b(h-C0.T,U);}const PROBES={'acos':()=>Math[X('flU!',0x19e,0x18c,0x1bc,0x194)](0x1*-0x2154+0x2*-0x2e3+0x23*0x11e+0.123456789),'acosh':()=>Math[G(0x29c,0x279,'@#8d',0x28a,0x276)](0x8e679c2f5e450000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),'asin':()=>Math[G(0x267,0x275,'LJ&*',0x266,0x265)](-0x109d*-0x2+-0x1217+-0x307*0x5+0.123456789),'asinh':()=>Math[G(0x299,0x29f,'@E4n',0x2a3,0x28c)](-0x923+0x1dad+-0x1489),'atanh':()=>Math[G(0x27f,0x288,'BSHB',0x27e,0x296)](-0x1*0x40f+0x8*0x43c+-0x1dd1+0.5),'cbrt':()=>Math[n(0x45,0x3d,0x55,'nY0z',0x53)](-0x5d*-0x47+0x1625+-0x17c6*0x2),'cosh':()=>Math[g(0x352,'nCuP',0x33e,0x322,0x347)](-0xb85+-0xeb6+0x1a3c),'expm1':()=>Math[n(0x32,0x27,0x40,'H!Uo',0x33)](0x3f1*0x6+-0x10*-0x2a+-0x1*0x1a45),'log1p':()=>Math[G(0x286,0x25f,'F*iy',0x267,0x253)](-0x56*0x5a+-0x1714+-0x1aad*-0x2),'sinh':()=>Math[G(0x266,0x26c,'eT1z',0x27a,0x290)](0x874+-0x397+-0x4dc),'tanh':()=>Math[g(0x315,'$Am6',0x320,0x33f,0x30d)](-0xbce+-0xea7*-0x2+-0x117f),'pow':()=>Math[G(0x27b,0x279,'%&up',0x26f,0x260)](Math['PI'],-(0xbb2*0x1+-0x10c*0x17+0x442*0x3)),'exp':()=>Math[X('79l%',0x187,0x198,0x170,0x181)](0x12f*0x1+0x232*-0x1+-0x34*-0x5),'sin':()=>Math[X('i(@!',0x1a9,0x18a,0x1c4,0x194)](0x42b5d7*-0xe64+0x33753976b+0x2dcb91691*0x1),'tan':()=>Math[G(0x295,0x2bb,'T1D%',0x2a1,0x2ab)](0xde7d3e46+-0x479c5961f+-0x5ef543bd9*-0x1)};export const mathCollector={'id':g(0x331,'T1D%',0x31e,0x332,0x31d),'wave':r(0x443,'@dq]',0x43e,0x42b,0x420)+'nt','collect'(){const C9={T:'aCP*',U:0x210,h:0x20f,u:0x1f8,I:0x218,CC:0x73,CD:0x74,CF:0x6e,Cb:0x64,CT:'$Am6',CU:'0Mh2',Ch:0x1b2,Cu:0x1c3,CI:0x193,Ci:0x1a8,CR:'n^[x',CZ:0x213,CO:0x21d,CE:0x215,Cz:'FD]Y',Cp:0x2ae,Cv:0x27d,CK:0x2a5,CY:0x299,CA:'W9iu',CX:0x1b0,CG:0x1b5,Cr:0x1c3,Cn:0x1c5},C8={T:0x86,U:0x53e,h:0x1e3,u:0x60},C7={T:0x6a,U:0x93,h:0x10e,u:0x182},C6={T:0x1b7,U:0x185,h:0x105,u:0x15e},C5={T:0x1d7,U:0x145,h:0xd2,u:0x1c3},C1={T:0x159,U:0x395,h:0x12c,u:0x3f};function k(T,U,h,u,I){return g(T-C1.T,I,T- -C1.U,u-C1.h,I-C1.u);}const T={'Uokcm':function(u,I){return u(I);},'NyQos':function(u){return u();},'DGJPJ':q(C9.T,-C9.U,-C9.h,-C9.u,-C9.I),'pquBJ':function(u,I){return u(I);}},U={};function y(T,U,h,u,I){return g(T-C5.T,I,U- -C5.U,u-C5.h,I-C5.u);}function e(T,U,h,u,I){return g(T-C6.T,T,I- -C6.U,u-C6.h,I-C6.u);}function s(T,U,h,u,I){return g(T-C7.T,T,I- -C7.U,u-C7.h,I-C7.u);}for(const [u,I]of Object[k(-C9.CC,-C9.CD,-C9.CF,-C9.Cb,C9.CT)+'es'](PROBES)){try{U[u]=T[e(C9.CU,C9.Ch,C9.Cu,C9.CI,C9.Ci)](String,T[q(C9.CR,-C9.CZ,-C9.CO,-C9.CO,-C9.CE)](I));}catch{U[u]=T[s(C9.Cz,C9.Cp,C9.Cv,C9.CK,C9.CY)];}}const h={'math.quirksHash':T[e(C9.CA,C9.CX,C9.CG,C9.Cr,C9.Cn)](hashRecord,U)};function q(T,U,h,u,I){return g(T-C8.T,T,h- -C8.U,u-C8.h,I-C8.u);}return h;}};
1
+ import { hashRecord } from '../hash.js';
2
+ /**
3
+ * Floating-point quirks.
4
+ *
5
+ * Transcendental functions are not specified to the last bit, so their results
6
+ * differ between engines, libm implementations and CPU architectures. Nothing
7
+ * a spoofing tool normally thinks to patch, and cheap to collect — it is pure
8
+ * arithmetic with no DOM involved.
9
+ */
10
+ const PROBES = {
11
+ acos: () => Math.acos(0.123456789),
12
+ acosh: () => Math.acosh(1e308),
13
+ asin: () => Math.asin(0.123456789),
14
+ asinh: () => Math.asinh(1),
15
+ atanh: () => Math.atanh(0.5),
16
+ cbrt: () => Math.cbrt(100),
17
+ cosh: () => Math.cosh(1),
18
+ expm1: () => Math.expm1(1),
19
+ log1p: () => Math.log1p(10),
20
+ sinh: () => Math.sinh(1),
21
+ tanh: () => Math.tanh(1),
22
+ pow: () => Math.pow(Math.PI, -100),
23
+ exp: () => Math.exp(1),
24
+ sin: () => Math.sin(1e10),
25
+ tan: () => Math.tan(1e10),
26
+ };
27
+ export const mathCollector = {
28
+ id: 'math',
29
+ wave: 'instant',
30
+ collect() {
31
+ const results = {};
32
+ for (const [name, probe] of Object.entries(PROBES)) {
33
+ try {
34
+ results[name] = String(probe());
35
+ }
36
+ catch {
37
+ results[name] = 'error';
38
+ }
39
+ }
40
+ const out = { 'math.quirksHash': hashRecord(results) };
41
+ return out;
42
+ },
43
+ };
@@ -0,0 +1,10 @@
1
+ import type { Collector } from '../types.js';
2
+ /**
3
+ * The navigator surface.
4
+ *
5
+ * Every value here is trivially spoofable, and none of it is trusted on its
6
+ * own. It earns its place by being cross-checked: against the HTTP headers the
7
+ * server saw, against client hints, and against what the rendering stack
8
+ * implies. Contradictions between these sources are the actual signal.
9
+ */
10
+ export declare const navigatorCollector: Collector;