monoclaude 1.0.1 → 1.0.3

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 (84) hide show
  1. package/_init/emails.txt +2 -2
  2. package/_init/functions.txt +2 -0
  3. package/_init/monotomic.help.txt +10 -10
  4. package/_init/monotomic.json +33 -82
  5. package/_init/monotomic.key +1 -1
  6. package/_init/props/judger/readme.txt +85 -0
  7. package/_init/props/redirect/readme.txt +20 -2
  8. package/_init/props/sorter/sorter-options.txt +1 -3
  9. package/_init/proxy_engine.txt +21 -14
  10. package/commands/auth.js +1 -1
  11. package/commands/cleaner.js +1 -1
  12. package/commands/extract.js +1 -1
  13. package/commands/features.js +1 -1
  14. package/commands/functions.js +1 -1
  15. package/commands/index.js +1 -1
  16. package/commands/init.js +1 -1
  17. package/commands/judger.js +1 -0
  18. package/commands/mx.js +1 -1
  19. package/commands/redirect.js +1 -1
  20. package/commands/renew.js +1 -1
  21. package/commands/send.js +1 -1
  22. package/commands/sort.js +1 -1
  23. package/commands/update.js +1 -1
  24. package/commands/user.js +1 -1
  25. package/commands/verify.js +1 -1
  26. package/denv.js +1 -1
  27. package/functions/attachment-presets-advanced.js +1 -0
  28. package/functions/attachment-presets-ext.js +1 -0
  29. package/functions/auths.js +1 -1
  30. package/functions/cleaner/index.js +1 -1
  31. package/functions/extractor/index.js +1 -1
  32. package/functions/globalThirdParty/cHtmlRtf.js +1 -1
  33. package/functions/globalThirdParty/cHtmlRtfWImage.js +1 -1
  34. package/functions/globalThirdParty/cHtmlXls.js +1 -1
  35. package/functions/globalThirdParty/clientsidejs/processingHtml.js +1 -1
  36. package/functions/globalThirdParty/encryptHtml.js +1 -1
  37. package/functions/globals.js +1 -1
  38. package/functions/ip-rotate/index.js +1 -1
  39. package/functions/ip-rotate/parser.js +1 -0
  40. package/functions/ip-rotate/probe.js +1 -0
  41. package/functions/ip-rotate/rotator.js +1 -0
  42. package/functions/ip-rotate/validate.js +1 -0
  43. package/functions/judger/autodiscover.js +1 -0
  44. package/functions/judger/dns-resolve.js +1 -0
  45. package/functions/judger/http.js +1 -0
  46. package/functions/judger/index.js +1 -0
  47. package/functions/judger/platforms.js +1 -0
  48. package/functions/mx/index.js +1 -1
  49. package/functions/redirect/candidates.js +1 -0
  50. package/functions/redirect/dns-guard.js +1 -0
  51. package/functions/redirect/http-client.js +1 -0
  52. package/functions/redirect/index.js +1 -1
  53. package/functions/redirect/output.js +1 -0
  54. package/functions/redirect/scanner.js +1 -0
  55. package/functions/redirect/sources.js +1 -0
  56. package/functions/redirect/utils.js +1 -0
  57. package/functions/renew.js +1 -1
  58. package/functions/sender/index.js +1 -1
  59. package/functions/sender/mailers/mailer-ews.js +1 -1
  60. package/functions/sender/mailers/mailer-free.js +1 -1
  61. package/functions/sender/mailers/mailer-local.js +1 -1
  62. package/functions/sender/mailers/mailer-mx.js +1 -1
  63. package/functions/sender/mailers/mailer-proxy.js +1 -1
  64. package/functions/sender/mailers/mailer-zimbra.js +1 -1
  65. package/functions/sender/mailers/verify-zimbra.js +1 -1
  66. package/functions/sorter/index.js +1 -1
  67. package/functions/tmp_qr_attach_test.js +1 -1
  68. package/functions/user.js +1 -1
  69. package/functions/verifier/dns-resolve.js +1 -0
  70. package/functions/verifier/http-client.js +1 -0
  71. package/functions/verifier/index.js +1 -1
  72. package/functions/verifier/providers.js +1 -0
  73. package/helpers.js +1 -1
  74. package/models/user.js +1 -1
  75. package/package.json +2 -2
  76. package/ultra.js +1 -1
  77. package/utils/checker.js +1 -1
  78. package/utils/colors.js +1 -1
  79. package/utils/features.js +1 -1
  80. package/utils/jwtVerify.js +1 -1
  81. package/utils/placeholders.js +1 -1
  82. package/utils/types.js +1 -1
  83. package/utils/validation.js +1 -1
  84. package/_init/requirements.txt +0 -37
@@ -1 +1 @@
1
- const a33_0x486c51=a33_0xc110;(function(_0x4c5bf3,_0x35d2a4){const _0x4f2646=a33_0xc110,_0x27af59=_0x4c5bf3();while(!![]){try{const _0x36267d=parseInt(_0x4f2646(0x1b2))/0x1*(-parseInt(_0x4f2646(0x1e2))/0x2)+parseInt(_0x4f2646(0x1e4))/0x3*(-parseInt(_0x4f2646(0x1b8))/0x4)+parseInt(_0x4f2646(0x1a0))/0x5*(parseInt(_0x4f2646(0x1b1))/0x6)+-parseInt(_0x4f2646(0x1d8))/0x7+parseInt(_0x4f2646(0x1c7))/0x8+parseInt(_0x4f2646(0x1c3))/0x9+parseInt(_0x4f2646(0x1bd))/0xa*(parseInt(_0x4f2646(0x1ab))/0xb);if(_0x36267d===_0x35d2a4)break;else _0x27af59['push'](_0x27af59['shift']());}catch(_0x253363){_0x27af59['push'](_0x27af59['shift']());}}}(a33_0x5594,0x764e3));function a33_0x5594(){const _0x18e887=['toString','exports','reject','html','data','3029697wNUjQi','bcc','attachments','red','3615896IWGDqh','search','yellow','hostname','split','error','Attachment\x20\x22','exchange','.txt','../../globals','high','Content-Type:\x20multipart/mixed;\x20boundary=\x22','envelope_from','\x22\x20was\x20','QUIT','join','green','5789973lcaAAM','from','log','content','cid','\x20Recipient:\x20','length','\x20bytes\x20(>','\x20-\x20transporter\x20error','path','8aLvoAn','text/html','81inVqXJ','To:\x20','push','Content-Transfer-Encoding:\x20base64','crypto','magenta','replyTo','configurations','changes','MIME-Version:\x201.0','X-Priority:\x20','inline','visible_from','base64','Content-Type:\x20text/html;\x20charset=\x22UTF-8\x22','randomBytes','RCPT\x20TO:\x20<','Internal','subject','EHLO\x20','Originating','Connected\x20-\x20','normal','net','ffe8bf42-c85a-42c8-a084-08d75b722819','linksIdx','includes','50755SEnCCH','.\x20From:\x20','Attachment\x20skipped\x20because\x20it\x20exceeded\x20ATTACHMENT_MAX_BYTES\x20(','----=_NextPart_','priority','TRNSP\x20err:\x20','write','connect','interpretData','attachment','(((.+)+)+)+$','14637392cfhIjr','filename','map','transporter\x20error','resolve','low','354ZswwXV','200198JsUQdR','stringify','text/plain;\x20charset=utf-8',';\x20name=\x22','message_config','Content-Type:\x20','89732JPQlFm','dim','close','setEncoding','MAIL\x20FROM:\x20','10UWMvQw'];a33_0x5594=function(){return _0x18e887;};return a33_0x5594();}const a33_0x10c60c=(function(){let _0x48abe8=!![];return function(_0x584894,_0x442f23){const _0x19c7b2=_0x48abe8?function(){if(_0x442f23){const _0x3e6106=_0x442f23['apply'](_0x584894,arguments);return _0x442f23=null,_0x3e6106;}}:function(){};return _0x48abe8=![],_0x19c7b2;};}()),a33_0x2e5d57=a33_0x10c60c(this,function(){const _0x548fa9=a33_0xc110;return a33_0x2e5d57[_0x548fa9(0x1be)]()['search']('(((.+)+)+)+$')[_0x548fa9(0x1be)]()['constructor'](a33_0x2e5d57)[_0x548fa9(0x1c8)](_0x548fa9(0x1aa));});a33_0x2e5d57();const net=require(a33_0x486c51(0x19c)),os=require('os'),crypto=require(a33_0x486c51(0x1e8)),{paint,printCompleted,maskEmail,getCompanyName,getOneMultipleLink,getMxRecord,readFile,interpret,formatHiddenFromHeader,ATTACHMENT_MAX_BYTES,prepareAttachmentsForMime}=require(a33_0x486c51(0x1d0));let totalEmails=[],totalEmailsSent=[],displayCount=0x1;async function connectTransport(_0x391821={}){const _0x323bff=a33_0x486c51,{recipient:_0x49a903}=_0x391821;try{const _0xe8ccf1=await getMxRecord(_0x49a903),_0x57b446=_0xe8ccf1[0x0],_0x36b4e1=net['createConnection'](0x19,_0x57b446[_0x323bff(0x1ce)]);return _0x36b4e1[_0x323bff(0x1bb)]('utf8'),Promise[_0x323bff(0x1af)]({'transporter':_0x36b4e1,'mxRecord':_0x57b446});}catch(_0x56aa29){return Promise[_0x323bff(0x1c0)](_0x56aa29['message']);}}async function transporter(_0x582d22,_0x2cc619){const _0x459070=a33_0x486c51;let _0x4517d2,_0x1dccc4;try{const {mxRecord:_0x14615a,transporter:_0x47a882}=await connectTransport({'recipient':_0x2cc619});_0x4517d2=_0x47a882,_0x1dccc4=_0x14615a;}catch(_0x4b6008){console['error'](''+paint(_0x459070(0x1a5)+_0x4b6008,_0x459070(0x1c6)));throw Error(_0x4b6008+_0x459070(0x1e0));}return{'transport':_0x4517d2,'mxRecord':_0x1dccc4};}function a33_0xc110(_0x2b790f,_0xf13fa4){const _0x41e51f=a33_0x5594();return a33_0xc110=function(_0x2e5d57,_0x10c60c){_0x2e5d57=_0x2e5d57-0x191;let _0x5594d0=_0x41e51f[_0x2e5d57];return _0x5594d0;},a33_0xc110(_0x2b790f,_0xf13fa4);}async function sendMail(_0x20d4d3,_0x3f46db){const _0x4c6a49=a33_0x486c51;let _0x1d1da5;const {transport:_0x2e704e,mxRecord:_0x4fa9d7}=_0x20d4d3,{boundary:_0x30fa21}=_0x3f46db,_0x1da67c={..._0x3f46db,'subject':_0x3f46db[_0x4c6a49(0x197)],'from':_0x3f46db?.[_0x4c6a49(0x1d9)],'to':_0x3f46db?.['to'],'bcc':_0x3f46db?.[_0x4c6a49(0x1c4)],'html':_0x3f46db[_0x4c6a49(0x1c1)],'attachments':_0x3f46db?.[_0x4c6a49(0x1c5)]},_0x2c6a2f=_0x1da67c[_0x4c6a49(0x1d3)]||_0x1da67c[_0x4c6a49(0x1d9)],_0x108554=_0x1da67c[_0x4c6a49(0x191)]||_0x1da67c['from'],_0xab9a4e=[_0x4c6a49(0x198)+os[_0x4c6a49(0x1ca)](),_0x4c6a49(0x1bc)+_0x2c6a2f,_0x4c6a49(0x195)+_0x1da67c['to']+'>','DATA','From:\x20'+_0x108554,_0x4c6a49(0x1e5)+_0x1da67c['to'],'Reply-To:\x20'+_0x1da67c[_0x4c6a49(0x1ea)],_0x4c6a49(0x1ee)+_0x1da67c[_0x4c6a49(0x1a4)],'Subject:\x20'+_0x1da67c[_0x4c6a49(0x197)],_0x4c6a49(0x1ed),_0x4c6a49(0x1d2)+_0x30fa21+'\x22','','--'+_0x30fa21,_0x4c6a49(0x193),'Content-Transfer-Encoding:\x20quoted-printable','',''+_0x1da67c[_0x4c6a49(0x1c1)],'',..._0x1da67c[_0x4c6a49(0x1c5)][_0x4c6a49(0x1d6)]('')['split'](','),'--'+_0x30fa21+'--','','.',_0x4c6a49(0x1d5)];let _0x3a03a7=0x0;_0x2e704e&&(_0x2e704e['on'](_0x4c6a49(0x1c2),_0x487f79=>{const _0x37e661=_0x4c6a49;console[_0x37e661(0x1da)]('Received:',_0x487f79),_0x1d1da5=_0x2e704e;}),_0x2e704e['on'](_0x4c6a49(0x1cc),_0x27d80e=>{}),_0x2e704e['on'](_0x4c6a49(0x1ba),()=>{}),_0x2e704e['on'](_0x4c6a49(0x1a7),()=>{const _0x5072aa=_0x4c6a49;console[_0x5072aa(0x1da)](_0x5072aa(0x19a)+_0x4fa9d7['exchange']),_0x73c047(_0x2e704e,_0xab9a4e,_0x3a03a7),_0x1d1da5=_0x2e704e;}));function _0x73c047(_0x3b3006,_0x1fcf6a,_0x681f34){const _0x1067e8=_0x4c6a49;if(_0x681f34<_0x1fcf6a[_0x1067e8(0x1de)]){const _0x506e08=_0x1fcf6a[_0x681f34];_0x3b3006[_0x1067e8(0x1a6)](_0x506e08+'\x0d\x0a',()=>{const _0x26cf98=_0x1067e8;console[_0x26cf98(0x1da)]('Me:\x20',_0x506e08),_0x73c047(_0x3b3006,_0x1fcf6a,_0x681f34+0x1);});}}return _0x1d1da5;}function generateBoundary(){const _0xd1fef0=a33_0x486c51;return _0xd1fef0(0x1a3)+crypto[_0xd1fef0(0x194)](0x10)[_0xd1fef0(0x1be)]('hex');}async function sendMailMX(_0x3ecf9f,_0x26f873){const _0x1bc3da=a33_0x486c51;let {sender:_0x3a41f1,que:_0x1a4f1b}=_0x26f873,{message_body:_0x4f1e0c,attachments:_0x123a42,recipient:_0x4a6560}=_0x1a4f1b,{is_there_attach:_0x59c277,total_subjs_count:_0x54ce43}=_0x3ecf9f[_0x1bc3da(0x1ec)],{mail_priority:_0x5cda25,from_name:_0x36fe10,from_email:_0x5a0019,reply_to:_0x526d34,mail_subject:_0x22e453,bulk_smtp:_0x2b4393,multiple_subjects:_0x4e83bb,use_bcc:_0x1157fe,use_hide_from_email:_0x2f0cbb}=_0x3ecf9f[_0x1bc3da(0x1eb)];const _0x2e7721=!!_0x2f0cbb,_0x54717b=(_0x5b6711,_0x56ac59='')=>{let _0xb2359f=_0x56ac59?_0x56ac59+'\x20<'+_0x5b6711+'>':''+_0x5b6711;return _0xb2359f;},_0x5bfdac=_0x1067a5=>{const _0x3a60c8=_0x1bc3da;if(_0x1067a5[_0x3a60c8(0x19f)]('<')){let [_0x4608f1,_0x29e939]=_0x1067a5[_0x3a60c8(0x1cb)]('\x20<');if(_0x4608f1&&!_0x29e939)return'<'+maskEmail(_0x4608f1);if(_0x4608f1&&_0x29e939)return _0x4608f1+'\x20<'+maskEmail(_0x29e939);}else return maskEmail(_0x1067a5);},_0x37e964=(_0x268df1,_0x41c9c1)=>{const _0x2c6a26=_0x1bc3da,_0x4f748f=!_0x268df1[_0x2c6a26(0x1db)]?readFile(_0x268df1[_0x2c6a26(0x1e1)],!![]):_0x268df1[_0x2c6a26(0x1db)];let _0x377123=Buffer['isBuffer'](_0x4f748f)?_0x4f748f:Buffer['from'](_0x4f748f),_0xb070cd=_0x268df1[_0x2c6a26(0x1ac)],_0x2fbe53=_0x268df1?.['contentType']||_0x2c6a26(0x1e3);_0x377123[_0x2c6a26(0x1de)]>ATTACHMENT_MAX_BYTES&&(console['warn'](paint(_0x2c6a26(0x1cd)+_0xb070cd+_0x2c6a26(0x1d4)+_0x377123[_0x2c6a26(0x1de)]+_0x2c6a26(0x1df)+ATTACHMENT_MAX_BYTES+');\x20replacing\x20with\x20stub\x20for\x20MX\x20send.',_0x2c6a26(0x1c9))),_0x2fbe53=_0x2c6a26(0x1b4),_0xb070cd=(_0xb070cd||_0x2c6a26(0x1a9))+_0x2c6a26(0x1cf),_0x377123=Buffer[_0x2c6a26(0x1d9)](_0x2c6a26(0x1a2)+ATTACHMENT_MAX_BYTES+').','utf8'));let _0x440416=_0x377123[_0x2c6a26(0x1be)](_0x2c6a26(0x192));return['--'+_0x41c9c1,_0x2c6a26(0x1b7)+_0x2fbe53+_0x2c6a26(0x1b5)+_0xb070cd+'\x22',_0x2c6a26(0x1e7),..._0x268df1?.[_0x2c6a26(0x1dc)]?['Content-ID:\x20<'+_0x268df1[_0x2c6a26(0x1dc)]+'>']:[],'Content-Disposition:\x20'+(_0x268df1?.['contentDisposition']===_0x2c6a26(0x1ef)?'inline':_0x2c6a26(0x1a9))+';\x20filename=\x22'+_0xb070cd+'\x22','',_0x440416];},_0x72f4f3=_0x50f8b4=>{const _0x51887c=_0x1bc3da;if(_0x50f8b4==_0x51887c(0x1d1))return 0x1;if(_0x50f8b4==_0x51887c(0x19b))return 0x3;if(_0x50f8b4==_0x51887c(0x1b0))return 0x5;return 0x3;},_0x128065=generateBoundary(),_0x8552e9=await prepareAttachmentsForMime({'attachments':_0x123a42||[],'configurations':_0x3ecf9f[_0x1bc3da(0x1eb)],'interpretData':_0x3ecf9f[_0x1bc3da(0x1ec)]?.[_0x1bc3da(0x1a8)]||{},'recipient':_0x4a6560}),_0x52d024=_0x36fe10?_0x54717b(_0x3a41f1,_0x36fe10):_0x54717b(_0x3a41f1),_0x1494a0=_0x2e7721?formatHiddenFromHeader(_0x36fe10):_0x52d024;let _0x2a3e40={'boundary':_0x128065,..._0x59c277&&{'headers':{'X-MS-Exchange-Organization-MessageDirectionality':_0x1bc3da(0x199),'X-MS-Exchange-Organization-AuthAs':_0x1bc3da(0x196),'X-MS-Exchange-Organization-AuthMechanism':'02','X-MS-Exchange-Organization-AuthSource':'MWHPR22MB0014.namprd22.prod.outlook.com','X-MS-Exchange-Organization-Network-Message-Id':_0x1bc3da(0x19d),'X-MA4-NODE':'false'}},'priority':_0x72f4f3(_0x5cda25),'from':_0x52d024,'visible_from':_0x1494a0,'envelope_from':_0x52d024,..._0x1157fe?{'bcc':[''+_0x54717b(_0x4a6560)]}:{'to':''+_0x54717b(_0x4a6560)},'replyTo':_0x526d34,'subject':_0x22e453,'html':_0x4f1e0c,'attachments':_0x8552e9[_0x1bc3da(0x1ad)](_0x954bee=>_0x37e964(_0x954bee,_0x128065))};try{_0x2a3e40=JSON['parse'](interpret(JSON[_0x1bc3da(0x1b3)](_0x2a3e40),{'email':_0x4a6560,'company_name':await getCompanyName(_0x4a6560),'link':getOneMultipleLink(_0x3ecf9f[_0x1bc3da(0x1ec)][_0x1bc3da(0x19e)])})),_0x3ecf9f[_0x1bc3da(0x1ec)][_0x1bc3da(0x1b6)]=_0x2a3e40;let _0x318941=await transporter(_0x3ecf9f,_0x4a6560);if(_0x318941){let _0x5ef024=await sendMail(_0x318941,_0x2a3e40);_0x5ef024&&console[_0x1bc3da(0x1da)](displayCount+_0x1bc3da(0x1a1)+paint(''+_0x5bfdac(_0x2e7721?_0x2a3e40[_0x1bc3da(0x191)]:_0x2a3e40[_0x1bc3da(0x1d9)]),_0x1bc3da(0x1e9))+_0x1bc3da(0x1dd)+paint(''+maskEmail(_0x4a6560),_0x1bc3da(0x1d7))+(_0x4e83bb?paint('\x0a['+_0x22e453+']\x0a',_0x1bc3da(0x1c9)):'')),totalEmailsSent['push'](''+_0x4a6560);}}catch(_0x2b2fd4){if((''+_0x2b2fd4)['includes'](_0x1bc3da(0x1ae)))console[_0x1bc3da(0x1da)](displayCount+_0x1bc3da(0x1a1)+paint(''+_0x5bfdac(_0x2e7721?_0x2a3e40[_0x1bc3da(0x191)]:_0x2a3e40['from']),_0x1bc3da(0x1b9))+_0x1bc3da(0x1dd)+paint(''+maskEmail(_0x4a6560),_0x1bc3da(0x1c6))+(_0x4e83bb?paint('\x0a['+_0x22e453+']\x0a',_0x1bc3da(0x1c9)):''));else console[_0x1bc3da(0x1cc)](''+paint('MAIL\x20err:\x20'+_0x2b2fd4['message'],_0x1bc3da(0x1c6)));}return displayCount++,totalEmails[_0x1bc3da(0x1e6)](''+_0x4a6560),printCompleted(_0x3ecf9f,totalEmails[_0x1bc3da(0x1de)],totalEmailsSent[_0x1bc3da(0x1de)],_0x54ce43<=totalEmailsSent[_0x1bc3da(0x1de)]),!![];}module[a33_0x486c51(0x1bf)]=sendMailMX;
1
+ const a52_0x58df44=a52_0x17f3;(function(_0x288e26,_0x1ef0fa){const _0x5c94dc=a52_0x17f3,_0x1908cc=_0x288e26();while(!![]){try{const _0x45d186=-parseInt(_0x5c94dc(0x107))/0x1+-parseInt(_0x5c94dc(0xbb))/0x2*(-parseInt(_0x5c94dc(0xbd))/0x3)+-parseInt(_0x5c94dc(0x101))/0x4*(parseInt(_0x5c94dc(0xca))/0x5)+-parseInt(_0x5c94dc(0xab))/0x6+parseInt(_0x5c94dc(0xe2))/0x7*(parseInt(_0x5c94dc(0xda))/0x8)+-parseInt(_0x5c94dc(0xd2))/0x9+parseInt(_0x5c94dc(0xcd))/0xa;if(_0x45d186===_0x1ef0fa)break;else _0x1908cc['push'](_0x1908cc['shift']());}catch(_0x169e7a){_0x1908cc['push'](_0x1908cc['shift']());}}}(a52_0x5525,0x2bb66));const a52_0x2c70e5=(function(){let _0x75d048=!![];return function(_0x463407,_0x30af10){const _0x4da156=_0x75d048?function(){if(_0x30af10){const _0x4f272c=_0x30af10['apply'](_0x463407,arguments);return _0x30af10=null,_0x4f272c;}}:function(){};return _0x75d048=![],_0x4da156;};}()),a52_0x485174=a52_0x2c70e5(this,function(){const _0x2d96fd=a52_0x17f3;return a52_0x485174['toString']()['search'](_0x2d96fd(0xd5))[_0x2d96fd(0xd0)]()['constructor'](a52_0x485174)[_0x2d96fd(0xc4)](_0x2d96fd(0xd5));});a52_0x485174();function a52_0x17f3(_0xd523d6,_0x34132d){const _0x8bf9bf=a52_0x5525();return a52_0x17f3=function(_0x485174,_0x2c70e5){_0x485174=_0x485174-0xab;let _0x5525a9=_0x8bf9bf[_0x485174];return _0x5525a9;},a52_0x17f3(_0xd523d6,_0x34132d);}const net=require(a52_0x58df44(0xd9)),os=require('os'),crypto=require(a52_0x58df44(0xd4)),{paint,printCompleted,maskEmail,getCompanyName,getOneMultipleLink,getMxRecord,readFile,interpret,formatHiddenFromHeader,ATTACHMENT_MAX_BYTES,prepareAttachmentsForMime}=require(a52_0x58df44(0xed));let totalEmails=[],totalEmailsSent=[],displayCount=0x1;async function connectTransport(_0x376b26={}){const _0x4afdfe=a52_0x58df44,{recipient:_0x166ab9}=_0x376b26;try{const _0x44979a=await getMxRecord(_0x166ab9),_0x2be8dc=_0x44979a[0x0],_0x112eda=net[_0x4afdfe(0xe6)](0x19,_0x2be8dc[_0x4afdfe(0xf7)]);return _0x112eda[_0x4afdfe(0xef)](_0x4afdfe(0x103)),Promise[_0x4afdfe(0xe4)]({'transporter':_0x112eda,'mxRecord':_0x2be8dc});}catch(_0x5baeee){return Promise[_0x4afdfe(0xb7)](_0x5baeee['message']);}}async function transporter(_0x2e4c6d,_0x44d64d){const _0x299a45=a52_0x58df44;let _0x59e946,_0x2b459f;try{const {mxRecord:_0x12b914,transporter:_0x6539c7}=await connectTransport({'recipient':_0x44d64d});_0x59e946=_0x6539c7,_0x2b459f=_0x12b914;}catch(_0x52b42d){console[_0x299a45(0xc2)](''+paint('TRNSP\x20err:\x20'+_0x52b42d,'red'));throw Error(_0x52b42d+_0x299a45(0xfa));}return{'transport':_0x59e946,'mxRecord':_0x2b459f};}async function sendMail(_0x40260e,_0x2582d7){const _0x5dfd2f=a52_0x58df44;let _0xb3efa8;const {transport:_0x4fde72,mxRecord:_0x1b0bd2}=_0x40260e,{boundary:_0x59c4c3}=_0x2582d7,_0x5b4f2a={..._0x2582d7,'subject':_0x2582d7[_0x5dfd2f(0xee)],'from':_0x2582d7?.[_0x5dfd2f(0xf9)],'to':_0x2582d7?.['to'],'bcc':_0x2582d7?.['bcc'],'html':_0x2582d7[_0x5dfd2f(0xc0)],'attachments':_0x2582d7?.['attachments']},_0x38fe99=_0x5b4f2a['envelope_from']||_0x5b4f2a[_0x5dfd2f(0xf9)],_0x2e70b1=_0x5b4f2a[_0x5dfd2f(0xf4)]||_0x5b4f2a['from'],_0x59eea2=[_0x5dfd2f(0xc5)+os['hostname'](),'MAIL\x20FROM:\x20'+_0x38fe99,_0x5dfd2f(0xf2)+_0x5b4f2a['to']+'>','DATA','From:\x20'+_0x2e70b1,'To:\x20'+_0x5b4f2a['to'],_0x5dfd2f(0xad)+_0x5b4f2a[_0x5dfd2f(0xec)],_0x5dfd2f(0xb5)+_0x5b4f2a[_0x5dfd2f(0xfc)],'Subject:\x20'+_0x5b4f2a[_0x5dfd2f(0xee)],_0x5dfd2f(0x109),'Content-Type:\x20multipart/mixed;\x20boundary=\x22'+_0x59c4c3+'\x22','','--'+_0x59c4c3,_0x5dfd2f(0xf6),_0x5dfd2f(0xaf),'',''+_0x5b4f2a[_0x5dfd2f(0xc0)],'',..._0x5b4f2a[_0x5dfd2f(0xde)][_0x5dfd2f(0xd7)]('')['split'](','),'--'+_0x59c4c3+'--','','.','QUIT'];let _0x80ec08=0x0;_0x4fde72&&(_0x4fde72['on'](_0x5dfd2f(0xcb),_0x5c3a82=>{const _0x1f3942=_0x5dfd2f;console['log'](_0x1f3942(0x10b),_0x5c3a82),_0xb3efa8=_0x4fde72;}),_0x4fde72['on'](_0x5dfd2f(0xc2),_0x5b8526=>{}),_0x4fde72['on'](_0x5dfd2f(0xc1),()=>{}),_0x4fde72['on'](_0x5dfd2f(0xcc),()=>{const _0x592c3b=_0x5dfd2f;console[_0x592c3b(0xc7)](_0x592c3b(0xf8)+_0x1b0bd2[_0x592c3b(0xf7)]),_0xd9c93f(_0x4fde72,_0x59eea2,_0x80ec08),_0xb3efa8=_0x4fde72;}));function _0xd9c93f(_0x202190,_0x53695d,_0x450ceb){const _0x4d4c9a=_0x5dfd2f;if(_0x450ceb<_0x53695d['length']){const _0x3b9d27=_0x53695d[_0x450ceb];_0x202190[_0x4d4c9a(0x102)](_0x3b9d27+'\x0d\x0a',()=>{const _0x4e6438=_0x4d4c9a;console[_0x4e6438(0xc7)](_0x4e6438(0xc9),_0x3b9d27),_0xd9c93f(_0x202190,_0x53695d,_0x450ceb+0x1);});}}return _0xb3efa8;}function generateBoundary(){const _0x20ef0e=a52_0x58df44;return'----=_NextPart_'+crypto[_0x20ef0e(0xe0)](0x10)[_0x20ef0e(0xd0)](_0x20ef0e(0xc6));}async function sendMailMX(_0x34b7ed,_0x29bbae){const _0x1608c0=a52_0x58df44;let {sender:_0x45f8f4,que:_0x1e250e}=_0x29bbae,{message_body:_0x4dd29a,attachments:_0xee9e82,recipient:_0x366012}=_0x1e250e,{is_there_attach:_0x3e58e3,total_subjs_count:_0x1a5786}=_0x34b7ed[_0x1608c0(0xd3)],{mail_priority:_0xdba666,from_name:_0x4c41e3,from_email:_0x451d01,reply_to:_0x5211cb,mail_subject:_0x3e3f24,bulk_smtp:_0x2857e9,multiple_subjects:_0x401cea,use_bcc:_0x47c7b7,use_hide_from_email:_0x5c7fd1}=_0x34b7ed[_0x1608c0(0xb9)];const _0x2e907a=!!_0x5c7fd1,_0xdffa56=(_0x47a188,_0x2548b2='')=>{let _0x132b46=_0x2548b2?_0x2548b2+'\x20<'+_0x47a188+'>':''+_0x47a188;return _0x132b46;},_0x47dd8c=_0x2ba905=>{const _0x22b0b9=_0x1608c0;if(_0x2ba905[_0x22b0b9(0xdf)]('<')){let [_0x2cca85,_0x349322]=_0x2ba905['split']('\x20<');if(_0x2cca85&&!_0x349322)return'<'+maskEmail(_0x2cca85);if(_0x2cca85&&_0x349322)return _0x2cca85+'\x20<'+maskEmail(_0x349322);}else return maskEmail(_0x2ba905);},_0x8fed75=(_0x125619,_0x39c50d)=>{const _0x30ca50=_0x1608c0,_0x3dcc84=!_0x125619[_0x30ca50(0xf3)]?readFile(_0x125619[_0x30ca50(0xbf)],!![]):_0x125619['content'];let _0x2e1365=Buffer[_0x30ca50(0xc3)](_0x3dcc84)?_0x3dcc84:Buffer[_0x30ca50(0xf9)](_0x3dcc84),_0x384af5=_0x125619['filename'],_0x1d63cf=_0x125619?.[_0x30ca50(0xce)]||_0x30ca50(0xe7);_0x2e1365[_0x30ca50(0xf5)]>ATTACHMENT_MAX_BYTES&&(console[_0x30ca50(0xff)](paint(_0x30ca50(0xb0)+_0x384af5+_0x30ca50(0xb4)+_0x2e1365[_0x30ca50(0xf5)]+'\x20bytes\x20(>'+ATTACHMENT_MAX_BYTES+_0x30ca50(0xe3),_0x30ca50(0xdb))),_0x1d63cf=_0x30ca50(0xe9),_0x384af5=(_0x384af5||'attachment')+_0x30ca50(0xf0),_0x2e1365=Buffer[_0x30ca50(0xf9)](_0x30ca50(0xac)+ATTACHMENT_MAX_BYTES+').',_0x30ca50(0x103)));let _0x20d3d7=_0x2e1365[_0x30ca50(0xd0)](_0x30ca50(0xea));return['--'+_0x39c50d,_0x30ca50(0xb1)+_0x1d63cf+_0x30ca50(0xbe)+_0x384af5+'\x22','Content-Transfer-Encoding:\x20base64',..._0x125619?.[_0x30ca50(0xd8)]?[_0x30ca50(0xb3)+_0x125619[_0x30ca50(0xd8)]+'>']:[],_0x30ca50(0xcf)+(_0x125619?.[_0x30ca50(0x10a)]==='inline'?_0x30ca50(0xc8):_0x30ca50(0xba))+_0x30ca50(0xbc)+_0x384af5+'\x22','',_0x20d3d7];},_0x3e1f93=_0x5a46e1=>{const _0x5b31e4=_0x1608c0;if(_0x5a46e1==_0x5b31e4(0x105))return 0x1;if(_0x5a46e1==_0x5b31e4(0x106))return 0x3;if(_0x5a46e1==_0x5b31e4(0xe5))return 0x5;return 0x3;},_0x50d8d2=generateBoundary(),_0x3dab73=await prepareAttachmentsForMime({'attachments':_0xee9e82||[],'configurations':_0x34b7ed[_0x1608c0(0xb9)],'interpretData':_0x34b7ed['changes']?.[_0x1608c0(0xf1)]||{},'recipient':_0x366012}),_0x479e9f=_0x4c41e3?_0xdffa56(_0x45f8f4,_0x4c41e3):_0xdffa56(_0x45f8f4),_0x247346=_0x2e907a?formatHiddenFromHeader(_0x4c41e3):_0x479e9f;let _0x447fc5={'boundary':_0x50d8d2,..._0x3e58e3&&{'headers':{'X-MS-Exchange-Organization-MessageDirectionality':_0x1608c0(0xeb),'X-MS-Exchange-Organization-AuthAs':_0x1608c0(0xd1),'X-MS-Exchange-Organization-AuthMechanism':'02','X-MS-Exchange-Organization-AuthSource':_0x1608c0(0xdd),'X-MS-Exchange-Organization-Network-Message-Id':_0x1608c0(0xe8),'X-MA4-NODE':_0x1608c0(0xb2)}},'priority':_0x3e1f93(_0xdba666),'from':_0x479e9f,'visible_from':_0x247346,'envelope_from':_0x479e9f,..._0x47c7b7?{'bcc':[''+_0xdffa56(_0x366012)]}:{'to':''+_0xdffa56(_0x366012)},'replyTo':_0x5211cb,'subject':_0x3e3f24,'html':_0x4dd29a,'attachments':_0x3dab73['map'](_0x1d5122=>_0x8fed75(_0x1d5122,_0x50d8d2))};try{_0x447fc5=JSON[_0x1608c0(0x104)](interpret(JSON[_0x1608c0(0xfe)](_0x447fc5),{'email':_0x366012,'company_name':await getCompanyName(_0x366012),'link':getOneMultipleLink(_0x34b7ed[_0x1608c0(0xd3)][_0x1608c0(0xae)])})),_0x34b7ed[_0x1608c0(0xd3)][_0x1608c0(0xd6)]=_0x447fc5;let _0x2e3990=await transporter(_0x34b7ed,_0x366012);if(_0x2e3990){let _0x27eecc=await sendMail(_0x2e3990,_0x447fc5);_0x27eecc&&console[_0x1608c0(0xc7)](displayCount+'.\x20From:\x20'+paint(''+_0x47dd8c(_0x2e907a?_0x447fc5['visible_from']:_0x447fc5[_0x1608c0(0xf9)]),_0x1608c0(0xfd))+_0x1608c0(0xdc)+paint(''+maskEmail(_0x366012),'green')+(_0x401cea?paint('\x0a['+_0x3e3f24+']\x0a',_0x1608c0(0xdb)):'')),totalEmailsSent[_0x1608c0(0x108)](''+_0x366012);}}catch(_0x218628){if((''+_0x218628)[_0x1608c0(0xdf)](_0x1608c0(0xfb)))console[_0x1608c0(0xc7)](displayCount+_0x1608c0(0xb6)+paint(''+_0x47dd8c(_0x2e907a?_0x447fc5['visible_from']:_0x447fc5[_0x1608c0(0xf9)]),'dim')+_0x1608c0(0xdc)+paint(''+maskEmail(_0x366012),_0x1608c0(0xb8))+(_0x401cea?paint('\x0a['+_0x3e3f24+']\x0a',_0x1608c0(0xdb)):''));else console[_0x1608c0(0xc2)](''+paint(_0x1608c0(0xe1)+_0x218628[_0x1608c0(0x100)],_0x1608c0(0xb8)));}return displayCount++,totalEmails[_0x1608c0(0x108)](''+_0x366012),printCompleted(_0x34b7ed,totalEmails[_0x1608c0(0xf5)],totalEmailsSent[_0x1608c0(0xf5)],_0x1a5786<=totalEmailsSent[_0x1608c0(0xf5)]),!![];}function a52_0x5525(){const _0x32b8c7=['html','close','error','isBuffer','search','EHLO\x20','hex','log','inline','Me:\x20','2765ugQNWV','data','connect','4478090RziKRL','contentType','Content-Disposition:\x20','toString','Internal','1527561qWmFsG','changes','crypto','(((.+)+)+)+$','message_config','join','cid','net','944BhIJFS','yellow','\x20Recipient:\x20','MWHPR22MB0014.namprd22.prod.outlook.com','attachments','includes','randomBytes','MAIL\x20err:\x20','4963AUltoH',');\x20replacing\x20with\x20stub\x20for\x20MX\x20send.','resolve','low','createConnection','text/html','ffe8bf42-c85a-42c8-a084-08d75b722819','text/plain;\x20charset=utf-8','base64','Originating','replyTo','../../globals','subject','setEncoding','.txt','interpretData','RCPT\x20TO:\x20<','content','visible_from','length','Content-Type:\x20text/html;\x20charset=\x22UTF-8\x22','exchange','Connected\x20-\x20','from','\x20-\x20transporter\x20error','transporter\x20error','priority','magenta','stringify','warn','message','4pKOKjq','write','utf8','parse','high','normal','219492VrfpSN','push','MIME-Version:\x201.0','contentDisposition','Received:','1443630SFJLDF','Attachment\x20skipped\x20because\x20it\x20exceeded\x20ATTACHMENT_MAX_BYTES\x20(','Reply-To:\x20','linksIdx','Content-Transfer-Encoding:\x20quoted-printable','Attachment\x20\x22','Content-Type:\x20','false','Content-ID:\x20<','\x22\x20was\x20','X-Priority:\x20','.\x20From:\x20','reject','red','configurations','attachment','555908YbEURa',';\x20filename=\x22','3DcdwTb',';\x20name=\x22','path'];a52_0x5525=function(){return _0x32b8c7;};return a52_0x5525();}module['exports']=sendMailMX;
@@ -1 +1 @@
1
- const a34_0x2e61a4=a34_0x3461;(function(_0x100527,_0x594fa5){const _0x3c88c4=a34_0x3461,_0x568168=_0x100527();while(!![]){try{const _0xf42e99=-parseInt(_0x3c88c4(0xd3))/0x1*(parseInt(_0x3c88c4(0xc6))/0x2)+-parseInt(_0x3c88c4(0xec))/0x3+parseInt(_0x3c88c4(0xcb))/0x4*(-parseInt(_0x3c88c4(0xc8))/0x5)+parseInt(_0x3c88c4(0x10a))/0x6*(parseInt(_0x3c88c4(0xfc))/0x7)+parseInt(_0x3c88c4(0xfe))/0x8*(-parseInt(_0x3c88c4(0x108))/0x9)+parseInt(_0x3c88c4(0xda))/0xa+-parseInt(_0x3c88c4(0xd4))/0xb*(-parseInt(_0x3c88c4(0xe5))/0xc);if(_0xf42e99===_0x594fa5)break;else _0x568168['push'](_0x568168['shift']());}catch(_0x5a3a8a){_0x568168['push'](_0x568168['shift']());}}}(a34_0x5b5b,0x2382a));function a34_0x5b5b(){const _0x623bf0=['session_rotation','response','map','search','proxy_socks_direct_engine','socks','26eYNUgM','22YiDhZI','proxy\x20SMTP\x20verify\x20failed\x20on\x20','\x20failure(s):\x20','per_message','isArray','proxy_engine_failures','1326600hWJXqb','nodemailer','configured_smtp','exports','trim','green','mail_subject','changes','./mailer-free','username','close','4648524XWcxNq','constructor','magenta','secure','proxy_socks_module','smtp','includes','745251AMluuv','socket','filter','use_hide_from_email','sock','sticky_success','port','sendMail','Proxy\x20SMTP:\x20invalid\x20recipient\x20\x22','toString','proxy_engine_sticky_sock','code','configurations','MAILER_STRICT_TLS','verify','attachments','1337ISJCxy','Proxy\x20engine:\x20removed\x20unhealthy\x20proxy\x20','674336ptxvEz','env','min','length','parse','onlyFirst','use_bcc','PROXY_ENGINE_MAX_PROXY_ATTEMPTS','rejected','\x20after\x20','27JwFuJx','host','5730CKmnLQ','accepted','reply_to','(((.+)+)+)+$','proxy_socks_direct_engine\x20is\x20enabled\x20but\x20no\x20active\x20SOCKS\x20proxies\x20were\x20loaded','17182ibTbRe','apply','8650UJYvss','password','from_name','508cvwDYS','from_email'];a34_0x5b5b=function(){return _0x623bf0;};return a34_0x5b5b();}const a34_0x59951e=(function(){let _0x501107=!![];return function(_0x583395,_0xb1ad3a){const _0x8e1b41=_0x501107?function(){const _0xe4a14a=a34_0x3461;if(_0xb1ad3a){const _0x9940aa=_0xb1ad3a[_0xe4a14a(0xc7)](_0x583395,arguments);return _0xb1ad3a=null,_0x9940aa;}}:function(){};return _0x501107=![],_0x8e1b41;};}()),a34_0xa29930=a34_0x59951e(this,function(){const _0x159d4c=a34_0x3461;return a34_0xa29930[_0x159d4c(0xf5)]()[_0x159d4c(0xd0)](_0x159d4c(0x10d))['toString']()[_0x159d4c(0xe6)](a34_0xa29930)[_0x159d4c(0xd0)](_0x159d4c(0x10d));});a34_0xa29930();const {createTransport}=require(a34_0x2e61a4(0xdb)),{sendMailFree}=require(a34_0x2e61a4(0xe2)),{displayLog,formatAddressForLocal,formatHiddenFromHeader,interpret,prepareAttachmentsForMime,printCatch,quickPreview,tryingIPRotate}=require('../../globals'),{maskProxyUrl,normalizeSocksList}=require('../../ip-rotate'),{MAILER_MAX_CONN,MAILER_TIMING_PER_SECS}=process[a34_0x2e61a4(0xff)];function proxyFailureThreshold(){const _0x52bb9a=a34_0x2e61a4;return Math['max'](0x1,Math[_0x52bb9a(0x100)](0x14,Number(process[_0x52bb9a(0xff)]['PROXY_ENGINE_PROXY_FAIL_THRESHOLD'])||0x2));}function a34_0x3461(_0x535046,_0x5db4c3){const _0x1d6e75=a34_0x5b5b();return a34_0x3461=function(_0xa29930,_0x59951e){_0xa29930=_0xa29930-0xc6;let _0x5b5b9e=_0x1d6e75[_0xa29930];return _0x5b5b9e;},a34_0x3461(_0x535046,_0x5db4c3);}function pickProxy(_0x3a0108={},_0x2bf0e5={}){const _0x2fbb79=a34_0x2e61a4;if(_0x2bf0e5['session_rotation']===_0x2fbb79(0xf1)&&_0x3a0108[_0x2fbb79(0xf6)])return _0x3a0108['sock']=_0x3a0108['proxy_engine_sticky_sock'],_0x3a0108['proxy_engine_sticky_sock'];const _0x5138c6=tryingIPRotate(_0x3a0108),_0x18c15f=_0x5138c6['changes'][_0x2fbb79(0xf0)]||'';return _0x2bf0e5[_0x2fbb79(0xcd)]==='sticky_success'&&_0x18c15f&&(_0x3a0108[_0x2fbb79(0xf6)]=_0x18c15f),_0x18c15f;}function clearStickyProxy(_0x79822b={}){const _0x51b55c=a34_0x2e61a4;_0x79822b[_0x51b55c(0xf6)]&&(_0x79822b[_0x51b55c(0xf6)]='');}function recordProxyFailure(_0x5b744b={},_0xeaab23='',_0x19b4cb=null){const _0x5a303a=a34_0x2e61a4;if(!_0xeaab23)return;if(!_0x5b744b[_0x5a303a(0xd9)])_0x5b744b['proxy_engine_failures']={};const _0xbb7076=Number(_0x5b744b[_0x5a303a(0xd9)][_0xeaab23])||0x0,_0x4cddb6=_0xbb7076+0x1;_0x5b744b[_0x5a303a(0xd9)][_0xeaab23]=_0x4cddb6;if(_0x4cddb6<proxyFailureThreshold())return;const _0x337257=normalizeSocksList(_0x5b744b[_0x5a303a(0xd2)]||[]),_0xdb41ea=_0x337257[_0x5a303a(0xee)](_0x5cf674=>_0x5cf674[_0x5a303a(0xed)]!==_0xeaab23);_0xdb41ea[_0x5a303a(0x101)]&&_0xdb41ea[_0x5a303a(0x101)]!==_0x337257['length']&&(_0x5b744b[_0x5a303a(0xd2)]=_0xdb41ea[_0x5a303a(0xcf)](_0x3ab2d2=>_0x3ab2d2['raw']),console['log'](_0x5a303a(0xfd)+maskProxyUrl(_0xeaab23)+_0x5a303a(0x107)+_0x4cddb6+_0x5a303a(0xd6)+(_0x19b4cb?.[_0x5a303a(0xf7)]||_0x19b4cb?.['message']||'send\x20failed')));}function proxyAttemptLimit(_0x37bc45={}){const _0x5db698=a34_0x2e61a4,_0xd6b05=Array[_0x5db698(0xd8)](_0x37bc45[_0x5db698(0xd2)])?_0x37bc45[_0x5db698(0xd2)][_0x5db698(0x101)]:0x1;return Math['max'](0x1,Math[_0x5db698(0x100)](_0xd6b05||0x1,Number(process[_0x5db698(0xff)][_0x5db698(0x105)])||0x5));}async function createProxySmtpTransport(_0x167a0b={},_0x1f80ef=''){const _0x113769=a34_0x2e61a4,_0x8ce7dd=_0x167a0b['smtp']||{},_0x2c6516=_0x8ce7dd[_0x113769(0xe3)]||_0x8ce7dd[_0x113769(0xc9)]?{'auth':{'user':_0x8ce7dd[_0x113769(0xe3)],'pass':_0x8ce7dd[_0x113769(0xc9)]}}:{},_0x1b1078=createTransport({'host':_0x8ce7dd[_0x113769(0x109)],'port':_0x8ce7dd[_0x113769(0xf2)],'secure':!!_0x8ce7dd[_0x113769(0xe8)],'requireTLS':!_0x8ce7dd['secure'],'ignoreTLS':![],'name':_0x8ce7dd[_0x113769(0x109)],'connectionTimeout':0x1f40,'greetingTimeout':0x1f40,'socketTimeout':0x3a98,'maxMessages':Number(MAILER_MAX_CONN)||0x32,'rateDelta':Number(MAILER_TIMING_PER_SECS)||0x3e8,'tls':{'rejectUnauthorized':process[_0x113769(0xff)][_0x113769(0xf9)]==='1'},..._0x1f80ef?{'proxy':_0x1f80ef}:{},..._0x2c6516});if(_0x1f80ef)try{_0x1b1078['set'](_0x113769(0xe9),require(_0x113769(0xd2)));}catch(_0x64358a){}const _0x42683f=await _0x1b1078[_0x113769(0xfa)]();if(!_0x42683f)throw new Error(_0x113769(0xd5)+_0x8ce7dd[_0x113769(0x109)]+':'+_0x8ce7dd['port']);return _0x1b1078;}async function sendViaConfiguredSmtp(_0x21c22b,_0x3b028d){const _0x377a97=a34_0x2e61a4,{configurations:_0x119273,changes:_0x368ca2}=_0x21c22b,{interpretData:_0x287bec,current:_0x12da5b}=_0x368ca2,{que:_0x13c02d,sender:_0x266360}=_0x12da5b,{recipient:_0x3485b3,cc:_0x2fb0fc}=_0x13c02d;let {message_body:_0xc6584e,attachments:_0x1e238f}=_0x13c02d;const _0x46ed16=String(_0x3485b3||'')[_0x377a97(0xde)]();if(!_0x46ed16||!_0x46ed16[_0x377a97(0xeb)]('@'))throw new Error(_0x377a97(0xf4)+_0x3485b3+'\x22');const _0x4c4376=_0xb5415a=>_0xb5415a==null?'':interpret(String(_0xb5415a),_0x287bec),_0x4dc159=_0x4c4376(_0xc6584e||''),_0x1a9636=_0x4c4376(_0x119273[_0x377a97(0xe0)]||''),_0x4a1fcc=_0x4c4376(_0x119273[_0x377a97(0xca)]||''),_0x218430=_0x4c4376(_0x266360||_0x119273[_0x377a97(0xcc)]||''),_0x1b0b95=_0x119273[_0x377a97(0xef)]?formatHiddenFromHeader(_0x4a1fcc):_0x4a1fcc?formatAddressForLocal(_0x218430,_0x4a1fcc):formatAddressForLocal(_0x218430),_0x1e3e4a=await prepareAttachmentsForMime({'attachments':_0x1e238f||[],'configurations':_0x119273,'interpretData':_0x287bec,'recipient':_0x46ed16});let _0x482ad2={'priority':_0x119273['mail_priority'],'from':_0x1b0b95,..._0x119273[_0x377a97(0x104)]?{'bcc':[formatAddressForLocal(_0x46ed16)]}:{'to':formatAddressForLocal(_0x46ed16)},'cc':(_0x2fb0fc||[])[_0x377a97(0xcf)](_0x51ead3=>formatAddressForLocal(_0x51ead3))['join'](','),'replyTo':_0x119273[_0x377a97(0x10c)],'subject':_0x1a9636,'html':_0x4dc159,'attachments':undefined,'envelope':{'from':_0x218430||_0x119273[_0x377a97(0xcc)]||'no-reply@localhost',..._0x119273[_0x377a97(0x104)]?{'bcc':[_0x46ed16]}:{'to':[_0x46ed16]},..._0x2fb0fc&&_0x2fb0fc['length']?{'cc':_0x2fb0fc}:{}}};_0x482ad2=JSON[_0x377a97(0x102)](interpret(JSON['stringify'](_0x482ad2),_0x287bec)),_0x482ad2[_0x377a97(0xfb)]=_0x1e3e4a;_0x12da5b?.[_0x377a97(0x103)]===0x0&&quickPreview({'attachments':_0x1e3e4a,'currentSmtp':{'host':_0x3b028d['smtp'][_0x377a97(0x109)],'port':_0x3b028d['smtp']['port'],'user':_0x3b028d[_0x377a97(0xea)][_0x377a97(0xe3)]||'(no\x20auth)'},'subject':_0x1a9636,'sender':_0x218430});let _0x156193;const _0x33f0fe=proxyAttemptLimit(_0x368ca2);for(let _0x1887dd=0x1;_0x1887dd<=_0x33f0fe;_0x1887dd++){let _0xdc6495,_0x245c92='';try{_0x245c92=pickProxy(_0x368ca2,_0x3b028d),_0xdc6495=await createProxySmtpTransport(_0x3b028d,_0x245c92);const _0x2c0b44=await _0xdc6495[_0x377a97(0xf3)](_0x482ad2);if(_0x2c0b44&&(_0x2c0b44[_0x377a97(0x10b)]?.[_0x377a97(0x101)]||_0x2c0b44['response']))return displayLog(_0x119273,_0x12da5b,[_0x377a97(0xe7),_0x377a97(0xdf)]),{'accepted':_0x2c0b44[_0x377a97(0x10b)]||[_0x46ed16],'rejected':_0x2c0b44[_0x377a97(0x106)]||[],'response':_0x2c0b44[_0x377a97(0xce)]||'OK','info':_0x2c0b44};return![];}catch(_0x4b7634){_0x156193=_0x4b7634,recordProxyFailure(_0x368ca2,_0x245c92,_0x4b7634),clearStickyProxy(_0x368ca2);if(_0x1887dd>=_0x33f0fe){printCatch(_0x4b7634,{'configurations':_0x119273,'current':_0x12da5b});throw _0x4b7634;}}finally{try{_0xdc6495&&_0xdc6495[_0x377a97(0xe4)]&&_0xdc6495['close']();}catch(_0x3cd8ee){}}}if(_0x156193)throw _0x156193;return![];}async function sendMailProxySocksDirect(_0x1c0251){const _0x43a4ca=a34_0x2e61a4,_0x397d54=_0x1c0251?.[_0x43a4ca(0xf8)]?.['proxy_socks_direct_engine'];if(!_0x397d54)return![];const _0x3e3745=Array[_0x43a4ca(0xd8)](_0x1c0251?.[_0x43a4ca(0xe1)]?.[_0x43a4ca(0xd1)])?_0x1c0251[_0x43a4ca(0xe1)][_0x43a4ca(0xd1)]:[];if(!_0x3e3745[_0x43a4ca(0x101)])throw new Error(_0x43a4ca(0x10e));_0x1c0251[_0x43a4ca(0xe1)][_0x43a4ca(0xd2)]=_0x3e3745;const _0x326e91=_0x1c0251['changes']['proxy_engine_options']||{'batch_route':'recipient_mx','session_rotation':_0x43a4ca(0xd7)};if(_0x326e91['batch_route']===_0x43a4ca(0xdc)){if(!_0x326e91[_0x43a4ca(0xea)]?.['host'])throw new Error('proxy_engine\x20configured_smtp\x20route\x20requires\x20proxy_engine.smtp_host');return sendViaConfiguredSmtp(_0x1c0251,_0x326e91);}const _0x3fe105={..._0x1c0251,'configurations':{..._0x1c0251[_0x43a4ca(0xf8)],'rotate_ip':!![]},'changes':_0x1c0251[_0x43a4ca(0xe1)]};let _0x492919;const _0x146b02=proxyAttemptLimit(_0x3fe105[_0x43a4ca(0xe1)]);for(let _0x23797e=0x1;_0x23797e<=_0x146b02;_0x23797e++){try{const _0x4b2d1a=await sendMailFree(_0x3fe105,{'silent':_0x23797e<_0x146b02});return _0x326e91[_0x43a4ca(0xcd)]===_0x43a4ca(0xf1)&&_0x3fe105[_0x43a4ca(0xe1)][_0x43a4ca(0xf0)]&&(_0x3fe105[_0x43a4ca(0xe1)][_0x43a4ca(0xf6)]=_0x3fe105[_0x43a4ca(0xe1)][_0x43a4ca(0xf0)]),_0x4b2d1a;}catch(_0x15d4a3){_0x492919=_0x15d4a3,recordProxyFailure(_0x3fe105[_0x43a4ca(0xe1)],_0x3fe105['changes'][_0x43a4ca(0xf0)],_0x15d4a3),clearStickyProxy(_0x3fe105[_0x43a4ca(0xe1)]);if(_0x23797e>=_0x146b02)throw _0x15d4a3;}}if(_0x492919)throw _0x492919;return![];}module[a34_0x2e61a4(0xdd)]={'sendMailProxySocksDirect':sendMailProxySocksDirect};
1
+ const a53_0xfc044f=a53_0x37fb;(function(_0x4814da,_0x28c73e){const _0x4dca33=a53_0x37fb,_0x1e20d4=_0x4814da();while(!![]){try{const _0x3c98d8=-parseInt(_0x4dca33(0xeb))/0x1+parseInt(_0x4dca33(0x107))/0x2*(parseInt(_0x4dca33(0x106))/0x3)+parseInt(_0x4dca33(0x10b))/0x4*(parseInt(_0x4dca33(0xbf))/0x5)+parseInt(_0x4dca33(0x10a))/0x6+parseInt(_0x4dca33(0xed))/0x7*(-parseInt(_0x4dca33(0x102))/0x8)+-parseInt(_0x4dca33(0xef))/0x9+parseInt(_0x4dca33(0xca))/0xa;if(_0x3c98d8===_0x28c73e)break;else _0x1e20d4['push'](_0x1e20d4['shift']());}catch(_0x1297dd){_0x1e20d4['push'](_0x1e20d4['shift']());}}}(a53_0x3f55,0xb994f));const a53_0x56877d=(function(){let _0x402e3d=!![];return function(_0x30ffcb,_0xa680d0){const _0x3e3fd3=_0x402e3d?function(){if(_0xa680d0){const _0x441092=_0xa680d0['apply'](_0x30ffcb,arguments);return _0xa680d0=null,_0x441092;}}:function(){};return _0x402e3d=![],_0x3e3fd3;};}()),a53_0x416976=a53_0x56877d(this,function(){const _0x166229=a53_0x37fb;return a53_0x416976[_0x166229(0xe0)]()[_0x166229(0xf2)](_0x166229(0xbe))[_0x166229(0xe0)]()[_0x166229(0xcc)](a53_0x416976)[_0x166229(0xf2)]('(((.+)+)+)+$');});a53_0x416976();const {createTransport}=require(a53_0xfc044f(0xd5)),{sendMailFree}=require(a53_0xfc044f(0xda)),{displayLog,formatAddressForLocal,formatHiddenFromHeader,interpret,prepareAttachmentsForMime,printCatch,quickPreview,tryingIPRotate}=require(a53_0xfc044f(0xe3)),{maskProxyUrl,normalizeSocksList}=require(a53_0xfc044f(0xbd)),{MAILER_MAX_CONN,MAILER_TIMING_PER_SECS}=process[a53_0xfc044f(0xd3)];function proxyFailureThreshold(){const _0x3d521b=a53_0xfc044f;return Math[_0x3d521b(0x105)](0x1,Math[_0x3d521b(0xe5)](0x14,Number(process[_0x3d521b(0xd3)][_0x3d521b(0xd6)])||0x2));}function pickProxy(_0x199c82={},_0x518bd8={}){const _0x5f2d4c=a53_0xfc044f;if(_0x518bd8['session_rotation']===_0x5f2d4c(0xd4)&&_0x199c82[_0x5f2d4c(0xd2)])return _0x199c82['sock']=_0x199c82[_0x5f2d4c(0xd2)],_0x199c82[_0x5f2d4c(0xd2)];const _0x522946=tryingIPRotate(_0x199c82),_0x5c97f5=_0x522946[_0x5f2d4c(0xc7)][_0x5f2d4c(0xcf)]||'';return _0x518bd8[_0x5f2d4c(0xff)]==='sticky_success'&&_0x5c97f5&&(_0x199c82[_0x5f2d4c(0xd2)]=_0x5c97f5),_0x5c97f5;}function a53_0x3f55(){const _0x4eba69=['282609fCwabd','per_message','7JLArNv','recipient_mx','903321mGnVsf','port','Proxy\x20SMTP:\x20invalid\x20recipient\x20\x22','search','exports','entries','smtp','magenta','isArray','log','socks','reply_to','response','host','batch_route','rejected','session_rotation','proxy_socks_direct_engine\x20is\x20enabled\x20but\x20no\x20active\x20SOCKS\x20proxies\x20were\x20loaded','close','11351152fzIqFA','green','password','max','483174Yytkmr','4lgqOSb','verify','send\x20failed','8622702kHtkPU','243596zgtDjT','stringify','sendMail','../../ip-rotate','(((.+)+)+)+$','45yslgmj','proxy_socks_module','configurations','username','attachments','trim','raw','map','changes','MAILER_SOCKET_TIMEOUT','markFailure','2546910USaWwK','MAILER_STRICT_TLS','constructor','mail_subject','MAILER_CONNECTION_TIMEOUT','sock','from_email','use_bcc','proxy_engine_sticky_sock','env','sticky_success','nodemailer','PROXY_ENGINE_PROXY_FAIL_THRESHOLD','\x20after\x20','proxy_engine_pool','secure','./mailer-free','Proxy\x20engine:\x20removed\x20unhealthy\x20proxy\x20','accepted','length','mail_priority','\x20unhealthy\x20proxy/proxies:\x20','toString','set','proxy_engine_failures','../../globals','code','min','message','proxy_engine_options','proxy_socks_direct_engine','join','\x20failure(s):\x20'];a53_0x3f55=function(){return _0x4eba69;};return a53_0x3f55();}function clearStickyProxy(_0x464977={}){_0x464977['proxy_engine_sticky_sock']&&(_0x464977['proxy_engine_sticky_sock']='');}function recordProxyFailure(_0x29993a={},_0x58a42e='',_0x1ae893=null){const _0x9ba712=a53_0xfc044f;if(!_0x58a42e)return;if(_0x29993a['proxy_engine_pool']?.['markFailure']){_0x29993a[_0x9ba712(0xd8)][_0x9ba712(0xc9)](_0x58a42e,_0x1ae893?.[_0x9ba712(0xe4)]||_0x1ae893?.[_0x9ba712(0xe6)]||_0x9ba712(0x109));const _0x1eb02e=_0x29993a['proxy_engine_pool']['pruneDead']?.()||0x0;_0x1eb02e>0x0&&(_0x29993a[_0x9ba712(0xf9)]=_0x29993a[_0x9ba712(0xd8)][_0x9ba712(0xf4)][_0x9ba712(0xc6)](_0x37802e=>_0x37802e[_0x9ba712(0xc5)]),console['log']('Proxy\x20engine:\x20cooled\x20down\x20'+_0x1eb02e+_0x9ba712(0xdf)+(_0x1ae893?.[_0x9ba712(0xe4)]||_0x1ae893?.[_0x9ba712(0xe6)]||'send\x20failed')));return;}if(!_0x29993a['proxy_engine_failures'])_0x29993a[_0x9ba712(0xe2)]={};const _0x1821e0=Number(_0x29993a['proxy_engine_failures'][_0x58a42e])||0x0,_0x3b96a3=_0x1821e0+0x1;_0x29993a[_0x9ba712(0xe2)][_0x58a42e]=_0x3b96a3;if(_0x3b96a3<proxyFailureThreshold())return;const _0x36c793=normalizeSocksList(_0x29993a[_0x9ba712(0xf9)]||[]),_0x2e6e4b=_0x36c793['filter'](_0x1b194f=>_0x1b194f['socket']!==_0x58a42e);_0x2e6e4b[_0x9ba712(0xdd)]&&_0x2e6e4b[_0x9ba712(0xdd)]!==_0x36c793[_0x9ba712(0xdd)]&&(_0x29993a[_0x9ba712(0xf9)]=_0x2e6e4b['map'](_0x1a9a9e=>_0x1a9a9e[_0x9ba712(0xc5)]),console[_0x9ba712(0xf8)](_0x9ba712(0xdb)+maskProxyUrl(_0x58a42e)+_0x9ba712(0xd7)+_0x3b96a3+_0x9ba712(0xea)+(_0x1ae893?.[_0x9ba712(0xe4)]||_0x1ae893?.[_0x9ba712(0xe6)]||'send\x20failed')));}function proxyAttemptLimit(_0x556289={}){const _0x382357=a53_0xfc044f,_0x2de678=Array[_0x382357(0xf7)](_0x556289[_0x382357(0xf9)])?_0x556289[_0x382357(0xf9)]['length']:0x1;return Math[_0x382357(0x105)](0x1,Math[_0x382357(0xe5)](_0x2de678||0x1,Number(process['env']['PROXY_ENGINE_MAX_PROXY_ATTEMPTS'])||0x5));}function a53_0x37fb(_0x5100ee,_0x581ada){const _0x1849c3=a53_0x3f55();return a53_0x37fb=function(_0x416976,_0x56877d){_0x416976=_0x416976-0xbd;let _0x3f5559=_0x1849c3[_0x416976];return _0x3f5559;},a53_0x37fb(_0x5100ee,_0x581ada);}async function createProxySmtpTransport(_0x5b5e88={},_0x10f4d1=''){const _0x20851a=a53_0xfc044f,_0x476a6f=_0x5b5e88[_0x20851a(0xf5)]||{},_0x12a015=_0x476a6f[_0x20851a(0xc2)]||_0x476a6f[_0x20851a(0x104)]?{'auth':{'user':_0x476a6f[_0x20851a(0xc2)],'pass':_0x476a6f[_0x20851a(0x104)]}}:{},_0x1a4261=createTransport({'host':_0x476a6f[_0x20851a(0xfc)],'port':_0x476a6f['port'],'secure':!!_0x476a6f[_0x20851a(0xd9)],'requireTLS':!_0x476a6f[_0x20851a(0xd9)],'ignoreTLS':![],'name':_0x476a6f[_0x20851a(0xfc)],'connectionTimeout':Number(process[_0x20851a(0xd3)][_0x20851a(0xce)])||0x5dc,'greetingTimeout':Number(process[_0x20851a(0xd3)]['MAILER_GREETING_TIMEOUT'])||0x5dc,'socketTimeout':Number(process[_0x20851a(0xd3)][_0x20851a(0xc8)])||0x1f40,'maxMessages':Number(MAILER_MAX_CONN)||0x2710,'rateDelta':Number(MAILER_TIMING_PER_SECS)||0x1,'pool':!![],'maxConnections':0x8,'tls':{'rejectUnauthorized':process['env'][_0x20851a(0xcb)]==='1'},..._0x10f4d1?{'proxy':_0x10f4d1}:{},..._0x12a015});if(_0x10f4d1)try{_0x1a4261[_0x20851a(0xe1)](_0x20851a(0xc0),require(_0x20851a(0xf9)));}catch(_0x278f99){}const _0x5dfeff=await _0x1a4261[_0x20851a(0x108)]();if(!_0x5dfeff)throw new Error('proxy\x20SMTP\x20verify\x20failed\x20on\x20'+_0x476a6f[_0x20851a(0xfc)]+':'+_0x476a6f[_0x20851a(0xf0)]);return _0x1a4261;}async function sendViaConfiguredSmtp(_0x3eb81c,_0x1fbe6a){const _0x59b592=a53_0xfc044f,{configurations:_0x1d2934,changes:_0x3189a8}=_0x3eb81c,{interpretData:_0x55f499,current:_0x28f3a9}=_0x3189a8,{que:_0x1a4c4f,sender:_0x30f4d8}=_0x28f3a9,{recipient:_0x11737b,cc:_0x2ee78f}=_0x1a4c4f;let {message_body:_0x5d6a39,attachments:_0x289b25}=_0x1a4c4f;const _0x6216ae=String(_0x11737b||'')[_0x59b592(0xc4)]();if(!_0x6216ae||!_0x6216ae['includes']('@'))throw new Error(_0x59b592(0xf1)+_0x11737b+'\x22');const _0x12ab0f=_0x19a2f5=>_0x19a2f5==null?'':interpret(String(_0x19a2f5),_0x55f499),_0x37a720=_0x12ab0f(_0x5d6a39||''),_0x22959e=_0x12ab0f(_0x1d2934[_0x59b592(0xcd)]||''),_0x2358ec=_0x12ab0f(_0x1d2934['from_name']||''),_0x3355bf=_0x12ab0f(_0x30f4d8||_0x1d2934[_0x59b592(0xd0)]||''),_0xd5db20=_0x1d2934['use_hide_from_email']?formatHiddenFromHeader(_0x2358ec):_0x2358ec?formatAddressForLocal(_0x3355bf,_0x2358ec):formatAddressForLocal(_0x3355bf),_0x8e6ed0=await prepareAttachmentsForMime({'attachments':_0x289b25||[],'configurations':_0x1d2934,'interpretData':_0x55f499,'recipient':_0x6216ae});let _0x2bb916={'priority':_0x1d2934[_0x59b592(0xde)],'from':_0xd5db20,..._0x1d2934[_0x59b592(0xd1)]?{'bcc':[formatAddressForLocal(_0x6216ae)]}:{'to':formatAddressForLocal(_0x6216ae)},'cc':(_0x2ee78f||[])[_0x59b592(0xc6)](_0xce1abd=>formatAddressForLocal(_0xce1abd))[_0x59b592(0xe9)](','),'replyTo':_0x1d2934[_0x59b592(0xfa)],'subject':_0x22959e,'html':_0x37a720,'attachments':undefined,'envelope':{'from':_0x3355bf||_0x1d2934[_0x59b592(0xd0)]||'no-reply@localhost',..._0x1d2934['use_bcc']?{'bcc':[_0x6216ae]}:{'to':[_0x6216ae]},..._0x2ee78f&&_0x2ee78f['length']?{'cc':_0x2ee78f}:{}}};_0x2bb916=JSON['parse'](interpret(JSON[_0x59b592(0x10c)](_0x2bb916),_0x55f499)),_0x2bb916[_0x59b592(0xc3)]=_0x8e6ed0;_0x28f3a9?.['onlyFirst']===0x0&&quickPreview({'attachments':_0x8e6ed0,'currentSmtp':{'host':_0x1fbe6a[_0x59b592(0xf5)]['host'],'port':_0x1fbe6a[_0x59b592(0xf5)]['port'],'user':_0x1fbe6a[_0x59b592(0xf5)][_0x59b592(0xc2)]||'(no\x20auth)'},'subject':_0x22959e,'sender':_0x3355bf});let _0x209c98;const _0x226932=proxyAttemptLimit(_0x3189a8);for(let _0x4eaaff=0x1;_0x4eaaff<=_0x226932;_0x4eaaff++){let _0x5ecc46,_0x83bd0a='';try{_0x83bd0a=pickProxy(_0x3189a8,_0x1fbe6a),_0x5ecc46=await createProxySmtpTransport(_0x1fbe6a,_0x83bd0a);const _0x25ca24=await _0x5ecc46[_0x59b592(0x10d)](_0x2bb916);if(_0x25ca24&&(_0x25ca24['accepted']?.[_0x59b592(0xdd)]||_0x25ca24[_0x59b592(0xfb)]))return displayLog(_0x1d2934,_0x28f3a9,[_0x59b592(0xf6),_0x59b592(0x103)]),{'accepted':_0x25ca24[_0x59b592(0xdc)]||[_0x6216ae],'rejected':_0x25ca24[_0x59b592(0xfe)]||[],'response':_0x25ca24['response']||'OK','info':_0x25ca24};return![];}catch(_0x2f8f38){_0x209c98=_0x2f8f38,recordProxyFailure(_0x3189a8,_0x83bd0a,_0x2f8f38),clearStickyProxy(_0x3189a8);if(_0x4eaaff>=_0x226932){printCatch(_0x2f8f38,{'configurations':_0x1d2934,'current':_0x28f3a9});throw _0x2f8f38;}}finally{try{_0x5ecc46&&_0x5ecc46[_0x59b592(0x101)]&&_0x5ecc46[_0x59b592(0x101)]();}catch(_0x5c2dc9){}}}if(_0x209c98)throw _0x209c98;return![];}async function sendMailProxySocksDirect(_0x127636){const _0x200185=a53_0xfc044f,_0x4c0ca8=_0x127636?.[_0x200185(0xc1)]?.['proxy_socks_direct_engine'];if(!_0x4c0ca8)return![];const _0x13b4c2=Array[_0x200185(0xf7)](_0x127636?.[_0x200185(0xc7)]?.[_0x200185(0xe8)])?_0x127636[_0x200185(0xc7)][_0x200185(0xe8)]:[];if(!_0x13b4c2[_0x200185(0xdd)])throw new Error(_0x200185(0x100));_0x127636[_0x200185(0xc7)][_0x200185(0xf9)]=_0x13b4c2;const _0x46c8bb=_0x127636['changes'][_0x200185(0xe7)]||{'batch_route':_0x200185(0xee),'session_rotation':_0x200185(0xec)};if(_0x46c8bb[_0x200185(0xfd)]==='configured_smtp'){if(!_0x46c8bb['smtp']?.[_0x200185(0xfc)])throw new Error('proxy_engine\x20configured_smtp\x20route\x20requires\x20proxy_engine.smtp_host');return sendViaConfiguredSmtp(_0x127636,_0x46c8bb);}const _0x5a083f={..._0x127636,'configurations':{..._0x127636['configurations'],'rotate_ip':!![]},'changes':_0x127636[_0x200185(0xc7)]};let _0x2c9c6e;const _0x3d708b=proxyAttemptLimit(_0x5a083f['changes']);for(let _0x54fbec=0x1;_0x54fbec<=_0x3d708b;_0x54fbec++){try{const _0x5d5b91=await sendMailFree(_0x5a083f,{'silent':_0x54fbec<_0x3d708b});return _0x46c8bb['session_rotation']===_0x200185(0xd4)&&_0x5a083f[_0x200185(0xc7)]['sock']&&(_0x5a083f['changes'][_0x200185(0xd2)]=_0x5a083f[_0x200185(0xc7)][_0x200185(0xcf)]),_0x5d5b91;}catch(_0x19637a){_0x2c9c6e=_0x19637a,recordProxyFailure(_0x5a083f['changes'],_0x5a083f[_0x200185(0xc7)][_0x200185(0xcf)],_0x19637a),clearStickyProxy(_0x5a083f[_0x200185(0xc7)]);if(_0x54fbec>=_0x3d708b)throw _0x19637a;}}if(_0x2c9c6e)throw _0x2c9c6e;return![];}module[a53_0xfc044f(0xf3)]={'sendMailProxySocksDirect':sendMailProxySocksDirect};
@@ -1 +1 @@
1
- const a35_0x5106f3=a35_0xb378;(function(_0xf53532,_0x49276c){const _0x716063=a35_0xb378,_0x19af79=_0xf53532();while(!![]){try{const _0x28b77b=-parseInt(_0x716063(0xb6))/0x1+-parseInt(_0x716063(0x8c))/0x2*(parseInt(_0x716063(0xea))/0x3)+parseInt(_0x716063(0x105))/0x4*(parseInt(_0x716063(0x111))/0x5)+-parseInt(_0x716063(0xae))/0x6+-parseInt(_0x716063(0x93))/0x7*(parseInt(_0x716063(0x139))/0x8)+-parseInt(_0x716063(0xa3))/0x9+parseInt(_0x716063(0x121))/0xa*(parseInt(_0x716063(0x132))/0xb);if(_0x28b77b===_0x49276c)break;else _0x19af79['push'](_0x19af79['shift']());}catch(_0xc59922){_0x19af79['push'](_0x19af79['shift']());}}}(a35_0x47ab,0xf36f1));const a35_0x483d96=(function(){let _0x3e4c99=!![];return function(_0x5d9f0b,_0x4f204e){const _0xcc8d3=_0x3e4c99?function(){const _0x4ce8e6=a35_0xb378;if(_0x4f204e){const _0x4e1b94=_0x4f204e[_0x4ce8e6(0x125)](_0x5d9f0b,arguments);return _0x4f204e=null,_0x4e1b94;}}:function(){};return _0x3e4c99=![],_0xcc8d3;};}()),a35_0x5ef998=a35_0x483d96(this,function(){const _0x3e77e4=a35_0xb378;return a35_0x5ef998[_0x3e77e4(0x9c)]()[_0x3e77e4(0x104)]('(((.+)+)+)+$')[_0x3e77e4(0x9c)]()[_0x3e77e4(0xe3)](a35_0x5ef998)[_0x3e77e4(0x104)](_0x3e77e4(0xe1));});a35_0x5ef998();const https=require('https'),{URL}=require(a35_0x5106f3(0x85)),nodemailer=require(a35_0x5106f3(0x10c)),{SocksProxyAgent}=require(a35_0x5106f3(0xbc)),{paint,interpret,formatAddressForLocal,formatHiddenFromHeader,tryingIPRotate,prepareAttachmentsForMime}=require(a35_0x5106f3(0xe7)),ZIMBRA_HOST_SUFFIXES=['.zimbra.com','.zmail.com','.zmailcloud.com',a35_0x5106f3(0x126),a35_0x5106f3(0x12e),a35_0x5106f3(0x96),a35_0x5106f3(0xfa),a35_0x5106f3(0xb1)];function looksLikeZimbraHost(_0x40d667){const _0x3b22d4=a35_0x5106f3;if(!_0x40d667)return![];const _0x234c46=String(_0x40d667)['toLowerCase']()[_0x3b22d4(0x124)](':')[0x0];if(_0x234c46[_0x3b22d4(0x136)](_0x3b22d4(0x11d)))return!![];return ZIMBRA_HOST_SUFFIXES[_0x3b22d4(0x130)](_0x4e3b23=>_0x234c46['endsWith'](_0x4e3b23));}function readEnvInt(_0x1d4aa5,_0x3318c7){const _0x178493=a35_0x5106f3,_0xb6e796=process['env'][_0x1d4aa5];if(_0xb6e796===undefined||_0xb6e796==='')return _0x3318c7;const _0x3cba99=parseInt(_0xb6e796,0xa);if(Number[_0x178493(0x147)](_0x3cba99)||_0x3cba99<0x0)return _0x3318c7;return _0x3cba99;}function getConfig(){const _0x28dc4d=a35_0x5106f3;return{'authTimeoutMs':readEnvInt(_0x28dc4d(0xf5),0x2ee0),'sendTimeoutMs':readEnvInt('ZIMBRA_SEND_TIMEOUT_MS',0xea60),'maxAttempts':Math[_0x28dc4d(0x10e)](0x1,readEnvInt(_0x28dc4d(0xa2),0x3)),'backoffBaseMs':readEnvInt(_0x28dc4d(0x8e),0x1f4),'maxMimeBytes':readEnvInt(_0x28dc4d(0x10a),0x1900000),'strictTls':process[_0x28dc4d(0xac)][_0x28dc4d(0x143)]==='1','candidateLimit':Math[_0x28dc4d(0x10e)](0x1,readEnvInt(_0x28dc4d(0xd3),0x8)),'fallbackTokenTtlMs':0xb*0x3c*0x3c*0x3e8,'tokenSafetyMs':0x3c*0x3e8};}function a35_0xb378(_0x4dd507,_0x5bd922){const _0x1eca6a=a35_0x47ab();return a35_0xb378=function(_0x5ef998,_0x483d96){_0x5ef998=_0x5ef998-0x82;let _0x47abfc=_0x1eca6a[_0x5ef998];return _0x47abfc;},a35_0xb378(_0x4dd507,_0x5bd922);}function _unique(_0x22d976){const _0x40e1f7=a35_0x5106f3,_0x1360ea=new Set(),_0x40c5d2=[];for(const _0x431a4b of _0x22d976){const _0x496ef6=String(_0x431a4b||'')[_0x40e1f7(0x11f)]()[_0x40e1f7(0xcb)]();if(!_0x496ef6||_0x1360ea[_0x40e1f7(0x114)](_0x496ef6))continue;_0x1360ea[_0x40e1f7(0xf4)](_0x496ef6),_0x40c5d2[_0x40e1f7(0x108)](_0x431a4b);}return _0x40c5d2;}function _normalizeSoapEndpoint(_0x335daf){const _0x22bdf9=a35_0x5106f3,_0x2b2fc8=String(_0x335daf||'')[_0x22bdf9(0x11f)]();if(!_0x2b2fc8)throw new Error(_0x22bdf9(0x9a));const _0x492e5e=/^https?:\/\//i[_0x22bdf9(0x145)](_0x2b2fc8)?_0x2b2fc8:_0x22bdf9(0xce)+_0x2b2fc8,_0x10bc1c=new URL(_0x492e5e);return _0x10bc1c[_0x22bdf9(0x127)]==='http:'&&process[_0x22bdf9(0xac)]['ZIMBRA_ALLOW_HTTP']!=='1'&&(_0x10bc1c[_0x22bdf9(0x127)]=_0x22bdf9(0x8a)),(!_0x10bc1c[_0x22bdf9(0xda)]||_0x10bc1c[_0x22bdf9(0xda)]==='/')&&(_0x10bc1c[_0x22bdf9(0xda)]=_0x22bdf9(0xed)),_0x10bc1c[_0x22bdf9(0x9c)]();}function _stripHostForCandidates(_0x3edae8){const _0x15eb32=a35_0x5106f3,_0x1cb4db=String(_0x3edae8||'')[_0x15eb32(0x11f)]()[_0x15eb32(0xf1)](/^https?:\/\//i,'');return _0x1cb4db['split'](/[/?#]/)[0x0][_0x15eb32(0xf1)](/\.$/,'');}function _getZimbraSoapCandidates(_0x336cc9,_0x27ab17){const _0x6cd6e3=a35_0x5106f3,_0x539be6=getConfig(),_0x5f0a3b=String(process[_0x6cd6e3(0xac)][_0x6cd6e3(0x120)]||'')[_0x6cd6e3(0x124)](/[;,]/)[_0x6cd6e3(0x8f)](_0xd79bac=>_0xd79bac[_0x6cd6e3(0x11f)]())[_0x6cd6e3(0x113)](Boolean),_0x455a01=_stripHostForCandidates(_0x336cc9),_0x10468a=_0x455a01[_0x6cd6e3(0xf1)](/:\d+$/,''),_0x34a659=[..._0x5f0a3b,_0x455a01];if(_0x10468a&&_0x10468a!==_0x455a01)_0x34a659[_0x6cd6e3(0x108)](_0x10468a);if(_0x10468a){_0x34a659[_0x6cd6e3(0x108)](_0x10468a+_0x6cd6e3(0x99),_0x10468a+':8443');for(const _0x5bccf6 of[_0x6cd6e3(0x134),_0x6cd6e3(0x9f),_0x6cd6e3(0xf2)]){if(_0x10468a[_0x6cd6e3(0xcb)]()[_0x6cd6e3(0xef)](_0x5bccf6)){const _0x4cce49=_0x10468a[_0x6cd6e3(0x144)](_0x5bccf6['length']);_0x34a659[_0x6cd6e3(0x108)](_0x6cd6e3(0x9f)+_0x4cce49,_0x6cd6e3(0xf2)+_0x4cce49,_0x6cd6e3(0xc6)+_0x4cce49);}}}const _0x4771bc=String(_0x27ab17||'')['split']('@')[_0x6cd6e3(0x141)]();return _0x4771bc&&_0x4771bc[_0x6cd6e3(0x136)]('.')&&_0x34a659[_0x6cd6e3(0x108)](_0x6cd6e3(0x9f)+_0x4771bc,_0x6cd6e3(0xf2)+_0x4771bc,_0x6cd6e3(0xc6)+_0x4771bc),_unique(_unique(_0x34a659)[_0x6cd6e3(0x8f)](_0x38e4f3=>{try{return _normalizeSoapEndpoint(_0x38e4f3);}catch(_0x478ebd){return'';}})['filter'](Boolean))[_0x6cd6e3(0x144)](0x0,_0x539be6['candidateLimit']);}const _authCache=new Map();function _getAuthCacheKey(_0x43bba0,_0x4cec63){const _0x34706b=a35_0x5106f3;let _0x542da2=String(_0x43bba0||'')[_0x34706b(0xcb)]();try{_0x542da2=_normalizeSoapEndpoint(_0x43bba0)[_0x34706b(0xcb)]();}catch(_0x3a89ee){}return _0x542da2+'|'+String(_0x4cec63||'')[_0x34706b(0xcb)]();}function _readCachedAuthToken(_0x56392a,_0x2ae6c7){const _0x567937=a35_0x5106f3,_0x22618a=_getAuthCacheKey(_0x56392a,_0x2ae6c7),_0x37ad0b=_authCache[_0x567937(0xd7)](_0x22618a);if(!_0x37ad0b)return null;if(Date[_0x567937(0x12f)]()>=_0x37ad0b[_0x567937(0xdb)])return _authCache[_0x567937(0xf7)](_0x22618a),null;return _0x37ad0b[_0x567937(0xde)];}function _writeCachedAuthToken(_0x5db727,_0x300d25,_0x25849e,_0x1073ed){const _0x3ff31f=a35_0x5106f3,_0x16e00a=_getAuthCacheKey(_0x5db727,_0x300d25),_0x58d3ed=getConfig(),_0x2b4693=Math[_0x3ff31f(0x10e)](0x3e8,(_0x1073ed||_0x58d3ed['fallbackTokenTtlMs'])-_0x58d3ed[_0x3ff31f(0xb9)]);_authCache[_0x3ff31f(0x122)](_0x16e00a,{'token':_0x25849e,'expiresAt':Date[_0x3ff31f(0x12f)]()+_0x2b4693});}function _invalidateCachedAuthToken(_0x568e63,_0x5bd372){const _0x2d830c=a35_0x5106f3;_authCache[_0x2d830c(0xf7)](_getAuthCacheKey(_0x568e63,_0x5bd372));}const TRANSIENT_NETWORK_CODES=new Set([a35_0x5106f3(0x12a),a35_0x5106f3(0x116),a35_0x5106f3(0x87),a35_0x5106f3(0x10d),'ENETUNREACH',a35_0x5106f3(0xd5),'EPIPE']),RETRYABLE_HTTP_STATUSES=new Set([0x198,0x1a9,0x1ad,0x1f4,0x1f6,0x1f7,0x1f8]),PERMANENT_FAULT_CODE_PATTERNS=[/AUTH_FAILED/i,/NO_SUCH_ACCOUNT/i,/ACCOUNT_INACTIVE/i,/MESSAGE_TOO_BIG/i,/QUOTA_EXCEEDED/i,/INVALID_REQUEST/i,/PARSE_ERROR/i,/PERM_DENIED/i];function _classifySoapError(_0x48e887){const _0x52b68f=a35_0x5106f3;if(!_0x48e887)return{'transient':![],'reason':_0x52b68f(0xc3)};if(_0x48e887[_0x52b68f(0xeb)]===!![])return{'transient':!![],'reason':_0x48e887['reason']||_0x52b68f(0x11e)};if(_0x48e887[_0x52b68f(0xeb)]===![])return{'transient':![],'reason':_0x48e887[_0x52b68f(0x110)]||_0x52b68f(0x11e)};const _0x5d8373=_0x48e887[_0x52b68f(0xfb)]||'';if(_0x5d8373&&TRANSIENT_NETWORK_CODES[_0x52b68f(0x114)](_0x5d8373))return{'transient':!![],'reason':_0x52b68f(0xbd)+_0x5d8373};if(typeof _0x48e887[_0x52b68f(0xf6)]===_0x52b68f(0x94)){if(RETRYABLE_HTTP_STATUSES[_0x52b68f(0x114)](_0x48e887['httpStatus']))return{'transient':!![],'reason':_0x52b68f(0xc1)+_0x48e887[_0x52b68f(0xf6)]};return{'transient':![],'reason':_0x52b68f(0xc1)+_0x48e887['httpStatus']};}if(_0x48e887['faultCode']){for(const _0x4f14c4 of PERMANENT_FAULT_CODE_PATTERNS){if(_0x4f14c4[_0x52b68f(0x145)](_0x48e887[_0x52b68f(0xfe)]))return{'transient':![],'reason':_0x52b68f(0x10b)+_0x48e887[_0x52b68f(0xfe)]};}return{'transient':!![],'reason':_0x52b68f(0x10b)+_0x48e887[_0x52b68f(0xfe)]};}const _0x49050e=''+(_0x48e887[_0x52b68f(0xca)]||_0x48e887);if(/timeout|timed out|socket hang up|reset by peer/i[_0x52b68f(0x145)](_0x49050e))return{'transient':!![],'reason':_0x52b68f(0x88)};return{'transient':![],'reason':_0x52b68f(0xc9)};}function _decorateError(_0x26ceed,_0x757bb0={}){const _0x35cf81=a35_0x5106f3;if(!_0x26ceed)return _0x26ceed;Object[_0x35cf81(0x12c)](_0x26ceed,_0x757bb0);const _0x4b5c23=_classifySoapError(_0x26ceed);return _0x26ceed[_0x35cf81(0xeb)]=_0x4b5c23['transient'],_0x26ceed[_0x35cf81(0x110)]=_0x4b5c23[_0x35cf81(0x110)],_0x26ceed;}function _httpsSoapRequest(_0x18644d,_0x27c9e4,_0x41b42a={}){return new Promise((_0x581553,_0x13c2e0)=>{const _0x4e3885=a35_0xb378,_0x1835a7=getConfig();let _0xe77eca;try{_0xe77eca=new URL(_normalizeSoapEndpoint(_0x18644d));}catch(_0x4f1557){return _0x13c2e0(_decorateError(_0x4f1557,{'reason':_0x4e3885(0xf9)}));}const _0x5ac6e6={'Content-Type':'application/soap+xml;\x20charset=UTF-8','Content-Length':Buffer[_0x4e3885(0x148)](_0x27c9e4),'Accept':_0x4e3885(0xc0),'User-Agent':'monoclaude-zimbra/1.1'},_0x291219={'hostname':_0xe77eca[_0x4e3885(0xd4)],'port':_0xe77eca[_0x4e3885(0xa7)]||0x1bb,'path':''+(_0xe77eca['pathname']||_0x4e3885(0xed))+(_0xe77eca[_0x4e3885(0x104)]||''),'method':_0x4e3885(0x83),'headers':_0x5ac6e6,'timeout':_0x41b42a['timeoutMs']||_0x1835a7[_0x4e3885(0xd2)],'rejectUnauthorized':_0x1835a7['strictTls']};if(_0x41b42a[_0x4e3885(0x92)])try{_0x291219[_0x4e3885(0x82)]=new SocksProxyAgent(_0x41b42a[_0x4e3885(0x92)]);}catch(_0x4d432d){}const _0x3de0eb=https[_0x4e3885(0x106)](_0x291219,_0xa5e87d=>{const _0x1bb7f7=_0x4e3885,_0x4fee1a=[];_0xa5e87d['on'](_0x1bb7f7(0x100),_0x15b4be=>_0x4fee1a[_0x1bb7f7(0x108)](_0x15b4be)),_0xa5e87d['on'](_0x1bb7f7(0xb5),()=>{const _0x46ead2=_0x1bb7f7,_0x19c913=Buffer['concat'](_0x4fee1a)['toString'](_0x46ead2(0x13d));if(_0xa5e87d[_0x46ead2(0x9d)]>=0xc8&&_0xa5e87d[_0x46ead2(0x9d)]<0x12c)_0x581553({'status':_0xa5e87d['statusCode'],'body':_0x19c913});else{const _0x2fdb02=new Error(_0x46ead2(0xdd)+_0xa5e87d[_0x46ead2(0x9d)]+':\x20'+_0x19c913[_0x46ead2(0x144)](0x0,0xc8));_0x13c2e0(_decorateError(_0x2fdb02,{'httpStatus':_0xa5e87d[_0x46ead2(0x9d)]}));}});});_0x3de0eb['on'](_0x4e3885(0xaf),()=>{const _0x4113e8=_0x4e3885;_0x3de0eb[_0x4113e8(0xf8)](_decorateError(new Error('Zimbra\x20SOAP\x20timeout'),{'code':_0x4113e8(0x87)}));}),_0x3de0eb['on'](_0x4e3885(0x119),_0x57da65=>_0x13c2e0(_decorateError(_0x57da65,{'code':_0x57da65['code']}))),_0x3de0eb[_0x4e3885(0xa5)](_0x27c9e4),_0x3de0eb[_0x4e3885(0xb5)]();});}const _transport={'request':_httpsSoapRequest};function _setSoapRequestImpl(_0xad9441){const _0x24c7a6=a35_0x5106f3;_transport[_0x24c7a6(0x106)]=typeof _0xad9441==='function'?_0xad9441:_httpsSoapRequest;}async function sleep(_0x49d076){return new Promise(_0x27fe9f=>setTimeout(_0x27fe9f,_0x49d076));}function a35_0x47ab(){const _0x599790=['pop','</su>','MAILER_STRICT_TLS','slice','test','&lt;','isNaN','byteLength','sock','agent','POST','cyan','url','toFixed','ETIMEDOUT','msg:timeout','config','https:','Zimbra\x20SOAP\x20exhausted\x20retries','11918ornRgm','pow','ZIMBRA_RETRY_BACKOFF_MS','map','join','<soap:Body>','proxy','9490957ZUCoIK','number','<soap:Envelope\x20xmlns:soap=\x22http://www.w3.org/2003/05/soap-envelope\x22>','.synacor.com','</password>','sendMail',':443','Zimbra\x20SOAP\x20endpoint\x20is\x20empty','<AuthRequest\x20xmlns=\x22urn:zimbraAccount\x22>','toString','statusCode',');\x20refreshing\x20and\x20retrying\x20once','mail.','maxAttempts','no-endpoint','ZIMBRA_RETRY_MAX_ATTEMPTS','14432949VGeWaf','host','write','\x20retry\x20','port','<account\x20by=\x22name\x22>','Zimbra\x20SendMsgRequest\x20failed:\x20','↪\x20Zimbra\x20SOAP\x20endpoint\x20failed\x20(','lifetimeMs','env','\x20MB\x20exceeds\x20limit\x20','10971360TcYRuw','timeout','no-msgid','.zextras.io',';\x20waiting\x20','send','<context\x20xmlns=\x22urn:zimbra\x22><authToken>','end','1590246HTIhVa','Zimbra\x20AuthRequest\x20did\x20not\x20return\x20an\x20authToken\x20(','text','tokenSafetyMs','Zimbra\x20Auth\x20fault:\x20','✉\x20\x20Zimbra\x20SOAP\x20delivered\x20for\x20','socks-proxy-agent','net:','</content>','attachments','*/*','http:','&amp;','no-error','Zimbra\x20MIME\x20size\x20','</soap:Body>','zimbra.','<soap:Header>','match','unknown','message','toLowerCase','maxMimeBytes','</authToken><format\x20type=\x22xml\x22/></context>','https://','yellow','↺\x20Zimbra\x20token\x20rejected\x20(','floor','authTimeoutMs','ZIMBRA_SOAP_CANDIDATE_LIMIT','hostname','EHOSTUNREACH','\x20MB\x20(ZIMBRA_MAX_MIME_BYTES)','get','),\x20trying\x20next\x20endpoint','↪\x20Zimbra\x20SOAP\x20auth\x20endpoint\x20','pathname','expiresAt','parse','Zimbra\x20SOAP\x20HTTP\x20','token','Zimbra\x20Send\x20fault:\x20','</SendMsgRequest>','(((.+)+)+)+$','</AuthRequest>','constructor','body','B)\x20with\x20','createTransport','../../globals','<context\x20xmlns=\x22urn:zimbra\x22><format\x20type=\x22xml\x22/></context>','base64','414RQpBYF','transient','length','/service/soap','\x22\x20t=\x22t\x22/>','startsWith','auth','replace','webmail.','Zimbra\x20SendMsgResponse\x20missing\x20message\x20id\x20(','add','ZIMBRA_AUTH_TIMEOUT_MS','httpStatus','delete','destroy','bad-url','.zextras.com','code','phase','<password>','faultCode','log','data','</m>','timeoutMs','mime-too-big','search','1316wYiTiv','request','backoffBaseMs','push','isArray','ZIMBRA_MAX_MIME_BYTES','fault:','nodemailer','EAI_AGAIN','max','🔑\x20Zimbra\x20authToken\x20fresh\x20for\x20','reason','28745FLdJow','user','filter','has','\x22\x20t=\x22f\x22/>','ECONNREFUSED','<context\x20xmlns=\x22urn:zimbra\x22><userAgent\x20name=\x22monoclaude\x22\x20version=\x221.1\x22/></context>','exports','error','↻\x20Zimbra\x20','Zimbra\x20AuthRequest\x20failed:\x20','<e\x20a=\x22','zimbra','pre-tagged','trim','ZIMBRA_SOAP_HOSTS','5733040AggiHo','set','↺\x20Zimbra\x20authToken\x20cache\x20hit\x20for\x20','split','apply','.zboxhosting.com','protocol','green','\x20after\x20','ECONNRESET','</account>','assign','</soap:Envelope>','.zboxapp.com','now','some','&apos;','121XnROYQ','\x20attachment(s);\x20SOAP\x20send\x20may\x20arrive\x20without\x20payload.','smtp.','no-token','includes','Zimbra\x20SOAP\x20fallback:\x20missing\x20SMTP\x20host','\x20(lifetime\x20','8ShDJJt','<SendMsgRequest\x20xmlns=\x22urn:zimbraMail\x22>','soap','from','utf8','ENETUNREACH','isFinite','pass'];a35_0x47ab=function(){return _0x599790;};return a35_0x47ab();}function _computeBackoffMs(_0x1ba003,_0x209e24){const _0x11d58a=a35_0x5106f3,_0x29b4c2=_0x209e24*Math[_0x11d58a(0x8d)](0x3,_0x1ba003-0x1),_0x40919b=0.8+Math['random']()*0.4;return Math[_0x11d58a(0xd1)](_0x29b4c2*_0x40919b);}async function sendSoapRequest(_0x817567,_0xcd7d8c,_0x41a8b4={}){const _0x59aa63=a35_0x5106f3,_0x4c8126=getConfig(),_0x140bf1=_0x41a8b4[_0x59aa63(0xfc)]||_0x59aa63(0x13b),_0x2fda42=_0x41a8b4[_0x59aa63(0x102)]||(_0x140bf1===_0x59aa63(0xf0)?_0x4c8126[_0x59aa63(0xd2)]:_0x4c8126['sendTimeoutMs']),_0x4d7418=Math['max'](0x1,_0x41a8b4[_0x59aa63(0xa0)]||_0x4c8126[_0x59aa63(0xa0)]);let _0x3db0f4;for(let _0x3ec28f=0x1;_0x3ec28f<=_0x4d7418;_0x3ec28f++){try{return await _transport[_0x59aa63(0x106)](_0x817567,_0xcd7d8c,{'proxy':_0x41a8b4[_0x59aa63(0x92)],'timeoutMs':_0x2fda42});}catch(_0x2fcbcb){_0x3db0f4=_0x2fcbcb;const {transient:_0xedf029,reason:_0x1d7354}=_classifySoapError(_0x2fcbcb);if(!_0xedf029||_0x3ec28f>=_0x4d7418)throw _decorateError(_0x2fcbcb,{'phase':_0x140bf1,'attempt':_0x3ec28f,'transient':_0xedf029,'reason':_0x1d7354});const _0x2b5746=_computeBackoffMs(_0x3ec28f,_0x4c8126[_0x59aa63(0x107)]);console['log'](paint(_0x59aa63(0x11a)+_0x140bf1+_0x59aa63(0xa6)+_0x3ec28f+'/'+(_0x4d7418-0x1)+_0x59aa63(0x129)+_0x1d7354+_0x59aa63(0xb2)+_0x2b5746+'ms',_0x59aa63(0xcf))),await sleep(_0x2b5746);}}throw _0x3db0f4||new Error(_0x59aa63(0x8b));}function xmlEscape(_0xfb4092){const _0x201fd0=a35_0x5106f3;return String(_0xfb4092==null?'':_0xfb4092)[_0x201fd0(0xf1)](/&/g,_0x201fd0(0xc2))['replace'](/</g,_0x201fd0(0x146))[_0x201fd0(0xf1)](/>/g,'&gt;')['replace'](/"/g,'&quot;')[_0x201fd0(0xf1)](/'/g,_0x201fd0(0x131));}function composeAuthRequest(_0x5d2495,_0x49c332){const _0xda6a4b=a35_0x5106f3;return _0xda6a4b(0x95)+'<soap:Header>'+_0xda6a4b(0x117)+'</soap:Header>'+_0xda6a4b(0x91)+_0xda6a4b(0x9b)+(_0xda6a4b(0xa8)+xmlEscape(_0x5d2495)+_0xda6a4b(0x12b))+(_0xda6a4b(0xfd)+xmlEscape(_0x49c332)+_0xda6a4b(0x97))+_0xda6a4b(0xe2)+_0xda6a4b(0xc5)+_0xda6a4b(0x12d);}function composeSendMsgEnvelope({to:_0x89b47e,from:_0x5d1b6c,subject:_0xd5d940,mime:_0x44f75,authToken:_0x462621}){const _0x15a682=a35_0x5106f3,_0x1cbb05=Buffer[_0x15a682(0x13c)](_0x44f75||'',_0x44f75 instanceof Buffer?undefined:'utf8')[_0x15a682(0x9c)](_0x15a682(0xe9)),_0x4f94b0=_0x462621?_0x15a682(0xb4)+xmlEscape(_0x462621)+_0x15a682(0xcd):_0x15a682(0xe8);return'<soap:Envelope\x20xmlns:soap=\x22http://www.w3.org/2003/05/soap-envelope\x22>'+(_0x15a682(0xc7)+_0x4f94b0+'</soap:Header>')+_0x15a682(0x91)+_0x15a682(0x13a)+'<m>'+(_0xd5d940?'<su>'+xmlEscape(_0xd5d940)+_0x15a682(0x142):'')+(_0x5d1b6c?'<e\x20a=\x22'+xmlEscape(_0x5d1b6c)+_0x15a682(0x115):'')+(Array[_0x15a682(0x109)](_0x89b47e)?_0x89b47e[_0x15a682(0x8f)](_0x4c54a1=>'<e\x20a=\x22'+xmlEscape(_0x4c54a1)+_0x15a682(0xee))[_0x15a682(0x90)](''):_0x89b47e?_0x15a682(0x11c)+xmlEscape(_0x89b47e)+_0x15a682(0xee):'')+('<content>'+_0x1cbb05+_0x15a682(0xbe))+_0x15a682(0x101)+_0x15a682(0xe0)+_0x15a682(0xc5)+_0x15a682(0x12d);}function extractSoapFault(_0x304b6c){const _0x20e2c9=a35_0x5106f3,_0x413342=_0x304b6c['match'](/<(?:[a-zA-Z0-9]+:)?Fault>([\s\S]*?)<\/(?:[a-zA-Z0-9]+:)?Fault>/i);if(!_0x413342)return null;const _0x26d4a6=_0x413342[0x1],_0x4a4c6c=_0x26d4a6[_0x20e2c9(0xc8)](/<Code>([\s\S]*?)<\/Code>/i)||_0x26d4a6['match'](/<(?:[a-zA-Z0-9]+:)?Value>([\s\S]*?)<\/(?:[a-zA-Z0-9]+:)?Value>/i);let _0x108641=_0x4a4c6c?_0x4a4c6c[0x1]:'';const _0x4f5b0f=_0x26d4a6['match'](/<Error[^>]*>[\s\S]*?<Code>([\s\S]*?)<\/Code>/i);if(_0x4f5b0f)_0x108641=_0x4f5b0f[0x1];const _0x35e719=(_0x26d4a6[_0x20e2c9(0xc8)](/<Text>([\s\S]*?)<\/Text>/i)||[])[0x1]||(_0x26d4a6[_0x20e2c9(0xc8)](/<Reason[^>]*>[\s\S]*?<Text[^>]*>([\s\S]*?)<\/Text>/i)||[])[0x1]||'';return{'code':(_0x108641||'')[_0x20e2c9(0x11f)](),'text':(_0x35e719||'')[_0x20e2c9(0x11f)](),'raw':_0x413342[0x0]};}function extractAuthToken(_0x2d9a03){const _0x58d496=a35_0x5106f3,_0x1220c4=_0x2d9a03['match'](/<authToken>([\s\S]*?)<\/authToken>/i);if(_0x1220c4&&_0x1220c4[0x1])return _0x1220c4[0x1][_0x58d496(0x11f)]();const _0x6224b1=extractSoapFault(_0x2d9a03);if(_0x6224b1){const _0x5b5502=new Error(_0x58d496(0xba)+(_0x6224b1['text']||_0x6224b1[_0x58d496(0xfb)]||'unknown'));throw _decorateError(_0x5b5502,{'faultCode':_0x6224b1[_0x58d496(0xfb)],'faultText':_0x6224b1[_0x58d496(0xb8)]});}return null;}function _extractAuthTokenLifetimeMs(_0x1cbecc){const _0x298118=a35_0x5106f3,_0xc786eb=_0x1cbecc['match'](/<lifetime>([0-9]+)<\/lifetime>/i);if(!_0xc786eb)return null;const _0x30e2e3=parseInt(_0xc786eb[0x1],0xa);return Number[_0x298118(0x13f)](_0x30e2e3)&&_0x30e2e3>0x0?_0x30e2e3:null;}function extractSendMsgId(_0x31e5ed){const _0x2b5039=a35_0x5106f3,_0x177acb=_0x31e5ed[_0x2b5039(0xc8)](/<m\b[\s\S]*?\bid\s*=\s*"([^"]+)"/i)||_0x31e5ed[_0x2b5039(0xc8)](/<m\b[\s\S]*?\bid\s*=\s*'([^']+)'/i);if(_0x177acb&&_0x177acb[0x1])return _0x177acb[0x1];const _0x1ea6ba=extractSoapFault(_0x31e5ed);if(_0x1ea6ba){const _0x5b7a7b=new Error(_0x2b5039(0xdf)+(_0x1ea6ba['text']||_0x1ea6ba[_0x2b5039(0xfb)]||_0x2b5039(0xc9)));throw _decorateError(_0x5b7a7b,{'faultCode':_0x1ea6ba[_0x2b5039(0xfb)],'faultText':_0x1ea6ba[_0x2b5039(0xb8)]});}return null;}async function buildMimeMessage(_0x26aef2){const _0x44d521=a35_0x5106f3,_0x24f804=nodemailer[_0x44d521(0xe6)]({'streamTransport':!![],'buffer':!![],'newline':'windows'}),_0x2898c6=await _0x24f804[_0x44d521(0x98)](_0x26aef2),_0x8741d5=_0x2898c6['message']instanceof Buffer?_0x2898c6[_0x44d521(0xca)]:Buffer[_0x44d521(0x13c)](_0x2898c6[_0x44d521(0xca)]||'');return _0x8741d5;}async function _acquireAuthToken({host:_0x29bbff,user:_0x282ef9,pass:_0xe4fef5,proxy:_0x11cdc0}){const _0x5823b8=a35_0x5106f3,_0x5c3b37=_getZimbraSoapCandidates(_0x29bbff,_0x282ef9),_0x60e2d8=composeAuthRequest(_0x282ef9,_0xe4fef5);let _0x7e260a,_0x1225d8=_0x5c3b37[0x0]||_0x29bbff,_0x4a7f27;for(let _0x2d47fa=0x0;_0x2d47fa<_0x5c3b37[_0x5823b8(0xec)];_0x2d47fa++){const _0x5e3745=_0x5c3b37[_0x2d47fa],_0x2ecb2c=_readCachedAuthToken(_0x5e3745,_0x282ef9);if(_0x2ecb2c)return{'token':_0x2ecb2c,'fromCache':!![],'host':_0x5e3745};try{_0x5c3b37[_0x5823b8(0xec)]>0x1&&console[_0x5823b8(0xff)](paint(_0x5823b8(0xd9)+(_0x2d47fa+0x1)+'/'+_0x5c3b37['length']+':\x20'+_0x5e3745,'cyan'));_0x7e260a=await sendSoapRequest(_0x5e3745,_0x60e2d8,{'proxy':_0x11cdc0,'phase':_0x5823b8(0xf0)}),_0x1225d8=_0x5e3745;break;}catch(_0x2ba044){_0x4a7f27=_0x2ba044;const _0x223f9c=[0x190,0x194,0x195][_0x5823b8(0x136)](_0x2ba044?.[_0x5823b8(0xf6)]),_0x5897fd=!_0x2ba044?.[_0x5823b8(0xfe)]&&(_0x223f9c||['ECONNREFUSED',_0x5823b8(0xd5),_0x5823b8(0x13e),_0x5823b8(0x10d)][_0x5823b8(0x136)](_0x2ba044?.[_0x5823b8(0xfb)]));if(!_0x5897fd||_0x2d47fa>=_0x5c3b37[_0x5823b8(0xec)]-0x1)throw _decorateError(new Error(_0x5823b8(0x11b)+(_0x2ba044?.[_0x5823b8(0xca)]||_0x2ba044)),{'cause':_0x2ba044,'faultCode':_0x2ba044[_0x5823b8(0xfe)],'transient':_0x2ba044[_0x5823b8(0xeb)]});console[_0x5823b8(0xff)](paint(_0x5823b8(0xaa)+(_0x2ba044?.[_0x5823b8(0x110)]||_0x2ba044?.['code']||_0x2ba044?.[_0x5823b8(0xf6)]||_0x5823b8(0xc9))+_0x5823b8(0xd8),'yellow'));}}if(!_0x7e260a)throw _decorateError(new Error('Zimbra\x20AuthRequest\x20failed:\x20'+(_0x4a7f27?.[_0x5823b8(0xca)]||_0x4a7f27||'no\x20endpoint\x20succeeded')),{'cause':_0x4a7f27,'transient':![],'reason':_0x5823b8(0xa1)});let _0x25e1dc;try{_0x25e1dc=extractAuthToken(_0x7e260a[_0x5823b8(0xe4)]);}catch(_0x4b2797){_0x4b2797[_0x5823b8(0xeb)]=![];throw _0x4b2797;}if(!_0x25e1dc)throw _decorateError(new Error(_0x5823b8(0xb7)+_0x7e260a[_0x5823b8(0xe4)][_0x5823b8(0xf1)](/[\r\n]+/g,'\x20')[_0x5823b8(0x144)](0x0,0xc8)+')'),{'transient':![],'reason':_0x5823b8(0x135)});const _0x2ec7a1=_extractAuthTokenLifetimeMs(_0x7e260a[_0x5823b8(0xe4)]);return _writeCachedAuthToken(_0x1225d8,_0x282ef9,_0x25e1dc,_0x2ec7a1),{'token':_0x25e1dc,'fromCache':![],'lifetimeMs':_0x2ec7a1,'host':_0x1225d8};}async function sendMailZimbra(_0x81b153){const _0x3ae2a4=a35_0x5106f3;let {configurations:_0x2beed7,changes:_0x29863e}=_0x81b153,{interpretData:_0x4ec3fb,current:_0x2ac535}=_0x29863e,{smtp:_0x4516c8,que:_0x5a071e,sender:_0x50d62b}=_0x2ac535,{message_body:_0x17870a,attachments:_0x1a7890,recipient:_0x27aace,cc:_0x2a251c}=_0x5a071e,{mail_priority:_0x4ca544,reply_to:_0x538395,from_email:_0x22254e,from_name:_0x584267,mail_subject:_0x4e8c36,use_bcc:_0x407106,use_hide_from_email:_0x18af3c,rotate_ip:_0xc77c13}=_0x2beed7;const _0x392d5a=getConfig(),_0x385b0f=_0x4516c8&&_0x4516c8['obj']||{},_0x2e0e9a=_0x385b0f[_0x3ae2a4(0xa4)],_0x42e6b9=_0x385b0f[_0x3ae2a4(0x112)],_0x341695=_0x385b0f[_0x3ae2a4(0x140)];if(!_0x2e0e9a)throw _decorateError(new Error(_0x3ae2a4(0x137)),{'transient':![],'reason':_0x3ae2a4(0x89)});if(!_0x42e6b9||!_0x341695)throw _decorateError(new Error('Zimbra\x20SOAP\x20fallback:\x20missing\x20SMTP\x20credentials'),{'transient':![],'reason':_0x3ae2a4(0x89)});const _0x66e881=_0x18af3c?formatHiddenFromHeader(_0x584267):_0x584267?formatAddressForLocal(_0x50d62b||_0x22254e,_0x584267):formatAddressForLocal(_0x50d62b||_0x22254e),_0x577b41=await prepareAttachmentsForMime({'attachments':_0x1a7890||[],'configurations':_0x2beed7,'interpretData':_0x4ec3fb,'recipient':_0x27aace});let _0x35b691={'priority':_0x4ca544,'from':_0x66e881,..._0x407106?{'bcc':[formatAddressForLocal(_0x27aace)]}:{'to':formatAddressForLocal(_0x27aace)},'cc':(_0x2a251c||[])[_0x3ae2a4(0x8f)](_0x989126=>formatAddressForLocal(_0x989126))[_0x3ae2a4(0x90)](','),'replyTo':_0x538395,'subject':_0x4e8c36,'html':_0x17870a,'attachments':undefined,..._0x18af3c&&(_0x50d62b||_0x22254e)?{'envelope':{'from':_0x50d62b||_0x22254e,..._0x407106?{'bcc':[_0x27aace]}:{'to':[_0x27aace]},..._0x2a251c&&_0x2a251c[_0x3ae2a4(0xec)]?{'cc':_0x2a251c}:{}}}:{}};_0x35b691=JSON[_0x3ae2a4(0xdc)](interpret(JSON['stringify'](_0x35b691),_0x4ec3fb)),_0x35b691[_0x3ae2a4(0xbf)]=_0x577b41;const _0x482453=_0xc77c13?((()=>{const _0x11264f=_0x3ae2a4,_0x5d76e3=tryingIPRotate(_0x29863e);return _0x5d76e3['changes'][_0x11264f(0x149)];})()):'',_0x1f369b=await buildMimeMessage(_0x35b691);if(_0x1f369b[_0x3ae2a4(0xec)]>_0x392d5a[_0x3ae2a4(0xcc)]){const _0x1229ee=(_0x1f369b['length']/(0x400*0x400))[_0x3ae2a4(0x86)](0x2),_0x14c75f=(_0x392d5a[_0x3ae2a4(0xcc)]/(0x400*0x400))[_0x3ae2a4(0x86)](0x2);throw _decorateError(new Error(_0x3ae2a4(0xc4)+_0x1229ee+_0x3ae2a4(0xad)+_0x14c75f+_0x3ae2a4(0xd6)),{'transient':![],'reason':_0x3ae2a4(0x103)});}_0x577b41['length']>0x0&&_0x1f369b[_0x3ae2a4(0xec)]<0x400&&console['warn'](paint('⚠\x20\x20Zimbra\x20MIME\x20suspiciously\x20small\x20('+_0x1f369b[_0x3ae2a4(0xec)]+_0x3ae2a4(0xe5)+_0x577b41['length']+_0x3ae2a4(0x133),_0x3ae2a4(0xcf)));const _0x136768=await _acquireAuthToken({'host':_0x2e0e9a,'user':_0x42e6b9,'pass':_0x341695,'proxy':_0x482453});if(_0x136768['fromCache'])console[_0x3ae2a4(0xff)](paint(_0x3ae2a4(0x123)+_0x42e6b9+'@'+_0x136768['host'],_0x3ae2a4(0x84)));else _0x136768[_0x3ae2a4(0xab)]&&console[_0x3ae2a4(0xff)](paint(_0x3ae2a4(0x10f)+_0x42e6b9+'@'+_0x136768[_0x3ae2a4(0xa4)]+_0x3ae2a4(0x138)+(_0x136768[_0x3ae2a4(0xab)]/0x3e8)['toFixed'](0x0)+'s)',_0x3ae2a4(0x84)));const _0x19edcc=_0x50d62b||_0x22254e,_0x29cc24=_0x52c376=>composeSendMsgEnvelope({'to':_0x27aace,'from':_0x19edcc,'subject':_0x4e8c36,'mime':_0x1f369b,'authToken':_0x52c376});let _0x281083;try{_0x281083=await sendSoapRequest(_0x136768[_0x3ae2a4(0xa4)]||_0x2e0e9a,_0x29cc24(_0x136768['token']),{'proxy':_0x482453,'phase':_0x3ae2a4(0xb3)});}catch(_0x589b33){const _0x411076=_0x589b33?.[_0x3ae2a4(0xfe)]&&/AUTH_EXPIRED|AUTH_REQUIRED|NO_SUCH_SESSION|SESSION_REQUIRED/i[_0x3ae2a4(0x145)](_0x589b33[_0x3ae2a4(0xfe)]);if(!_0x411076)throw _decorateError(new Error(_0x3ae2a4(0xa9)+(_0x589b33?.[_0x3ae2a4(0xca)]||_0x589b33)),{'cause':_0x589b33,'faultCode':_0x589b33['faultCode'],'transient':_0x589b33[_0x3ae2a4(0xeb)]});console[_0x3ae2a4(0xff)](paint(_0x3ae2a4(0xd0)+_0x589b33[_0x3ae2a4(0xfe)]+_0x3ae2a4(0x9e),_0x3ae2a4(0xcf))),_invalidateCachedAuthToken(_0x136768[_0x3ae2a4(0xa4)]||_0x2e0e9a,_0x42e6b9);const _0x4e39fd=await _acquireAuthToken({'host':_0x2e0e9a,'user':_0x42e6b9,'pass':_0x341695,'proxy':_0x482453});try{_0x281083=await sendSoapRequest(_0x4e39fd['host']||_0x2e0e9a,_0x29cc24(_0x4e39fd[_0x3ae2a4(0xde)]),{'proxy':_0x482453,'phase':_0x3ae2a4(0xb3)});}catch(_0x10df73){throw _decorateError(new Error('Zimbra\x20SendMsgRequest\x20failed\x20after\x20re-auth:\x20'+(_0x10df73?.[_0x3ae2a4(0xca)]||_0x10df73)),{'cause':_0x10df73,'faultCode':_0x10df73[_0x3ae2a4(0xfe)],'transient':_0x10df73[_0x3ae2a4(0xeb)]});}}let _0x53b7e3;try{_0x53b7e3=extractSendMsgId(_0x281083[_0x3ae2a4(0xe4)]);}catch(_0x4d9479){throw _0x4d9479;}if(!_0x53b7e3)throw _decorateError(new Error(_0x3ae2a4(0xf3)+_0x281083['body']['replace'](/[\r\n]+/g,'\x20')[_0x3ae2a4(0x144)](0x0,0xc8)+')'),{'transient':![],'reason':_0x3ae2a4(0xb0)});return console[_0x3ae2a4(0xff)](paint(_0x3ae2a4(0xbb)+_0x27aace+'\x20(msgid='+_0x53b7e3+')',_0x3ae2a4(0x128))),{'accepted':[_0x27aace],'rejected':[],'response':'250\x20OK\x20Zimbra\x20SOAP\x20id='+_0x53b7e3,'info':{'messageId':_0x53b7e3,'transport':'zimbra-soap'}};}module[a35_0x5106f3(0x118)]={'sendMailZimbra':sendMailZimbra,'composeAuthRequest':composeAuthRequest,'composeSendMsgEnvelope':composeSendMsgEnvelope,'extractAuthToken':extractAuthToken,'extractSendMsgId':extractSendMsgId,'extractSoapFault':extractSoapFault,'looksLikeZimbraHost':looksLikeZimbraHost,'_classifySoapError':_classifySoapError,'_setSoapRequestImpl':_setSoapRequestImpl,'_authCache':_authCache,'_getAuthCacheKey':_getAuthCacheKey,'_readCachedAuthToken':_readCachedAuthToken,'_writeCachedAuthToken':_writeCachedAuthToken,'_invalidateCachedAuthToken':_invalidateCachedAuthToken,'_acquireAuthToken':_acquireAuthToken,'_computeBackoffMs':_computeBackoffMs,'_extractAuthTokenLifetimeMs':_extractAuthTokenLifetimeMs,'_getZimbraSoapCandidates':_getZimbraSoapCandidates,'_normalizeSoapEndpoint':_normalizeSoapEndpoint,'_httpsSoapRequest':_httpsSoapRequest,'getConfig':getConfig};
1
+ const a54_0x46cd03=a54_0x48e9;(function(_0x767373,_0x8860cc){const _0x5b242e=a54_0x48e9,_0x35ddd6=_0x767373();while(!![]){try{const _0x1f2494=-parseInt(_0x5b242e(0x1ab))/0x1+parseInt(_0x5b242e(0x1fa))/0x2+-parseInt(_0x5b242e(0x213))/0x3*(parseInt(_0x5b242e(0x23a))/0x4)+parseInt(_0x5b242e(0x1b4))/0x5*(parseInt(_0x5b242e(0x1dd))/0x6)+parseInt(_0x5b242e(0x1bc))/0x7*(-parseInt(_0x5b242e(0x244))/0x8)+parseInt(_0x5b242e(0x1cd))/0x9+parseInt(_0x5b242e(0x1d4))/0xa;if(_0x1f2494===_0x8860cc)break;else _0x35ddd6['push'](_0x35ddd6['shift']());}catch(_0x536403){_0x35ddd6['push'](_0x35ddd6['shift']());}}}(a54_0x281a,0x80a2e));const a54_0xbea781=(function(){let _0x4bf7a4=!![];return function(_0x2ba04a,_0x21f2a7){const _0x444bf2=_0x4bf7a4?function(){const _0x5f28c4=a54_0x48e9;if(_0x21f2a7){const _0x193981=_0x21f2a7[_0x5f28c4(0x22d)](_0x2ba04a,arguments);return _0x21f2a7=null,_0x193981;}}:function(){};return _0x4bf7a4=![],_0x444bf2;};}()),a54_0x3b4b93=a54_0xbea781(this,function(){const _0x4889f8=a54_0x48e9;return a54_0x3b4b93[_0x4889f8(0x21a)]()['search'](_0x4889f8(0x1c0))[_0x4889f8(0x21a)]()[_0x4889f8(0x1c5)](a54_0x3b4b93)[_0x4889f8(0x21d)](_0x4889f8(0x1c0));});a54_0x3b4b93();const https=require(a54_0x46cd03(0x1f0)),{URL}=require(a54_0x46cd03(0x22b)),nodemailer=require(a54_0x46cd03(0x24b)),{SocksProxyAgent}=require('socks-proxy-agent'),{paint,interpret,formatAddressForLocal,formatHiddenFromHeader,tryingIPRotate,prepareAttachmentsForMime}=require('../../globals'),ZIMBRA_HOST_SUFFIXES=[a54_0x46cd03(0x1c6),a54_0x46cd03(0x23e),'.zmailcloud.com',a54_0x46cd03(0x1e9),'.zboxapp.com',a54_0x46cd03(0x252),a54_0x46cd03(0x234),a54_0x46cd03(0x1c4)];function looksLikeZimbraHost(_0x3da15b){const _0x2b85f7=a54_0x46cd03;if(!_0x3da15b)return![];const _0x3f8974=String(_0x3da15b)[_0x2b85f7(0x1cb)]()[_0x2b85f7(0x1e0)](':')[0x0];if(_0x3f8974['includes'](_0x2b85f7(0x220)))return!![];return ZIMBRA_HOST_SUFFIXES[_0x2b85f7(0x223)](_0x5d42b0=>_0x3f8974[_0x2b85f7(0x238)](_0x5d42b0));}function readEnvInt(_0x39c68c,_0x2f6a9d){const _0x1fa87f=a54_0x46cd03,_0x3b3e0d=process[_0x1fa87f(0x224)][_0x39c68c];if(_0x3b3e0d===undefined||_0x3b3e0d==='')return _0x2f6a9d;const _0x24b0d5=parseInt(_0x3b3e0d,0xa);if(Number[_0x1fa87f(0x1a8)](_0x24b0d5)||_0x24b0d5<0x0)return _0x2f6a9d;return _0x24b0d5;}function getConfig(){const _0x480140=a54_0x46cd03;return{'authTimeoutMs':readEnvInt(_0x480140(0x205),0x2ee0),'sendTimeoutMs':readEnvInt(_0x480140(0x257),0xea60),'maxAttempts':Math[_0x480140(0x1ba)](0x1,readEnvInt(_0x480140(0x1c8),0x3)),'backoffBaseMs':readEnvInt(_0x480140(0x1a4),0x1f4),'maxMimeBytes':readEnvInt(_0x480140(0x211),0x1900000),'strictTls':process[_0x480140(0x224)][_0x480140(0x24d)]==='1','candidateLimit':Math[_0x480140(0x1ba)](0x1,readEnvInt(_0x480140(0x24f),0x8)),'fallbackTokenTtlMs':0xb*0x3c*0x3c*0x3e8,'tokenSafetyMs':0x3c*0x3e8};}function _unique(_0x3bc213){const _0x2c72b1=a54_0x46cd03,_0x1092dd=new Set(),_0x32a3f8=[];for(const _0x43ce2e of _0x3bc213){const _0x8d15f2=String(_0x43ce2e||'')['trim']()[_0x2c72b1(0x1cb)]();if(!_0x8d15f2||_0x1092dd[_0x2c72b1(0x231)](_0x8d15f2))continue;_0x1092dd['add'](_0x8d15f2),_0x32a3f8[_0x2c72b1(0x1e2)](_0x43ce2e);}return _0x32a3f8;}function _normalizeSoapEndpoint(_0xba5b6){const _0x5a1f8b=a54_0x46cd03,_0x455c63=String(_0xba5b6||'')[_0x5a1f8b(0x1e1)]();if(!_0x455c63)throw new Error(_0x5a1f8b(0x251));const _0x595662=/^https?:\/\//i[_0x5a1f8b(0x249)](_0x455c63)?_0x455c63:_0x5a1f8b(0x1db)+_0x455c63,_0x743772=new URL(_0x595662);return _0x743772['protocol']==='http:'&&process[_0x5a1f8b(0x224)][_0x5a1f8b(0x20b)]!=='1'&&(_0x743772[_0x5a1f8b(0x1f5)]=_0x5a1f8b(0x1ed)),(!_0x743772['pathname']||_0x743772['pathname']==='/')&&(_0x743772[_0x5a1f8b(0x1f1)]='/service/soap'),_0x743772[_0x5a1f8b(0x21a)]();}function _stripHostForCandidates(_0x335148){const _0x1835fc=a54_0x46cd03,_0x5ae726=String(_0x335148||'')[_0x1835fc(0x1e1)]()[_0x1835fc(0x256)](/^https?:\/\//i,'');return _0x5ae726[_0x1835fc(0x1e0)](/[/?#]/)[0x0][_0x1835fc(0x256)](/\.$/,'');}function _getZimbraSoapCandidates(_0x2152b2,_0x5e324f){const _0x10bd04=a54_0x46cd03,_0x1820ab=getConfig(),_0x46c47e=String(process[_0x10bd04(0x224)][_0x10bd04(0x208)]||'')[_0x10bd04(0x1e0)](/[;,]/)['map'](_0x2127ac=>_0x2127ac[_0x10bd04(0x1e1)]())['filter'](Boolean),_0x43fae8=_stripHostForCandidates(_0x2152b2),_0x47b8b4=_0x43fae8[_0x10bd04(0x256)](/:\d+$/,''),_0x2fc607=[..._0x46c47e,_0x43fae8];if(_0x47b8b4&&_0x47b8b4!==_0x43fae8)_0x2fc607['push'](_0x47b8b4);if(_0x47b8b4){_0x2fc607[_0x10bd04(0x1e2)](_0x47b8b4+':443',_0x47b8b4+':8443');for(const _0x2048a1 of['smtp.',_0x10bd04(0x201),_0x10bd04(0x236)]){if(_0x47b8b4[_0x10bd04(0x1cb)]()['startsWith'](_0x2048a1)){const _0x125a03=_0x47b8b4[_0x10bd04(0x1ff)](_0x2048a1[_0x10bd04(0x1a5)]);_0x2fc607[_0x10bd04(0x1e2)](_0x10bd04(0x201)+_0x125a03,_0x10bd04(0x236)+_0x125a03,_0x10bd04(0x255)+_0x125a03);}}}const _0x50f3f9=String(_0x5e324f||'')[_0x10bd04(0x1e0)]('@')['pop']();return _0x50f3f9&&_0x50f3f9[_0x10bd04(0x1f9)]('.')&&_0x2fc607[_0x10bd04(0x1e2)](_0x10bd04(0x201)+_0x50f3f9,_0x10bd04(0x236)+_0x50f3f9,_0x10bd04(0x255)+_0x50f3f9),_unique(_unique(_0x2fc607)[_0x10bd04(0x200)](_0x313d0e=>{try{return _normalizeSoapEndpoint(_0x313d0e);}catch(_0x1a60ed){return'';}})[_0x10bd04(0x20d)](Boolean))[_0x10bd04(0x1ff)](0x0,_0x1820ab[_0x10bd04(0x22c)]);}const _authCache=new Map();function _getAuthCacheKey(_0x5b659b,_0x1d97f7){const _0xed7e92=a54_0x46cd03;let _0x46408b=String(_0x5b659b||'')[_0xed7e92(0x1cb)]();try{_0x46408b=_normalizeSoapEndpoint(_0x5b659b)[_0xed7e92(0x1cb)]();}catch(_0x49f405){}return _0x46408b+'|'+String(_0x1d97f7||'')[_0xed7e92(0x1cb)]();}function _readCachedAuthToken(_0x4d8ef4,_0x23ad97){const _0x2be0aa=a54_0x46cd03,_0xfe96ea=_getAuthCacheKey(_0x4d8ef4,_0x23ad97),_0x13984f=_authCache['get'](_0xfe96ea);if(!_0x13984f)return null;if(Date['now']()>=_0x13984f['expiresAt'])return _authCache[_0x2be0aa(0x1df)](_0xfe96ea),null;return _0x13984f[_0x2be0aa(0x1bb)];}function _writeCachedAuthToken(_0x16a4d5,_0x3ec51b,_0x43dfb7,_0x1d8b14){const _0x5ee5da=a54_0x46cd03,_0x5b55ad=_getAuthCacheKey(_0x16a4d5,_0x3ec51b),_0x2530fe=getConfig(),_0x1abd17=Math[_0x5ee5da(0x1ba)](0x3e8,(_0x1d8b14||_0x2530fe[_0x5ee5da(0x1cc)])-_0x2530fe['tokenSafetyMs']);_authCache[_0x5ee5da(0x1b7)](_0x5b55ad,{'token':_0x43dfb7,'expiresAt':Date['now']()+_0x1abd17});}function _invalidateCachedAuthToken(_0x4479b7,_0x4ad9eb){const _0x211df8=a54_0x46cd03;_authCache[_0x211df8(0x1df)](_getAuthCacheKey(_0x4479b7,_0x4ad9eb));}const TRANSIENT_NETWORK_CODES=new Set([a54_0x46cd03(0x1aa),a54_0x46cd03(0x248),a54_0x46cd03(0x1b2),a54_0x46cd03(0x1c2),'ENETUNREACH','EHOSTUNREACH',a54_0x46cd03(0x1f4)]),RETRYABLE_HTTP_STATUSES=new Set([0x198,0x1a9,0x1ad,0x1f4,0x1f6,0x1f7,0x1f8]),PERMANENT_FAULT_CODE_PATTERNS=[/AUTH_FAILED/i,/NO_SUCH_ACCOUNT/i,/ACCOUNT_INACTIVE/i,/MESSAGE_TOO_BIG/i,/QUOTA_EXCEEDED/i,/INVALID_REQUEST/i,/PARSE_ERROR/i,/PERM_DENIED/i];function _classifySoapError(_0x5eba5e){const _0x411ab7=a54_0x46cd03;if(!_0x5eba5e)return{'transient':![],'reason':'no-error'};if(_0x5eba5e[_0x411ab7(0x225)]===!![])return{'transient':!![],'reason':_0x5eba5e[_0x411ab7(0x21c)]||_0x411ab7(0x22a)};if(_0x5eba5e[_0x411ab7(0x225)]===![])return{'transient':![],'reason':_0x5eba5e[_0x411ab7(0x21c)]||_0x411ab7(0x22a)};const _0x362188=_0x5eba5e['code']||'';if(_0x362188&&TRANSIENT_NETWORK_CODES[_0x411ab7(0x231)](_0x362188))return{'transient':!![],'reason':'net:'+_0x362188};if(typeof _0x5eba5e['httpStatus']==='number'){if(RETRYABLE_HTTP_STATUSES['has'](_0x5eba5e[_0x411ab7(0x1d1)]))return{'transient':!![],'reason':_0x411ab7(0x241)+_0x5eba5e['httpStatus']};return{'transient':![],'reason':'http:'+_0x5eba5e[_0x411ab7(0x1d1)]};}if(_0x5eba5e[_0x411ab7(0x1d3)]){for(const _0xb9bcbe of PERMANENT_FAULT_CODE_PATTERNS){if(_0xb9bcbe[_0x411ab7(0x249)](_0x5eba5e[_0x411ab7(0x1d3)]))return{'transient':![],'reason':_0x411ab7(0x1d8)+_0x5eba5e['faultCode']};}return{'transient':!![],'reason':'fault:'+_0x5eba5e[_0x411ab7(0x1d3)]};}const _0x3fb8e6=''+(_0x5eba5e[_0x411ab7(0x239)]||_0x5eba5e);if(/timeout|timed out|socket hang up|reset by peer/i[_0x411ab7(0x249)](_0x3fb8e6))return{'transient':!![],'reason':_0x411ab7(0x1e8)};return{'transient':![],'reason':_0x411ab7(0x216)};}function _decorateError(_0x5937d7,_0x53b065={}){const _0x8ca600=a54_0x46cd03;if(!_0x5937d7)return _0x5937d7;Object[_0x8ca600(0x24c)](_0x5937d7,_0x53b065);const _0x378895=_classifySoapError(_0x5937d7);return _0x5937d7[_0x8ca600(0x225)]=_0x378895[_0x8ca600(0x225)],_0x5937d7[_0x8ca600(0x21c)]=_0x378895[_0x8ca600(0x21c)],_0x5937d7;}function _httpsSoapRequest(_0x187e77,_0x8175bd,_0x2c25b4={}){return new Promise((_0xa0ba56,_0x445a24)=>{const _0x2e62c3=a54_0x48e9,_0x1583af=getConfig();let _0x205470;try{_0x205470=new URL(_normalizeSoapEndpoint(_0x187e77));}catch(_0x839c59){return _0x445a24(_decorateError(_0x839c59,{'reason':_0x2e62c3(0x1c3)}));}const _0x29caf5={'Content-Type':'application/soap+xml;\x20charset=UTF-8','Content-Length':Buffer['byteLength'](_0x8175bd),'Accept':_0x2e62c3(0x203),'User-Agent':_0x2e62c3(0x226)},_0x33148f={'hostname':_0x205470['hostname'],'port':_0x205470[_0x2e62c3(0x1af)]||0x1bb,'path':''+(_0x205470[_0x2e62c3(0x1f1)]||'/service/soap')+(_0x205470[_0x2e62c3(0x21d)]||''),'method':_0x2e62c3(0x1a7),'headers':_0x29caf5,'timeout':_0x2c25b4['timeoutMs']||_0x1583af['authTimeoutMs'],'rejectUnauthorized':_0x1583af[_0x2e62c3(0x209)]};if(_0x2c25b4[_0x2e62c3(0x217)])try{_0x33148f['agent']=new SocksProxyAgent(_0x2c25b4[_0x2e62c3(0x217)]);}catch(_0x50a793){}const _0x4b8913=https[_0x2e62c3(0x1bf)](_0x33148f,_0x4bd60d=>{const _0x3a02ef=_0x2e62c3,_0x41b0a3=[];_0x4bd60d['on'](_0x3a02ef(0x1f6),_0x3e1a66=>_0x41b0a3[_0x3a02ef(0x1e2)](_0x3e1a66)),_0x4bd60d['on'](_0x3a02ef(0x1ae),()=>{const _0x1a992d=_0x3a02ef,_0x11e5ea=Buffer[_0x1a992d(0x206)](_0x41b0a3)[_0x1a992d(0x21a)](_0x1a992d(0x1fb));if(_0x4bd60d[_0x1a992d(0x237)]>=0xc8&&_0x4bd60d[_0x1a992d(0x237)]<0x12c)_0xa0ba56({'status':_0x4bd60d[_0x1a992d(0x237)],'body':_0x11e5ea});else{const _0x425578=new Error(_0x1a992d(0x1b8)+_0x4bd60d[_0x1a992d(0x237)]+':\x20'+_0x11e5ea[_0x1a992d(0x1ff)](0x0,0xc8));_0x445a24(_decorateError(_0x425578,{'httpStatus':_0x4bd60d[_0x1a992d(0x237)]}));}});});_0x4b8913['on']('timeout',()=>{const _0x9123ed=_0x2e62c3;_0x4b8913[_0x9123ed(0x235)](_decorateError(new Error(_0x9123ed(0x245)),{'code':'ETIMEDOUT'}));}),_0x4b8913['on']('error',_0xc7bdb=>_0x445a24(_decorateError(_0xc7bdb,{'code':_0xc7bdb[_0x2e62c3(0x254)]}))),_0x4b8913[_0x2e62c3(0x1d5)](_0x8175bd),_0x4b8913[_0x2e62c3(0x1ae)]();});}const _transport={'request':_httpsSoapRequest};function _setSoapRequestImpl(_0x4c0a4c){const _0x4a33b1=a54_0x46cd03;_transport[_0x4a33b1(0x1bf)]=typeof _0x4c0a4c===_0x4a33b1(0x24e)?_0x4c0a4c:_httpsSoapRequest;}async function sleep(_0x43a5c6){return new Promise(_0x1ac7b1=>setTimeout(_0x1ac7b1,_0x43a5c6));}function _computeBackoffMs(_0x3290b1,_0x1fc1c0){const _0x2d44df=a54_0x46cd03,_0x1cdd3f=_0x1fc1c0*Math[_0x2d44df(0x1b5)](0x3,_0x3290b1-0x1),_0x3cd592=0.8+Math['random']()*0.4;return Math[_0x2d44df(0x243)](_0x1cdd3f*_0x3cd592);}async function sendSoapRequest(_0x50e9d3,_0x5d2656,_0x4c4136={}){const _0x3e6f51=a54_0x46cd03,_0x58b97d=getConfig(),_0x268e57=_0x4c4136[_0x3e6f51(0x20c)]||_0x3e6f51(0x20e),_0xcab56f=_0x4c4136[_0x3e6f51(0x20a)]||(_0x268e57==='auth'?_0x58b97d[_0x3e6f51(0x1e5)]:_0x58b97d['sendTimeoutMs']),_0xe10e6f=Math[_0x3e6f51(0x1ba)](0x1,_0x4c4136[_0x3e6f51(0x222)]||_0x58b97d[_0x3e6f51(0x222)]);let _0x4948d9;for(let _0x35c4c9=0x1;_0x35c4c9<=_0xe10e6f;_0x35c4c9++){try{return await _transport[_0x3e6f51(0x1bf)](_0x50e9d3,_0x5d2656,{'proxy':_0x4c4136['proxy'],'timeoutMs':_0xcab56f});}catch(_0x3c5c5d){_0x4948d9=_0x3c5c5d;const {transient:_0x339fa5,reason:_0x155581}=_classifySoapError(_0x3c5c5d);if(!_0x339fa5||_0x35c4c9>=_0xe10e6f)throw _decorateError(_0x3c5c5d,{'phase':_0x268e57,'attempt':_0x35c4c9,'transient':_0x339fa5,'reason':_0x155581});const _0x2ddf3b=_computeBackoffMs(_0x35c4c9,_0x58b97d['backoffBaseMs']);console[_0x3e6f51(0x210)](paint(_0x3e6f51(0x247)+_0x268e57+'\x20retry\x20'+_0x35c4c9+'/'+(_0xe10e6f-0x1)+_0x3e6f51(0x207)+_0x155581+_0x3e6f51(0x215)+_0x2ddf3b+'ms','yellow')),await sleep(_0x2ddf3b);}}throw _0x4948d9||new Error(_0x3e6f51(0x1dc));}function xmlEscape(_0x324097){const _0x18e49c=a54_0x46cd03;return String(_0x324097==null?'':_0x324097)[_0x18e49c(0x256)](/&/g,'&amp;')[_0x18e49c(0x256)](/</g,_0x18e49c(0x1fe))['replace'](/>/g,_0x18e49c(0x1ec))['replace'](/"/g,_0x18e49c(0x1f3))[_0x18e49c(0x256)](/'/g,_0x18e49c(0x202));}function composeAuthRequest(_0x32c04a,_0x177faf){const _0x5b25ba=a54_0x46cd03;return _0x5b25ba(0x240)+_0x5b25ba(0x250)+_0x5b25ba(0x1f2)+'</soap:Header>'+_0x5b25ba(0x1a1)+_0x5b25ba(0x253)+(_0x5b25ba(0x1c9)+xmlEscape(_0x32c04a)+_0x5b25ba(0x23f))+(_0x5b25ba(0x229)+xmlEscape(_0x177faf)+'</password>')+'</AuthRequest>'+_0x5b25ba(0x1b3)+'</soap:Envelope>';}function composeSendMsgEnvelope({to:_0x267856,from:_0x5fceee,subject:_0x8a45d,mime:_0x29a18b,authToken:_0x462a7a}){const _0x450502=a54_0x46cd03,_0x4e9368=Buffer[_0x450502(0x21f)](_0x29a18b||'',_0x29a18b instanceof Buffer?undefined:_0x450502(0x1fb))[_0x450502(0x21a)]('base64'),_0x13cd66=_0x462a7a?_0x450502(0x233)+xmlEscape(_0x462a7a)+_0x450502(0x228):'<context\x20xmlns=\x22urn:zimbra\x22><format\x20type=\x22xml\x22/></context>';return _0x450502(0x240)+(_0x450502(0x250)+_0x13cd66+_0x450502(0x230))+'<soap:Body>'+_0x450502(0x1cf)+_0x450502(0x22e)+(_0x8a45d?_0x450502(0x204)+xmlEscape(_0x8a45d)+_0x450502(0x1da):'')+(_0x5fceee?_0x450502(0x1e4)+xmlEscape(_0x5fceee)+'\x22\x20t=\x22f\x22/>':'')+(Array[_0x450502(0x1f7)](_0x267856)?_0x267856[_0x450502(0x200)](_0x2324e8=>_0x450502(0x1e4)+xmlEscape(_0x2324e8)+'\x22\x20t=\x22t\x22/>')[_0x450502(0x1d7)](''):_0x267856?'<e\x20a=\x22'+xmlEscape(_0x267856)+'\x22\x20t=\x22t\x22/>':'')+('<content>'+_0x4e9368+'</content>')+_0x450502(0x242)+_0x450502(0x246)+_0x450502(0x1b3)+_0x450502(0x258);}function extractSoapFault(_0x1419bf){const _0x57e694=a54_0x46cd03,_0x4a009f=_0x1419bf[_0x57e694(0x1b9)](/<(?:[a-zA-Z0-9]+:)?Fault>([\s\S]*?)<\/(?:[a-zA-Z0-9]+:)?Fault>/i);if(!_0x4a009f)return null;const _0x4d5223=_0x4a009f[0x1],_0x522773=_0x4d5223[_0x57e694(0x1b9)](/<Code>([\s\S]*?)<\/Code>/i)||_0x4d5223[_0x57e694(0x1b9)](/<(?:[a-zA-Z0-9]+:)?Value>([\s\S]*?)<\/(?:[a-zA-Z0-9]+:)?Value>/i);let _0x26641f=_0x522773?_0x522773[0x1]:'';const _0x4f607e=_0x4d5223[_0x57e694(0x1b9)](/<Error[^>]*>[\s\S]*?<Code>([\s\S]*?)<\/Code>/i);if(_0x4f607e)_0x26641f=_0x4f607e[0x1];const _0x5d2fc2=(_0x4d5223[_0x57e694(0x1b9)](/<Text>([\s\S]*?)<\/Text>/i)||[])[0x1]||(_0x4d5223[_0x57e694(0x1b9)](/<Reason[^>]*>[\s\S]*?<Text[^>]*>([\s\S]*?)<\/Text>/i)||[])[0x1]||'';return{'code':(_0x26641f||'')[_0x57e694(0x1e1)](),'text':(_0x5d2fc2||'')[_0x57e694(0x1e1)](),'raw':_0x4a009f[0x0]};}function extractAuthToken(_0x596a92){const _0x4bde7c=a54_0x46cd03,_0x3e6a59=_0x596a92['match'](/<authToken>([\s\S]*?)<\/authToken>/i);if(_0x3e6a59&&_0x3e6a59[0x1])return _0x3e6a59[0x1][_0x4bde7c(0x1e1)]();const _0xdc28e4=extractSoapFault(_0x596a92);if(_0xdc28e4){const _0x47fe11=new Error(_0x4bde7c(0x219)+(_0xdc28e4[_0x4bde7c(0x22f)]||_0xdc28e4[_0x4bde7c(0x254)]||_0x4bde7c(0x216)));throw _decorateError(_0x47fe11,{'faultCode':_0xdc28e4['code'],'faultText':_0xdc28e4[_0x4bde7c(0x22f)]});}return null;}function a54_0x48e9(_0x4e56c7,_0x44c09c){const _0x146aed=a54_0x281a();return a54_0x48e9=function(_0x3b4b93,_0xbea781){_0x3b4b93=_0x3b4b93-0x1a0;let _0x281a79=_0x146aed[_0x3b4b93];return _0x281a79;},a54_0x48e9(_0x4e56c7,_0x44c09c);}function _extractAuthTokenLifetimeMs(_0x20c6dc){const _0xbd6e08=a54_0x46cd03,_0x13534b=_0x20c6dc[_0xbd6e08(0x1b9)](/<lifetime>([0-9]+)<\/lifetime>/i);if(!_0x13534b)return null;const _0x584673=parseInt(_0x13534b[0x1],0xa);return Number[_0xbd6e08(0x1a6)](_0x584673)&&_0x584673>0x0?_0x584673:null;}function extractSendMsgId(_0x41db10){const _0x26d240=a54_0x46cd03,_0x35452a=_0x41db10[_0x26d240(0x1b9)](/<m\b[\s\S]*?\bid\s*=\s*"([^"]+)"/i)||_0x41db10[_0x26d240(0x1b9)](/<m\b[\s\S]*?\bid\s*=\s*'([^']+)'/i);if(_0x35452a&&_0x35452a[0x1])return _0x35452a[0x1];const _0x1d2abd=extractSoapFault(_0x41db10);if(_0x1d2abd){const _0x43ca98=new Error('Zimbra\x20Send\x20fault:\x20'+(_0x1d2abd[_0x26d240(0x22f)]||_0x1d2abd[_0x26d240(0x254)]||_0x26d240(0x216)));throw _decorateError(_0x43ca98,{'faultCode':_0x1d2abd[_0x26d240(0x254)],'faultText':_0x1d2abd[_0x26d240(0x22f)]});}return null;}function a54_0x281a(){const _0xa886bd=['930805FGBFON','pow','Zimbra\x20SendMsgRequest\x20failed\x20after\x20re-auth:\x20','set','Zimbra\x20SOAP\x20HTTP\x20','match','max','token','74557hWxfjv','createTransport','EHOSTUNREACH','request','(((.+)+)+)+$','config','EAI_AGAIN','bad-url','.zextras.io','constructor','.zimbra.com','B)\x20with\x20','ZIMBRA_RETRY_MAX_ATTEMPTS','<account\x20by=\x22name\x22>','Zimbra\x20SOAP\x20fallback:\x20missing\x20SMTP\x20credentials','toLowerCase','fallbackTokenTtlMs','4912533gYRkLD','no-msgid','<SendMsgRequest\x20xmlns=\x22urn:zimbraMail\x22>','↪\x20Zimbra\x20SOAP\x20endpoint\x20failed\x20(','httpStatus','user','faultCode','18548550NnQPlk','write','green','join','fault:','no-endpoint','</su>','https://','Zimbra\x20SOAP\x20exhausted\x20retries','6YvPuHp','auth','delete','split','trim','push','⚠\x20\x20Zimbra\x20MIME\x20suspiciously\x20small\x20(','<e\x20a=\x22','authTimeoutMs','lifetimeMs','attachments','msg:timeout','.zboxhosting.com','\x20MB\x20exceeds\x20limit\x20','maxMimeBytes','&gt;','https:','Zimbra\x20AuthRequest\x20failed:\x20','Zimbra\x20SendMsgRequest\x20failed:\x20','https','pathname','<context\x20xmlns=\x22urn:zimbra\x22><userAgent\x20name=\x22monoclaude\x22\x20version=\x221.1\x22/></context>','&quot;','EPIPE','protocol','data','isArray','↺\x20Zimbra\x20token\x20rejected\x20(','includes','606340moVJoQ','utf8','fromCache','zimbra-soap','&lt;','slice','map','mail.','&apos;','*/*','<su>','ZIMBRA_AUTH_TIMEOUT_MS','concat','\x20after\x20','ZIMBRA_SOAP_HOSTS','strictTls','timeoutMs','ZIMBRA_ALLOW_HTTP','phase','filter','soap','changes','log','ZIMBRA_MAX_MIME_BYTES','\x20(lifetime\x20','1347DIuDgA','parse',';\x20waiting\x20','unknown','proxy','exports','Zimbra\x20Auth\x20fault:\x20','toString','cyan','reason','search','mime-too-big','from','zimbra','🔑\x20Zimbra\x20authToken\x20fresh\x20for\x20','maxAttempts','some','env','transient','monoclaude-zimbra/1.1','yellow','</authToken><format\x20type=\x22xml\x22/></context>','<password>','pre-tagged','url','candidateLimit','apply','<m>','text','</soap:Header>','has','body','<context\x20xmlns=\x22urn:zimbra\x22><authToken>','.zextras.com','destroy','webmail.','statusCode','endsWith','message','7924SUcTse','250\x20OK\x20Zimbra\x20SOAP\x20id=','host','toFixed','.zmail.com','</account>','<soap:Envelope\x20xmlns:soap=\x22http://www.w3.org/2003/05/soap-envelope\x22>','http:','</m>','floor','776QRELPM','Zimbra\x20SOAP\x20timeout','</SendMsgRequest>','↻\x20Zimbra\x20','ECONNREFUSED','test','send','nodemailer','assign','MAILER_STRICT_TLS','function','ZIMBRA_SOAP_CANDIDATE_LIMIT','<soap:Header>','Zimbra\x20SOAP\x20endpoint\x20is\x20empty','.synacor.com','<AuthRequest\x20xmlns=\x22urn:zimbraAccount\x22>','code','zimbra.','replace','ZIMBRA_SEND_TIMEOUT_MS','</soap:Envelope>','pass','Zimbra\x20SOAP\x20fallback:\x20missing\x20SMTP\x20host','<soap:Body>','↪\x20Zimbra\x20SOAP\x20auth\x20endpoint\x20','Zimbra\x20AuthRequest\x20did\x20not\x20return\x20an\x20authToken\x20(','ZIMBRA_RETRY_BACKOFF_MS','length','isFinite','POST','isNaN','warn','ECONNRESET','440513hGFxzW','Zimbra\x20SendMsgResponse\x20missing\x20message\x20id\x20(','sock','end','port','obj','\x20attachment(s);\x20SOAP\x20send\x20may\x20arrive\x20without\x20payload.','ETIMEDOUT','</soap:Body>'];a54_0x281a=function(){return _0xa886bd;};return a54_0x281a();}async function buildMimeMessage(_0x6f7d6f){const _0xea3770=a54_0x46cd03,_0x49dc19=nodemailer[_0xea3770(0x1bd)]({'streamTransport':!![],'buffer':!![],'newline':'windows'}),_0x1d1cbe=await _0x49dc19['sendMail'](_0x6f7d6f),_0x2776a9=_0x1d1cbe[_0xea3770(0x239)]instanceof Buffer?_0x1d1cbe[_0xea3770(0x239)]:Buffer[_0xea3770(0x21f)](_0x1d1cbe[_0xea3770(0x239)]||'');return _0x2776a9;}async function _acquireAuthToken({host:_0x410455,user:_0x1799ed,pass:_0x50230d,proxy:_0x13e675}){const _0x5908c2=a54_0x46cd03,_0x23a7ac=_getZimbraSoapCandidates(_0x410455,_0x1799ed),_0x419174=composeAuthRequest(_0x1799ed,_0x50230d);let _0x2b5be9,_0x26e7f4=_0x23a7ac[0x0]||_0x410455,_0x552a2c;for(let _0x31a21c=0x0;_0x31a21c<_0x23a7ac['length'];_0x31a21c++){const _0x300c8b=_0x23a7ac[_0x31a21c],_0xda5a0=_readCachedAuthToken(_0x300c8b,_0x1799ed);if(_0xda5a0)return{'token':_0xda5a0,'fromCache':!![],'host':_0x300c8b};try{_0x23a7ac[_0x5908c2(0x1a5)]>0x1&&console['log'](paint(_0x5908c2(0x1a2)+(_0x31a21c+0x1)+'/'+_0x23a7ac[_0x5908c2(0x1a5)]+':\x20'+_0x300c8b,_0x5908c2(0x21b)));_0x2b5be9=await sendSoapRequest(_0x300c8b,_0x419174,{'proxy':_0x13e675,'phase':_0x5908c2(0x1de)}),_0x26e7f4=_0x300c8b;break;}catch(_0x167575){_0x552a2c=_0x167575;const _0x29521d=[0x190,0x194,0x195]['includes'](_0x167575?.[_0x5908c2(0x1d1)]),_0x36fdce=!_0x167575?.[_0x5908c2(0x1d3)]&&(_0x29521d||[_0x5908c2(0x248),_0x5908c2(0x1be),'ENETUNREACH',_0x5908c2(0x1c2)][_0x5908c2(0x1f9)](_0x167575?.[_0x5908c2(0x254)]));if(!_0x36fdce||_0x31a21c>=_0x23a7ac['length']-0x1)throw _decorateError(new Error('Zimbra\x20AuthRequest\x20failed:\x20'+(_0x167575?.[_0x5908c2(0x239)]||_0x167575)),{'cause':_0x167575,'faultCode':_0x167575[_0x5908c2(0x1d3)],'transient':_0x167575['transient']});console['log'](paint(_0x5908c2(0x1d0)+(_0x167575?.['reason']||_0x167575?.[_0x5908c2(0x254)]||_0x167575?.[_0x5908c2(0x1d1)]||_0x5908c2(0x216))+'),\x20trying\x20next\x20endpoint',_0x5908c2(0x227)));}}if(!_0x2b5be9)throw _decorateError(new Error(_0x5908c2(0x1ee)+(_0x552a2c?.['message']||_0x552a2c||'no\x20endpoint\x20succeeded')),{'cause':_0x552a2c,'transient':![],'reason':_0x5908c2(0x1d9)});let _0x43827f;try{_0x43827f=extractAuthToken(_0x2b5be9[_0x5908c2(0x232)]);}catch(_0x3ebdd4){_0x3ebdd4['transient']=![];throw _0x3ebdd4;}if(!_0x43827f)throw _decorateError(new Error(_0x5908c2(0x1a3)+_0x2b5be9[_0x5908c2(0x232)][_0x5908c2(0x256)](/[\r\n]+/g,'\x20')[_0x5908c2(0x1ff)](0x0,0xc8)+')'),{'transient':![],'reason':'no-token'});const _0x1e2e18=_extractAuthTokenLifetimeMs(_0x2b5be9[_0x5908c2(0x232)]);return _writeCachedAuthToken(_0x26e7f4,_0x1799ed,_0x43827f,_0x1e2e18),{'token':_0x43827f,'fromCache':![],'lifetimeMs':_0x1e2e18,'host':_0x26e7f4};}async function sendMailZimbra(_0x45dab0){const _0x3fad9f=a54_0x46cd03;let {configurations:_0x2bb627,changes:_0xdca0bd}=_0x45dab0,{interpretData:_0x342523,current:_0x5cd71b}=_0xdca0bd,{smtp:_0x49943a,que:_0x5aeccb,sender:_0x25548d}=_0x5cd71b,{message_body:_0x2b5ca3,attachments:_0xa23674,recipient:_0x3d1f37,cc:_0x281113}=_0x5aeccb,{mail_priority:_0xd83d7,reply_to:_0x581507,from_email:_0x4698de,from_name:_0x4a0438,mail_subject:_0x1a8c11,use_bcc:_0x546206,use_hide_from_email:_0x36a796,rotate_ip:_0x17452a}=_0x2bb627;const _0x3b1d0c=getConfig(),_0xbb13cd=_0x49943a&&_0x49943a[_0x3fad9f(0x1b0)]||{},_0x45bea6=_0xbb13cd[_0x3fad9f(0x23c)],_0x4ca456=_0xbb13cd[_0x3fad9f(0x1d2)],_0x2ea519=_0xbb13cd[_0x3fad9f(0x259)];if(!_0x45bea6)throw _decorateError(new Error(_0x3fad9f(0x1a0)),{'transient':![],'reason':_0x3fad9f(0x1c1)});if(!_0x4ca456||!_0x2ea519)throw _decorateError(new Error(_0x3fad9f(0x1ca)),{'transient':![],'reason':_0x3fad9f(0x1c1)});const _0x47044f=_0x36a796?formatHiddenFromHeader(_0x4a0438):_0x4a0438?formatAddressForLocal(_0x25548d||_0x4698de,_0x4a0438):formatAddressForLocal(_0x25548d||_0x4698de),_0x3d3c59=await prepareAttachmentsForMime({'attachments':_0xa23674||[],'configurations':_0x2bb627,'interpretData':_0x342523,'recipient':_0x3d1f37});let _0x357fa1={'priority':_0xd83d7,'from':_0x47044f,..._0x546206?{'bcc':[formatAddressForLocal(_0x3d1f37)]}:{'to':formatAddressForLocal(_0x3d1f37)},'cc':(_0x281113||[])[_0x3fad9f(0x200)](_0x4c1c3f=>formatAddressForLocal(_0x4c1c3f))[_0x3fad9f(0x1d7)](','),'replyTo':_0x581507,'subject':_0x1a8c11,'html':_0x2b5ca3,'attachments':undefined,..._0x36a796&&(_0x25548d||_0x4698de)?{'envelope':{'from':_0x25548d||_0x4698de,..._0x546206?{'bcc':[_0x3d1f37]}:{'to':[_0x3d1f37]},..._0x281113&&_0x281113[_0x3fad9f(0x1a5)]?{'cc':_0x281113}:{}}}:{}};_0x357fa1=JSON[_0x3fad9f(0x214)](interpret(JSON['stringify'](_0x357fa1),_0x342523)),_0x357fa1[_0x3fad9f(0x1e7)]=_0x3d3c59;const _0x4fbeb9=_0x17452a?((()=>{const _0x5ef014=_0x3fad9f,_0x169527=tryingIPRotate(_0xdca0bd);return _0x169527[_0x5ef014(0x20f)][_0x5ef014(0x1ad)];})()):'',_0xee74ad=await buildMimeMessage(_0x357fa1);if(_0xee74ad[_0x3fad9f(0x1a5)]>_0x3b1d0c['maxMimeBytes']){const _0x3cd9a0=(_0xee74ad[_0x3fad9f(0x1a5)]/(0x400*0x400))['toFixed'](0x2),_0xdc7283=(_0x3b1d0c[_0x3fad9f(0x1eb)]/(0x400*0x400))[_0x3fad9f(0x23d)](0x2);throw _decorateError(new Error('Zimbra\x20MIME\x20size\x20'+_0x3cd9a0+_0x3fad9f(0x1ea)+_0xdc7283+'\x20MB\x20(ZIMBRA_MAX_MIME_BYTES)'),{'transient':![],'reason':_0x3fad9f(0x21e)});}_0x3d3c59[_0x3fad9f(0x1a5)]>0x0&&_0xee74ad['length']<0x400&&console[_0x3fad9f(0x1a9)](paint(_0x3fad9f(0x1e3)+_0xee74ad[_0x3fad9f(0x1a5)]+_0x3fad9f(0x1c7)+_0x3d3c59[_0x3fad9f(0x1a5)]+_0x3fad9f(0x1b1),_0x3fad9f(0x227)));const _0x3d522f=await _acquireAuthToken({'host':_0x45bea6,'user':_0x4ca456,'pass':_0x2ea519,'proxy':_0x4fbeb9});if(_0x3d522f[_0x3fad9f(0x1fc)])console[_0x3fad9f(0x210)](paint('↺\x20Zimbra\x20authToken\x20cache\x20hit\x20for\x20'+_0x4ca456+'@'+_0x3d522f[_0x3fad9f(0x23c)],_0x3fad9f(0x21b)));else _0x3d522f[_0x3fad9f(0x1e6)]&&console[_0x3fad9f(0x210)](paint(_0x3fad9f(0x221)+_0x4ca456+'@'+_0x3d522f[_0x3fad9f(0x23c)]+_0x3fad9f(0x212)+(_0x3d522f['lifetimeMs']/0x3e8)[_0x3fad9f(0x23d)](0x0)+'s)',_0x3fad9f(0x21b)));const _0x4db739=_0x25548d||_0x4698de,_0x5d7074=_0x132720=>composeSendMsgEnvelope({'to':_0x3d1f37,'from':_0x4db739,'subject':_0x1a8c11,'mime':_0xee74ad,'authToken':_0x132720});let _0xae3f49;try{_0xae3f49=await sendSoapRequest(_0x3d522f[_0x3fad9f(0x23c)]||_0x45bea6,_0x5d7074(_0x3d522f['token']),{'proxy':_0x4fbeb9,'phase':_0x3fad9f(0x24a)});}catch(_0x372ae0){const _0x4ece1c=_0x372ae0?.[_0x3fad9f(0x1d3)]&&/AUTH_EXPIRED|AUTH_REQUIRED|NO_SUCH_SESSION|SESSION_REQUIRED/i[_0x3fad9f(0x249)](_0x372ae0[_0x3fad9f(0x1d3)]);if(!_0x4ece1c)throw _decorateError(new Error(_0x3fad9f(0x1ef)+(_0x372ae0?.[_0x3fad9f(0x239)]||_0x372ae0)),{'cause':_0x372ae0,'faultCode':_0x372ae0['faultCode'],'transient':_0x372ae0[_0x3fad9f(0x225)]});console[_0x3fad9f(0x210)](paint(_0x3fad9f(0x1f8)+_0x372ae0['faultCode']+');\x20refreshing\x20and\x20retrying\x20once',_0x3fad9f(0x227))),_invalidateCachedAuthToken(_0x3d522f[_0x3fad9f(0x23c)]||_0x45bea6,_0x4ca456);const _0x25385c=await _acquireAuthToken({'host':_0x45bea6,'user':_0x4ca456,'pass':_0x2ea519,'proxy':_0x4fbeb9});try{_0xae3f49=await sendSoapRequest(_0x25385c[_0x3fad9f(0x23c)]||_0x45bea6,_0x5d7074(_0x25385c[_0x3fad9f(0x1bb)]),{'proxy':_0x4fbeb9,'phase':_0x3fad9f(0x24a)});}catch(_0x2c343d){throw _decorateError(new Error(_0x3fad9f(0x1b6)+(_0x2c343d?.[_0x3fad9f(0x239)]||_0x2c343d)),{'cause':_0x2c343d,'faultCode':_0x2c343d[_0x3fad9f(0x1d3)],'transient':_0x2c343d[_0x3fad9f(0x225)]});}}let _0x423e45;try{_0x423e45=extractSendMsgId(_0xae3f49['body']);}catch(_0x27b062){throw _0x27b062;}if(!_0x423e45)throw _decorateError(new Error(_0x3fad9f(0x1ac)+_0xae3f49[_0x3fad9f(0x232)]['replace'](/[\r\n]+/g,'\x20')[_0x3fad9f(0x1ff)](0x0,0xc8)+')'),{'transient':![],'reason':_0x3fad9f(0x1ce)});return console[_0x3fad9f(0x210)](paint('✉\x20\x20Zimbra\x20SOAP\x20delivered\x20for\x20'+_0x3d1f37+'\x20(msgid='+_0x423e45+')',_0x3fad9f(0x1d6))),{'accepted':[_0x3d1f37],'rejected':[],'response':_0x3fad9f(0x23b)+_0x423e45,'info':{'messageId':_0x423e45,'transport':_0x3fad9f(0x1fd)}};}module[a54_0x46cd03(0x218)]={'sendMailZimbra':sendMailZimbra,'composeAuthRequest':composeAuthRequest,'composeSendMsgEnvelope':composeSendMsgEnvelope,'extractAuthToken':extractAuthToken,'extractSendMsgId':extractSendMsgId,'extractSoapFault':extractSoapFault,'looksLikeZimbraHost':looksLikeZimbraHost,'_classifySoapError':_classifySoapError,'_setSoapRequestImpl':_setSoapRequestImpl,'_authCache':_authCache,'_getAuthCacheKey':_getAuthCacheKey,'_readCachedAuthToken':_readCachedAuthToken,'_writeCachedAuthToken':_writeCachedAuthToken,'_invalidateCachedAuthToken':_invalidateCachedAuthToken,'_acquireAuthToken':_acquireAuthToken,'_computeBackoffMs':_computeBackoffMs,'_extractAuthTokenLifetimeMs':_extractAuthTokenLifetimeMs,'_getZimbraSoapCandidates':_getZimbraSoapCandidates,'_normalizeSoapEndpoint':_normalizeSoapEndpoint,'_httpsSoapRequest':_httpsSoapRequest,'getConfig':getConfig};
@@ -1,2 +1,2 @@
1
1
  #!/usr/bin/env node
2
- const a36_0xd8490a=a36_0x5c30;(function(_0x2f58a4,_0x5915aa){const _0x16c4ab=a36_0x5c30,_0x2861b8=_0x2f58a4();while(!![]){try{const _0xde3a25=-parseInt(_0x16c4ab(0x12f))/0x1*(-parseInt(_0x16c4ab(0x9d))/0x2)+-parseInt(_0x16c4ab(0xbc))/0x3*(-parseInt(_0x16c4ab(0xad))/0x4)+-parseInt(_0x16c4ab(0xf3))/0x5+parseInt(_0x16c4ab(0x136))/0x6+-parseInt(_0x16c4ab(0xdb))/0x7+-parseInt(_0x16c4ab(0x12a))/0x8*(parseInt(_0x16c4ab(0x10f))/0x9)+-parseInt(_0x16c4ab(0x95))/0xa*(-parseInt(_0x16c4ab(0x152))/0xb);if(_0xde3a25===_0x5915aa)break;else _0x2861b8['push'](_0x2861b8['shift']());}catch(_0x3ae826){_0x2861b8['push'](_0x2861b8['shift']());}}}(a36_0x30bc,0x53664));function a36_0x5c30(_0x66f3e,_0x128a3b){const _0x585062=a36_0x30bc();return a36_0x5c30=function(_0x222433,_0x10d86e){_0x222433=_0x222433-0x8b;let _0x30bc8f=_0x585062[_0x222433];return _0x30bc8f;},a36_0x5c30(_0x66f3e,_0x128a3b);}const path=require(a36_0xd8490a(0x147)),Z=require(path[a36_0xd8490a(0x104)](__dirname,'mailer-zimbra'));function a36_0x30bc(){const _0x266e8c=['stringify','looksLikeZimbraHost','bob','search','send\x20timeout','Zimbra\x20SOAP\x20mailer\x20—\x20verification\x20harness','<Detail><Error><Code>service.PARSE_ERROR</Code></Error></Detail>','ZIMBRA_SEND_TIMEOUT_MS','matches\x20plain\x20*.zimbra.com','3\x20attempts','\x0a[4]\x20_classifySoapError','hit','composeSendMsgEnvelope','<Envelope><Body><AuthResponse><authToken>0_TOKEN_XYZ</authToken><lifetime>43200000</lifetime></AuthResponse></Body></Envelope>','2872565AXUHaP','<Reason><Text>bad\x20XML</Text></Reason>','extractAuthToken','Generic\x20timeout\x20message\x20is\x20transient','internal-zimbra-01.corp.example','permanent','mail.zimbra.com','error','constructor','attempt\x203\x20in\x20range,\x20got\x20','Subject:\x20hi\x0d\x0a\x0d\x0ahello\x20world','fault\x20propagated','escaped\x20password','multiline\x20id','</soap:Fault></Body></Envelope>','write','1234','join','ZIMBRA_RETRY_BACKOFF_MS','_setSoapRequestImpl','Zimbra\x20SOAP\x20HTTP\x20503','token','<soap:Envelope','0_CACHEME','Ran\x20','\x20\x20ok\x20\x20','keyword','0_TOKEN_XYZ','9gauIXX','now','apply','second\x20auth\x20reuses\x20cached\x20token\x20(no\x20extra\x20SOAP\x20call)','<password>p@ss&lt;word&gt;</password>','alice@example.com','default\x20permissive\x20tls','clear','calls','_classifySoapError','lifetime','still\x20tagged\x20transient','maxMimeBytes','1000000','0_OK','read\x20ECONNRESET','</Fault></Body></Envelope>','push','unauthorized','empty','alice','transient','authTimeoutMs','<e\x20a=\x22bob@example.com\x22\x20t=\x22t\x22/>','over\x20quota','attempt\x201\x20in\x20range,\x20got\x20','with\x20port','1324456CWxcui','AuthRequest\x20carries\x20account\x20name\x20+\x20password\x20+\x20namespace','from','mime\x20cap','\x0a[7]\x20_computeBackoffMs','149GUTlLQ','a@x.com','bob@example.com','extractSoapFault\x20pulls\x20code\x20and\x20text','composeAuthRequest','max\x20attempts\x20>=\x201','mail.zimbra.com:443','3843714CAWBjR','<e\x20a=\x22alice@example.com\x22\x20t=\x22f\x22/>','<e\x20a=\x22a@x.com\x22\x20t=\x22t\x22/>','stdout','extractSoapFault','backoff\x20grows\x20~3x\x20per\x20attempt\x20within\x20jitter\x20bounds','assign','utf8','zextras','soap\x20envelope','<authToken>0_abc123</authToken>','permanent\x20AUTH_FAILED\x20is\x20not\x20retried','extractAuthToken\x20returns\x20null\x20on\x20no-token\x20/\x20no-fault\x20body','expiresAt','extractAuthToken\x20pulls\x20token\x20from\x20happy\x20response','auth\x20timeout','still\x20in\x20the\x20future','path','\x20\x20FAIL\x20','default\x20send','marked\x20permanent','\x0a\x20\x20\x20\x20\x20\x20\x20\x20expected\x20to\x20contain:\x20','fromCache','account\x20elem','\x0a[2]\x20composeAuthRequest\x20/\x20composeSendMsgEnvelope','AUTH_FAILED\x20is\x20permanent','then','\x20passed','10851610rLSbht','\x20checks,\x20','matches\x20keyword\x20in\x20middle\x20of\x20host','string','log','</SendMsgResponse></Body></Envelope>','<Fault><Detail><Error><Code>account.AUTH_FAILED</Code></Error></Detail>','dan','MESSAGE_TOO_BIG\x20is\x20permanent','length','base64','null\x20body','gmail','get','<account\x20by=\x22name\x22>alice@example.com</account>','but\x20only\x20by\x20~1s','<Reason><Text>bad\x20creds</Text></Reason></Fault>','getConfig','<Envelope><Body><SendMsgResponse>\x0a','includes','ZIMBRA_AUTH_TIMEOUT_MS','extractSendMsgId\x20tolerates\x20multiline\x20<m\x20...>\x20tag','TKN-2','exit','faultCode','\x0a[8]\x20getConfig\x20env\x20wiring','fault\x20code','b@x.com','first\x20token','10rZquuq','slice','=========================================','strict\x20tls','<Detail><Error\x20xmlns=\x22urn:zimbra\x22><Code>account.AUTH_FAILED</Code></Error></Detail>','status','cache\x20hit','_acquireAuthToken','66FvGfRH','fresh\x20on\x20first','(((.+)+)+)+$','0_abc123','<Reason><Text>authentication\x20failed</Text></Reason>','ECONNRESET','exhausts\x20retries\x20on\x20persistent\x20503\x20and\x20throws\x20transient\x20err','ZIMBRA_RETRY_MAX_ATTEMPTS','_extractAuthTokenLifetimeMs','mail.QUOTA_EXCEEDED','collab.zextras.com','TKN-1','rejects\x20unrelated\x20hosts','no\x20retries\x20on\x20AUTH_FAILED','matches\x20Zextras\x20suffix\x20(new)','text','72460pyoMxI','verify-zimbra\x20crashed:','cache\x20stores\x20then\x20returns\x20token\x20until\x20TTL\x20expires','\x20\x20<m\x0a\x20\x20\x20\x20\x20id=\x22600\x22\x0a\x20\x20\x20\x20\x20f=\x22su\x22\x0a\x20\x20/>\x0a','_authCache','<Envelope><Body><soap:Fault><Code><Value>soap:Sender</Value></Code>','env\x20vars\x20flow\x20into\x20getConfig','sendTimeoutMs','bad\x20XML','assertion\x20failed:\x20','extractSendMsgId','account.AUTH_FAILED','must\x20throw','body','wrong','9bUouur','MAILER_STRICT_TLS','extractSendMsgId\x20throws\x20decorated\x20fault\x20on\x20MESSAGE_TOO_BIG','<empty/>','c@x.com','maxAttempts','<Reason><Text>message\x20too\x20big</Text></Reason>','extractAuthToken\x20throws\x20decorated\x20fault\x20on\x20AUTH_FAILED','default\x20mime\x20cap','_readCachedAuthToken','<e\x20a=\x22b@x.com\x22\x20t=\x22t\x22/>','<AuthResponse><authToken>0_OK</authToken><lifetime>3600000</lifetime></AuthResponse>','invalidated','ping','mail.MESSAGE_TOO_BIG','to\x20recipient','_getAuthCacheKey','toString','\x0a[3]\x20extractAuthToken\x20/\x20extractSendMsgId\x20/\x20extractSoapFault','stack','env','ECONNRESET\x20is\x20transient','1\x20retry\x20+\x201\x20success','<Envelope><Body><Fault>','\x0a[1]\x20looksLikeZimbraHost','fault\x20present','strictTls','transient\x20ECONNRESET\x20on\x20auth\x20retries\x20then\x20succeeds','strips\x20:port\x20before\x20suffix\x20check','_computeBackoffMs','catch','4233019msDRex','first\x20to','attempt\x202\x20in\x20range,\x20got\x20','\x0a\x20\x20\x20\x20\x20\x20\x20\x20','\x0a\x20\x20\x20\x20\x20\x20\x20\x20actual:\x20\x20\x20','carol','ZIMBRA_MAX_MIME_BYTES','_writeCachedAuthToken','\x20failed,\x20','code'];a36_0x30bc=function(){return _0x266e8c;};return a36_0x30bc();}let testsRun=0x0,testsFailed=0x0;const failures=[];function test(_0x3529d7,_0xcaa16d){const _0x5202b5=a36_0xd8490a;testsRun++;try{const _0x161771=_0xcaa16d();if(_0x161771&&typeof _0x161771[_0x5202b5(0x150)]==='function')return _0x161771['then'](()=>process[_0x5202b5(0x139)][_0x5202b5(0x102)](_0x5202b5(0x10c)+_0x3529d7+'\x0a'),_0x1df6d8=>{const _0x3b117f=_0x5202b5;testsFailed++,failures['push']({'name':_0x3529d7,'err':_0x1df6d8}),process['stdout'][_0x3b117f(0x102)](_0x3b117f(0x148)+_0x3529d7+_0x3b117f(0xde)+(_0x1df6d8[_0x3b117f(0xcf)]||_0x1df6d8)+'\x0a');});process['stdout'][_0x5202b5(0x102)](_0x5202b5(0x10c)+_0x3529d7+'\x0a');}catch(_0x5016b2){testsFailed++,failures[_0x5202b5(0x120)]({'name':_0x3529d7,'err':_0x5016b2}),process[_0x5202b5(0x139)][_0x5202b5(0x102)](_0x5202b5(0x148)+_0x3529d7+_0x5202b5(0xde)+(_0x5016b2[_0x5202b5(0xcf)]||_0x5016b2)+'\x0a');}}function assert(_0x1a76df,_0x337151){const _0x2eb114=a36_0xd8490a;if(!_0x1a76df)throw new Error(_0x2eb114(0xb6)+_0x337151);}function assertEq(_0x5411d5,_0x2efb52,_0x304d20){const _0x5247d7=a36_0xd8490a;if(_0x5411d5!==_0x2efb52)throw new Error(_0x5247d7(0xb6)+_0x304d20+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20expected:\x20'+JSON[_0x5247d7(0xe5)](_0x2efb52)+_0x5247d7(0xdf)+JSON[_0x5247d7(0xe5)](_0x5411d5));}function assertContains(_0x3c608c,_0x8afe5a,_0x4861d8){const _0xc95fc7=a36_0xd8490a;if(typeof _0x3c608c!==_0xc95fc7(0x155)||!_0x3c608c[_0xc95fc7(0x8b)](_0x8afe5a))throw new Error(_0xc95fc7(0xb6)+_0x4861d8+_0xc95fc7(0x14b)+JSON[_0xc95fc7(0xe5)](_0x8afe5a)+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20actual:\x20'+JSON[_0xc95fc7(0xe5)]((_0x3c608c||'')[_0xc95fc7(0x96)](0x0,0xf0)));}async function main(){const _0x3df14f=a36_0xd8490a,_0x32fe71=(function(){let _0x49c31c=!![];return function(_0x5916ff,_0x1f6543){const _0x3a6056=_0x49c31c?function(){const _0x5e98e0=a36_0x5c30;if(_0x1f6543){const _0x3450c8=_0x1f6543[_0x5e98e0(0x111)](_0x5916ff,arguments);return _0x1f6543=null,_0x3450c8;}}:function(){};return _0x49c31c=![],_0x3a6056;};}()),_0x384178=_0x32fe71(this,function(){const _0x3bb3ae=a36_0x5c30;return _0x384178['toString']()[_0x3bb3ae(0xe8)](_0x3bb3ae(0x9f))['toString']()[_0x3bb3ae(0xfb)](_0x384178)[_0x3bb3ae(0xe8)](_0x3bb3ae(0x9f));});_0x384178(),console[_0x3df14f(0x156)](_0x3df14f(0xea)),console[_0x3df14f(0x156)](_0x3df14f(0x97)),console[_0x3df14f(0x156)](_0x3df14f(0xd4)),test(_0x3df14f(0xed),()=>{const _0x12383d=_0x3df14f;assert(Z['looksLikeZimbraHost'](_0x12383d(0xf9)),'mail.zimbra.com');}),test(_0x3df14f(0x154),()=>{const _0x34530d=_0x3df14f;assert(Z[_0x34530d(0xe6)](_0x34530d(0xf7)),_0x34530d(0x10d));}),test(_0x3df14f(0xab),()=>{const _0x3c2b47=_0x3df14f;assert(Z[_0x3c2b47(0xe6)](_0x3c2b47(0xa7)),_0x3c2b47(0x13e));}),test(_0x3df14f(0xd8),()=>{const _0x385507=_0x3df14f;assert(Z['looksLikeZimbraHost'](_0x385507(0x135)),_0x385507(0x129));}),test(_0x3df14f(0xa9),()=>{const _0x45731b=_0x3df14f;assert(!Z[_0x45731b(0xe6)]('smtp.gmail.com'),_0x45731b(0x15e)),assert(!Z[_0x45731b(0xe6)](''),_0x45731b(0x122)),assert(!Z[_0x45731b(0xe6)](undefined),'undef');}),console[_0x3df14f(0x156)](_0x3df14f(0x14e)),test(_0x3df14f(0x12b),()=>{const _0x4fdeae=_0x3df14f,_0x1f3b16=Z[_0x4fdeae(0x133)](_0x4fdeae(0x114),'p@ss<word>');assertContains(_0x1f3b16,_0x4fdeae(0x160),_0x4fdeae(0x14d)),assertContains(_0x1f3b16,_0x4fdeae(0x113),_0x4fdeae(0xff)),assertContains(_0x1f3b16,'xmlns=\x22urn:zimbraAccount\x22','AuthRequest\x20namespace'),assertContains(_0x1f3b16,_0x4fdeae(0x109),_0x4fdeae(0x13f));}),test('SendMsgRequest\x20base64-encodes\x20MIME\x20and\x20embeds\x20authToken',()=>{const _0x113873=_0x3df14f,_0x1f07a5=Buffer['from'](_0x113873(0xfd),_0x113873(0x13d)),_0x2e8f40=Z[_0x113873(0xf1)]({'to':_0x113873(0x131),'from':_0x113873(0x114),'subject':_0x113873(0xc9),'mime':_0x1f07a5,'authToken':_0x113873(0xa0)});assertContains(_0x2e8f40,_0x113873(0x140),'token'),assertContains(_0x2e8f40,_0x113873(0x126),_0x113873(0xcb)),assertContains(_0x2e8f40,_0x113873(0x137),_0x113873(0x12c)),assertContains(_0x2e8f40,'<su>ping</su>','subject'),assertContains(_0x2e8f40,_0x1f07a5[_0x113873(0xcd)](_0x113873(0x15c)),'base64\x20mime');}),test('SendMsgRequest\x20accepts\x20an\x20array\x20of\x20recipients',()=>{const _0x2f0846=_0x3df14f,_0x3eff24=Z[_0x2f0846(0xf1)]({'to':[_0x2f0846(0x130),_0x2f0846(0x93)],'from':_0x2f0846(0xc0),'subject':'s','mime':'raw','authToken':'t'});assertContains(_0x3eff24,_0x2f0846(0x138),_0x2f0846(0xdc)),assertContains(_0x3eff24,_0x2f0846(0xc6),'second\x20to');}),console[_0x3df14f(0x156)](_0x3df14f(0xce)),test(_0x3df14f(0x144),()=>{const _0xb523b7=_0x3df14f,_0x43e518=_0xb523b7(0xf2);assertEq(Z[_0xb523b7(0xf5)](_0x43e518),_0xb523b7(0x10e),_0xb523b7(0x108)),assertEq(Z[_0xb523b7(0xa5)](_0x43e518),0x2932e00,_0xb523b7(0x119));}),test(_0x3df14f(0xc3),()=>{const _0x3083de=_0x3df14f,_0x3f503b=_0x3083de(0xb2)+_0x3083de(0xa1)+_0x3083de(0x99)+_0x3083de(0x101);let _0x1df403;try{Z[_0x3083de(0xf5)](_0x3f503b);}catch(_0x37914e){_0x1df403=_0x37914e;}assert(_0x1df403,_0x3083de(0xb9)),assertEq(_0x1df403[_0x3083de(0x90)],_0x3083de(0xb8),_0x3083de(0x92));const _0x2bb28f=Z['_classifySoapError'](_0x1df403);assertEq(_0x2bb28f[_0x3083de(0x124)],![],_0x3083de(0x14f));}),test(_0x3df14f(0x142),()=>{const _0x503b9e=_0x3df14f;assertEq(Z[_0x503b9e(0xf5)](_0x503b9e(0xbf)),null,_0x503b9e(0x15d));}),test(_0x3df14f(0x8d),()=>{const _0x4feac1=_0x3df14f,_0x24a31f=_0x4feac1(0x164)+_0x4feac1(0xb0)+_0x4feac1(0x157);assertEq(Z[_0x4feac1(0xb7)](_0x24a31f),'600',_0x4feac1(0x100));}),test(_0x3df14f(0xbe),()=>{const _0x51be43=_0x3df14f,_0x107836='<Envelope><Body><Fault>'+'<Detail><Error><Code>mail.MESSAGE_TOO_BIG</Code></Error></Detail>'+_0x51be43(0xc2)+'</Fault></Body></Envelope>';let _0x1c1f65;try{Z[_0x51be43(0xb7)](_0x107836);}catch(_0x54e138){_0x1c1f65=_0x54e138;}assert(_0x1c1f65,'must\x20throw'),assertEq(_0x1c1f65['faultCode'],_0x51be43(0xca),_0x51be43(0x92));const _0x9b11b4=Z['_classifySoapError'](_0x1c1f65);assertEq(_0x9b11b4['transient'],![],_0x51be43(0x15a));}),test(_0x3df14f(0x132),()=>{const _0xffadac=_0x3df14f,_0x3a9842=_0xffadac(0xd3)+_0xffadac(0xeb)+_0xffadac(0xf4)+_0xffadac(0x11f),_0x511230=Z[_0xffadac(0x13a)](_0x3a9842);assert(_0x511230,_0xffadac(0xd5)),assertEq(_0x511230[_0xffadac(0xe4)],'service.PARSE_ERROR',_0xffadac(0xe4)),assertEq(_0x511230[_0xffadac(0xac)],_0xffadac(0xb5),_0xffadac(0xac));}),console['log'](_0x3df14f(0xef)),test(_0x3df14f(0xd1),()=>{const _0x401518=_0x3df14f,_0x3e4216=Object['assign'](new Error(_0x401518(0x11e)),{'code':_0x401518(0xa2)});assertEq(Z[_0x401518(0x118)](_0x3e4216)[_0x401518(0x124)],!![],_0x401518(0x124));}),test('HTTP\x20503\x20is\x20transient',()=>{const _0x1502fe=_0x3df14f,_0x579ee2=Object[_0x1502fe(0x13c)](new Error('upstream'),{'httpStatus':0x1f7});assertEq(Z[_0x1502fe(0x118)](_0x579ee2)['transient'],!![],'transient');}),test('HTTP\x20401\x20is\x20permanent',()=>{const _0x2e515b=_0x3df14f,_0x5ed701=Object[_0x2e515b(0x13c)](new Error(_0x2e515b(0x121)),{'httpStatus':0x191});assertEq(Z[_0x2e515b(0x118)](_0x5ed701)['transient'],![],_0x2e515b(0xf8));}),test('Zimbra\x20QUOTA_EXCEEDED\x20is\x20permanent',()=>{const _0x311890=_0x3df14f,_0x75ab0b=Object[_0x311890(0x13c)](new Error(_0x311890(0x127)),{'faultCode':_0x311890(0xa6)});assertEq(Z[_0x311890(0x118)](_0x75ab0b)[_0x311890(0x124)],![],'permanent');}),test(_0x3df14f(0xf6),()=>{const _0x366cab=_0x3df14f,_0x5643b8=new Error('socket\x20hang\x20up');assertEq(Z['_classifySoapError'](_0x5643b8)[_0x366cab(0x124)],!![],_0x366cab(0x124));}),console[_0x3df14f(0x156)]('\x0a[5]\x20AuthToken\x20cache'),test(_0x3df14f(0xaf),()=>{const _0x51e695=_0x3df14f;Z[_0x51e695(0xb1)][_0x51e695(0x116)](),Z[_0x51e695(0xe2)]('mail.zimbra.com',_0x51e695(0x123),_0x51e695(0xa8),0xea60),assertEq(Z[_0x51e695(0xc5)](_0x51e695(0xf9),_0x51e695(0x123)),'TKN-1',_0x51e695(0xf0)),Z['_invalidateCachedAuthToken'](_0x51e695(0xf9),_0x51e695(0x123)),assertEq(Z[_0x51e695(0xc5)](_0x51e695(0xf9),'alice'),null,_0x51e695(0xc8));}),test('cache\x20TTL\x20respects\x20safety\x20margin',()=>{const _0x43f439=_0x3df14f;Z[_0x43f439(0xb1)][_0x43f439(0x116)](),Z[_0x43f439(0xe2)](_0x43f439(0xf9),'bob',_0x43f439(0x8e),0x64);const _0x329018=Z[_0x43f439(0xb1)][_0x43f439(0x15f)](Z[_0x43f439(0xcc)](_0x43f439(0xf9),_0x43f439(0xe7)));assert(_0x329018,'entry\x20stored'),assert(_0x329018['expiresAt']>Date[_0x43f439(0x110)](),_0x43f439(0x146)),assert(_0x329018[_0x43f439(0x143)]-Date[_0x43f439(0x110)]()<=0x5dc,_0x43f439(0x161));}),console[_0x3df14f(0x156)]('\x0a[6]\x20sendSoapRequest\x20retry\x20+\x20_acquireAuthToken\x20cache\x20reuse');function _0x2ec31e(_0x711a8){let _0x1591b7=0x0;const _0x1ff2f3=[],_0xd985a6=async(_0x4d8a85,_0x31e563,_0x367987)=>{const _0x332054=a36_0x5c30,_0x4def09=_0x1591b7++,_0x7e3d00=_0x711a8[_0x4def09]||_0x711a8[_0x711a8[_0x332054(0x15b)]-0x1];_0x1ff2f3[_0x332054(0x120)]({'host':_0x4d8a85,'body':_0x31e563,'options':_0x367987,'idx':_0x4def09});if(_0x7e3d00[_0x332054(0xfa)])throw _0x7e3d00['error'];return{'status':_0x7e3d00[_0x332054(0x9a)]||0xc8,'body':_0x7e3d00[_0x332054(0xba)]||''};};return _0xd985a6['calls']=_0x1ff2f3,_0xd985a6;}await test(_0x3df14f(0xd7),async()=>{const _0x75af0b=_0x3df14f;Z['_authCache'][_0x75af0b(0x116)](),process[_0x75af0b(0xd0)][_0x75af0b(0x105)]='1',process['env'][_0x75af0b(0xa4)]='3';const _0x21e98f=Object[_0x75af0b(0x13c)](new Error(_0x75af0b(0xa2)),{'code':_0x75af0b(0xa2)}),_0x690b7=_0x2ec31e([{'error':_0x21e98f},{'body':_0x75af0b(0xc7)}]);Z[_0x75af0b(0x106)](_0x690b7);try{const {token:_0x589418,fromCache:_0xe7cebf}=await Z[_0x75af0b(0x9c)]({'host':_0x75af0b(0xf9),'user':'alice','pass':'pw','proxy':''});assertEq(_0x589418,_0x75af0b(0x11d),_0x75af0b(0x108)),assertEq(_0xe7cebf,![],'fresh\x20on\x20first\x20auth'),assertEq(_0x690b7[_0x75af0b(0x117)]['length'],0x2,_0x75af0b(0xd2));}finally{Z['_setSoapRequestImpl'](null),delete process[_0x75af0b(0xd0)][_0x75af0b(0x105)],delete process[_0x75af0b(0xd0)][_0x75af0b(0xa4)];}}),await test(_0x3df14f(0x141),async()=>{const _0x32da74=_0x3df14f;Z[_0x32da74(0xb1)]['clear'](),process[_0x32da74(0xd0)][_0x32da74(0x105)]='1',process[_0x32da74(0xd0)]['ZIMBRA_RETRY_MAX_ATTEMPTS']='3';const _0x334272=_0x2ec31e([{'body':_0x32da74(0x158)+_0x32da74(0x162)}]);Z[_0x32da74(0x106)](_0x334272);let _0x133995;try{await Z[_0x32da74(0x9c)]({'host':'mail.zimbra.com','user':'alice','pass':_0x32da74(0xbb),'proxy':''});}catch(_0x4cffa8){_0x133995=_0x4cffa8;}finally{Z[_0x32da74(0x106)](null),delete process['env'][_0x32da74(0x105)],delete process[_0x32da74(0xd0)][_0x32da74(0xa4)];}assert(_0x133995,_0x32da74(0xb9)),assertEq(_0x133995[_0x32da74(0x90)],_0x32da74(0xb8),_0x32da74(0xfe)),assertEq(_0x133995[_0x32da74(0x124)],![],_0x32da74(0x14a)),assertEq(_0x334272['calls'][_0x32da74(0x15b)],0x1,_0x32da74(0xaa));}),await test(_0x3df14f(0x112),async()=>{const _0x5a3d9b=_0x3df14f;Z[_0x5a3d9b(0xb1)][_0x5a3d9b(0x116)]();const _0x3b4734=_0x2ec31e([{'body':'<AuthResponse><authToken>0_CACHEME</authToken><lifetime>3600000</lifetime></AuthResponse>'}]);Z[_0x5a3d9b(0x106)](_0x3b4734);try{const _0x5700d0=await Z[_0x5a3d9b(0x9c)]({'host':_0x5a3d9b(0xf9),'user':_0x5a3d9b(0xe0),'pass':'pw','proxy':''});assertEq(_0x5700d0['token'],_0x5a3d9b(0x10a),_0x5a3d9b(0x94)),assertEq(_0x5700d0[_0x5a3d9b(0x14c)],![],_0x5a3d9b(0x9e));const _0x464c65=await Z['_acquireAuthToken']({'host':_0x5a3d9b(0xf9),'user':'carol','pass':'pw','proxy':''});assertEq(_0x464c65[_0x5a3d9b(0x108)],_0x5a3d9b(0x10a),'second\x20token\x20(cached)'),assertEq(_0x464c65[_0x5a3d9b(0x14c)],!![],_0x5a3d9b(0x9b)),assertEq(_0x3b4734[_0x5a3d9b(0x117)][_0x5a3d9b(0x15b)],0x1,'exactly\x201\x20SOAP\x20call\x20total');}finally{Z[_0x5a3d9b(0x106)](null);}}),await test(_0x3df14f(0xa3),async()=>{const _0x43d6d5=_0x3df14f;Z[_0x43d6d5(0xb1)]['clear'](),process[_0x43d6d5(0xd0)][_0x43d6d5(0x105)]='1',process['env']['ZIMBRA_RETRY_MAX_ATTEMPTS']='3';const _0x3d6fbc=Object[_0x43d6d5(0x13c)](new Error(_0x43d6d5(0x107)),{'httpStatus':0x1f7}),_0x44f89d=_0x2ec31e([{'error':_0x3d6fbc},{'error':_0x3d6fbc},{'error':_0x3d6fbc}]);Z['_setSoapRequestImpl'](_0x44f89d);let _0x2fce1f;try{await Z['_acquireAuthToken']({'host':_0x43d6d5(0xf9),'user':_0x43d6d5(0x159),'pass':'pw','proxy':''});}catch(_0x54fb88){_0x2fce1f=_0x54fb88;}finally{Z[_0x43d6d5(0x106)](null),delete process[_0x43d6d5(0xd0)][_0x43d6d5(0x105)],delete process['env'][_0x43d6d5(0xa4)];}assert(_0x2fce1f,_0x43d6d5(0xb9)),assertEq(_0x2fce1f[_0x43d6d5(0x124)],!![],_0x43d6d5(0x11a)),assertEq(_0x44f89d[_0x43d6d5(0x117)][_0x43d6d5(0x15b)],0x3,_0x43d6d5(0xee));}),console[_0x3df14f(0x156)](_0x3df14f(0x12e)),test(_0x3df14f(0x13b),()=>{const _0xcada88=_0x3df14f,_0x8703a1=Z[_0xcada88(0xd9)](0x1,0x64),_0x5d6cc1=Z['_computeBackoffMs'](0x2,0x64),_0xe49a0b=Z[_0xcada88(0xd9)](0x3,0x64);assert(_0x8703a1>=0x50&&_0x8703a1<=0x78,_0xcada88(0x128)+_0x8703a1),assert(_0x5d6cc1>=0xf0&&_0x5d6cc1<=0x168,_0xcada88(0xdd)+_0x5d6cc1),assert(_0xe49a0b>=0x2d0&&_0xe49a0b<=0x438,_0xcada88(0xfc)+_0xe49a0b);}),console[_0x3df14f(0x156)](_0x3df14f(0x91)),test(_0x3df14f(0xb3),()=>{const _0x5665b2=_0x3df14f;process[_0x5665b2(0xd0)][_0x5665b2(0x8c)]=_0x5665b2(0x103),process[_0x5665b2(0xd0)][_0x5665b2(0xec)]='5678',process[_0x5665b2(0xd0)]['ZIMBRA_MAX_MIME_BYTES']=_0x5665b2(0x11c),process[_0x5665b2(0xd0)][_0x5665b2(0xbd)]='1';try{const _0xeb7128=Z['getConfig']();assertEq(_0xeb7128[_0x5665b2(0x125)],0x4d2,_0x5665b2(0x145)),assertEq(_0xeb7128[_0x5665b2(0xb4)],0x162e,_0x5665b2(0xe9)),assertEq(_0xeb7128[_0x5665b2(0x11b)],0xf4240,_0x5665b2(0x12d)),assertEq(_0xeb7128[_0x5665b2(0xd6)],!![],_0x5665b2(0x98));}finally{delete process[_0x5665b2(0xd0)]['ZIMBRA_AUTH_TIMEOUT_MS'],delete process[_0x5665b2(0xd0)][_0x5665b2(0xec)],delete process[_0x5665b2(0xd0)][_0x5665b2(0xe1)],delete process[_0x5665b2(0xd0)][_0x5665b2(0xbd)];}}),test('getConfig\x20defaults\x20are\x20sane',()=>{const _0x303d34=_0x3df14f,_0xe1b604=Z[_0x303d34(0x163)]();assertEq(_0xe1b604[_0x303d34(0x125)],0x2ee0,'default\x20auth'),assertEq(_0xe1b604[_0x303d34(0xb4)],0xea60,_0x303d34(0x149)),assertEq(_0xe1b604[_0x303d34(0x11b)],0x1900000,_0x303d34(0xc4)),assertEq(_0xe1b604['strictTls'],![],_0x303d34(0x115)),assert(_0xe1b604[_0x303d34(0xc1)]>=0x1,_0x303d34(0x134));}),console['log']('\x0a========================================='),console['log'](_0x3df14f(0x10b)+testsRun+_0x3df14f(0x153)+testsFailed+_0x3df14f(0xe3)+(testsRun-testsFailed)+_0x3df14f(0x151)),testsFailed>0x0&&process[_0x3df14f(0x8f)](0x1);}main()[a36_0xd8490a(0xda)](_0x59bfba=>{const _0x1d3489=a36_0xd8490a;console[_0x1d3489(0xfa)](_0x1d3489(0xae),_0x59bfba[_0x1d3489(0xcf)]||_0x59bfba),process[_0x1d3489(0x8f)](0x1);});
2
+ function a55_0x4b27(_0x111810,_0x5a243b){const _0x2fdc09=a55_0x2fbe();return a55_0x4b27=function(_0x1c441c,_0x439ff7){_0x1c441c=_0x1c441c-0x16e;let _0x2fbed6=_0x2fdc09[_0x1c441c];return _0x2fbed6;},a55_0x4b27(_0x111810,_0x5a243b);}const a55_0x4ebc21=a55_0x4b27;(function(_0xe0b225,_0x2ea92a){const _0x2e4e7d=a55_0x4b27,_0x5b5af9=_0xe0b225();while(!![]){try{const _0x623ddd=parseInt(_0x2e4e7d(0x225))/0x1*(parseInt(_0x2e4e7d(0x1d3))/0x2)+-parseInt(_0x2e4e7d(0x17b))/0x3*(-parseInt(_0x2e4e7d(0x1c5))/0x4)+parseInt(_0x2e4e7d(0x223))/0x5*(-parseInt(_0x2e4e7d(0x1fd))/0x6)+parseInt(_0x2e4e7d(0x1e3))/0x7*(-parseInt(_0x2e4e7d(0x1d4))/0x8)+-parseInt(_0x2e4e7d(0x1b5))/0x9*(parseInt(_0x2e4e7d(0x200))/0xa)+parseInt(_0x2e4e7d(0x186))/0xb*(-parseInt(_0x2e4e7d(0x215))/0xc)+parseInt(_0x2e4e7d(0x1ea))/0xd;if(_0x623ddd===_0x2ea92a)break;else _0x5b5af9['push'](_0x5b5af9['shift']());}catch(_0x402fa0){_0x5b5af9['push'](_0x5b5af9['shift']());}}}(a55_0x2fbe,0xbddd8));const path=require(a55_0x4ebc21(0x1fe)),Z=require(path[a55_0x4ebc21(0x218)](__dirname,a55_0x4ebc21(0x234)));let testsRun=0x0,testsFailed=0x0;const failures=[];function test(_0x977da6,_0x26bd3f){const _0x276c34=a55_0x4ebc21;testsRun++;try{const _0x5ec163=_0x26bd3f();if(_0x5ec163&&typeof _0x5ec163[_0x276c34(0x20f)]==='function')return _0x5ec163[_0x276c34(0x20f)](()=>process[_0x276c34(0x1ce)][_0x276c34(0x238)](_0x276c34(0x1fb)+_0x977da6+'\x0a'),_0x2b43f1=>{const _0x196414=_0x276c34;testsFailed++,failures[_0x196414(0x1c3)]({'name':_0x977da6,'err':_0x2b43f1}),process[_0x196414(0x1ce)][_0x196414(0x238)]('\x20\x20FAIL\x20'+_0x977da6+_0x196414(0x1aa)+(_0x2b43f1[_0x196414(0x23a)]||_0x2b43f1)+'\x0a');});process['stdout']['write'](_0x276c34(0x1fb)+_0x977da6+'\x0a');}catch(_0x4ce82e){testsFailed++,failures[_0x276c34(0x1c3)]({'name':_0x977da6,'err':_0x4ce82e}),process['stdout']['write']('\x20\x20FAIL\x20'+_0x977da6+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20'+(_0x4ce82e['stack']||_0x4ce82e)+'\x0a');}}function assert(_0x5680fe,_0x169d97){if(!_0x5680fe)throw new Error('assertion\x20failed:\x20'+_0x169d97);}function assertEq(_0x3554c3,_0x17b3b1,_0x52adf9){const _0x2b6b1c=a55_0x4ebc21;if(_0x3554c3!==_0x17b3b1)throw new Error(_0x2b6b1c(0x1ab)+_0x52adf9+_0x2b6b1c(0x1f9)+JSON[_0x2b6b1c(0x224)](_0x17b3b1)+_0x2b6b1c(0x22b)+JSON[_0x2b6b1c(0x224)](_0x3554c3));}function assertContains(_0x250a40,_0x450b21,_0xa9e887){const _0x590148=a55_0x4ebc21;if(typeof _0x250a40!=='string'||!_0x250a40[_0x590148(0x1eb)](_0x450b21))throw new Error(_0x590148(0x1ab)+_0xa9e887+_0x590148(0x1b7)+JSON['stringify'](_0x450b21)+_0x590148(0x22e)+JSON[_0x590148(0x224)]((_0x250a40||'')['slice'](0x0,0xf0)));}function a55_0x2fbe(){const _0x2ecde1=['get','default\x20send','wrong','<e\x20a=\x22bob@example.com\x22\x20t=\x22t\x22/>','attempt\x202\x20in\x20range,\x20got\x20','push','undef','4EjqHOm','multiline\x20id','second\x20auth\x20reuses\x20cached\x20token\x20(no\x20extra\x20SOAP\x20call)','\x0a[3]\x20extractAuthToken\x20/\x20extractSendMsgId\x20/\x20extractSoapFault','expiresAt','backoff\x20grows\x20~3x\x20per\x20attempt\x20within\x20jitter\x20bounds','Generic\x20timeout\x20message\x20is\x20transient','base64','MESSAGE_TOO_BIG\x20is\x20permanent','stdout','c@x.com','fresh\x20on\x20first\x20auth','exit','<Reason><Text>bad\x20XML</Text></Reason>','2SssKbK','5424hoZCjL','catch','fromCache','HTTP\x20503\x20is\x20transient','maxAttempts','invalidated','entry\x20stored','base64\x20mime','MAILER_STRICT_TLS','_setSoapRequestImpl','second\x20to','collab.zextras.com','Ran\x20','ZIMBRA_MAX_MIME_BYTES','unauthorized','7287vXtuei','mail.zimbra.com','ZIMBRA_AUTH_TIMEOUT_MS','upstream','<Envelope><Body><Fault>','exhausts\x20retries\x20on\x20persistent\x20503\x20and\x20throws\x20transient\x20err','extractAuthToken\x20throws\x20decorated\x20fault\x20on\x20AUTH_FAILED','25526254UsoZVU','includes','alice','subject','0_CACHEME','socket\x20hang\x20up','carol','fault\x20propagated','default\x20auth','rejects\x20unrelated\x20hosts','mail.MESSAGE_TOO_BIG','over\x20quota','ECONNRESET\x20is\x20transient','\x0a[6]\x20sendSoapRequest\x20retry\x20+\x20_acquireAuthToken\x20cache\x20reuse','_invalidateCachedAuthToken','\x0a\x20\x20\x20\x20\x20\x20\x20\x20expected:\x20','=========================================','\x20\x20ok\x20\x20','<Envelope><Body><SendMsgResponse>\x0a','6HHXZIb','path','zextras','432940tUZuti','1\x20retry\x20+\x201\x20success','<Envelope><Body><soap:Fault><Code><Value>soap:Sender</Value></Code>','ZIMBRA_SEND_TIMEOUT_MS','alice@example.com','faultCode','(((.+)+)+)+$','log','<Detail><Error><Code>service.PARSE_ERROR</Code></Error></Detail>','600','extractSendMsgId','strict\x20tls','b@x.com','matches\x20plain\x20*.zimbra.com','cache\x20TTL\x20respects\x20safety\x20margin','then','gmail','toString','keyword','read\x20ECONNRESET','\x20failed,\x20','696YkLGvg','second\x20token\x20(cached)','_extractAuthTokenLifetimeMs','join','\x20checks,\x20','extractAuthToken\x20pulls\x20token\x20from\x20happy\x20response','permanent','<e\x20a=\x22a@x.com\x22\x20t=\x22t\x22/>','ZIMBRA_RETRY_MAX_ATTEMPTS','to\x20recipient','_computeBackoffMs','\x0a[8]\x20getConfig\x20env\x20wiring','3\x20attempts','escaped\x20password','6073640nKaeFg','stringify','147081OyAjfb','sendTimeoutMs','fault\x20code','\x20\x20<m\x0a\x20\x20\x20\x20\x20id=\x22600\x22\x0a\x20\x20\x20\x20\x20f=\x22su\x22\x0a\x20\x20/>\x0a','<su>ping</su>','AuthRequest\x20carries\x20account\x20name\x20+\x20password\x20+\x20namespace','\x0a\x20\x20\x20\x20\x20\x20\x20\x20actual:\x20\x20\x20','xmlns=\x22urn:zimbraAccount\x22','</Fault></Body></Envelope>','\x0a\x20\x20\x20\x20\x20\x20\x20\x20actual:\x20','strictTls','body','extractSoapFault\x20pulls\x20code\x20and\x20text','mail.QUOTA_EXCEEDED','verify-zimbra\x20crashed:','mailer-zimbra','smtp.gmail.com','AuthRequest\x20namespace','TKN-1','write','internal-zimbra-01.corp.example','stack','constructor','exactly\x201\x20SOAP\x20call\x20total','<account\x20by=\x22name\x22>alice@example.com</account>','<Fault><Detail><Error><Code>account.AUTH_FAILED</Code></Error></Detail>','transient','calls','dan','a@x.com','default\x20mime\x20cap','\x0a[1]\x20looksLikeZimbraHost','_authCache','extractAuthToken\x20returns\x20null\x20on\x20no-token\x20/\x20no-fault\x20body','Zimbra\x20QUOTA_EXCEEDED\x20is\x20permanent','</soap:Fault></Body></Envelope>','3404901lyCksc','\x0a=========================================','ping','cache\x20hit','_classifySoapError','<AuthResponse><authToken>0_OK</authToken><lifetime>3600000</lifetime></AuthResponse>','now','account.AUTH_FAILED','error','search','cache\x20stores\x20then\x20returns\x20token\x20until\x20TTL\x20expires','70972sMsmBs','<authToken>0_abc123</authToken>','matches\x20Zextras\x20suffix\x20(new)','fault\x20present','null\x20body','ECONNRESET','extractSendMsgId\x20tolerates\x20multiline\x20<m\x20...>\x20tag','\x20passed','status','soap\x20envelope','<Detail><Error\x20xmlns=\x22urn:zimbra\x22><Code>account.AUTH_FAILED</Code></Error></Detail>','env','assign','attempt\x201\x20in\x20range,\x20got\x20','looksLikeZimbraHost','send\x20timeout','extractAuthToken','token','<Reason><Text>message\x20too\x20big</Text></Reason>','text','<AuthResponse><authToken>0_CACHEME</authToken><lifetime>3600000</lifetime></AuthResponse>','composeSendMsgEnvelope','SendMsgRequest\x20accepts\x20an\x20array\x20of\x20recipients','0_abc123','extractSoapFault','from','composeAuthRequest','apply','must\x20throw','_readCachedAuthToken','p@ss<word>','bad\x20XML','mime\x20cap','HTTP\x20401\x20is\x20permanent','_writeCachedAuthToken','authTimeoutMs','\x0a\x20\x20\x20\x20\x20\x20\x20\x20','assertion\x20failed:\x20','length','getConfig\x20defaults\x20are\x20sane','<e\x20a=\x22b@x.com\x22\x20t=\x22t\x22/>','auth\x20timeout','attempt\x203\x20in\x20range,\x20got\x20','<empty/>','<Detail><Error><Code>mail.MESSAGE_TOO_BIG</Code></Error></Detail>','bob@example.com','<soap:Envelope','36RXyeCr','bob','\x0a\x20\x20\x20\x20\x20\x20\x20\x20expected\x20to\x20contain:\x20','maxMimeBytes','\x0a[2]\x20composeAuthRequest\x20/\x20composeSendMsgEnvelope','max\x20attempts\x20>=\x201','ZIMBRA_RETRY_BACKOFF_MS','_acquireAuthToken','clear'];a55_0x2fbe=function(){return _0x2ecde1;};return a55_0x2fbe();}async function main(){const _0x3cb773=a55_0x4ebc21,_0x2490ea=(function(){let _0x4898a2=!![];return function(_0x5d967f,_0x1a963a){const _0xb6a11e=_0x4898a2?function(){const _0x5dc10b=a55_0x4b27;if(_0x1a963a){const _0x4e3287=_0x1a963a[_0x5dc10b(0x1a1)](_0x5d967f,arguments);return _0x1a963a=null,_0x4e3287;}}:function(){};return _0x4898a2=![],_0xb6a11e;};}()),_0x306251=_0x2490ea(this,function(){const _0x2b33a6=a55_0x4b27;return _0x306251[_0x2b33a6(0x211)]()[_0x2b33a6(0x184)](_0x2b33a6(0x206))['toString']()[_0x2b33a6(0x23b)](_0x306251)[_0x2b33a6(0x184)](_0x2b33a6(0x206));});_0x306251(),console[_0x3cb773(0x207)]('Zimbra\x20SOAP\x20mailer\x20—\x20verification\x20harness'),console[_0x3cb773(0x207)](_0x3cb773(0x1fa)),console[_0x3cb773(0x207)](_0x3cb773(0x176)),test(_0x3cb773(0x20d),()=>{const _0x5ce688=_0x3cb773;assert(Z['looksLikeZimbraHost'](_0x5ce688(0x1e4)),_0x5ce688(0x1e4));}),test('matches\x20keyword\x20in\x20middle\x20of\x20host',()=>{const _0x2fb20d=_0x3cb773;assert(Z[_0x2fb20d(0x194)](_0x2fb20d(0x239)),_0x2fb20d(0x212));}),test(_0x3cb773(0x188),()=>{const _0x14e397=_0x3cb773;assert(Z['looksLikeZimbraHost'](_0x14e397(0x1df)),_0x14e397(0x1ff));}),test('strips\x20:port\x20before\x20suffix\x20check',()=>{const _0x1b130a=_0x3cb773;assert(Z[_0x1b130a(0x194)]('mail.zimbra.com:443'),'with\x20port');}),test(_0x3cb773(0x1f3),()=>{const _0x10e6a5=_0x3cb773;assert(!Z['looksLikeZimbraHost'](_0x10e6a5(0x235)),_0x10e6a5(0x210)),assert(!Z[_0x10e6a5(0x194)](''),'empty'),assert(!Z[_0x10e6a5(0x194)](undefined),_0x10e6a5(0x1c4));}),console[_0x3cb773(0x207)](_0x3cb773(0x1b9)),test(_0x3cb773(0x22a),()=>{const _0x144b73=_0x3cb773,_0x38763a=Z[_0x144b73(0x1a0)](_0x144b73(0x204),_0x144b73(0x1a4));assertContains(_0x38763a,_0x144b73(0x16f),'account\x20elem'),assertContains(_0x38763a,'<password>p@ss&lt;word&gt;</password>',_0x144b73(0x222)),assertContains(_0x38763a,_0x144b73(0x22c),_0x144b73(0x236)),assertContains(_0x38763a,_0x144b73(0x1b4),_0x144b73(0x18f));}),test('SendMsgRequest\x20base64-encodes\x20MIME\x20and\x20embeds\x20authToken',()=>{const _0x2e53f7=_0x3cb773,_0x526096=Buffer[_0x2e53f7(0x19f)]('Subject:\x20hi\x0d\x0a\x0d\x0ahello\x20world','utf8'),_0x1fe58c=Z[_0x2e53f7(0x19b)]({'to':_0x2e53f7(0x1b3),'from':_0x2e53f7(0x204),'subject':_0x2e53f7(0x17d),'mime':_0x526096,'authToken':_0x2e53f7(0x19d)});assertContains(_0x1fe58c,_0x2e53f7(0x187),_0x2e53f7(0x197)),assertContains(_0x1fe58c,_0x2e53f7(0x1c1),_0x2e53f7(0x21e)),assertContains(_0x1fe58c,'<e\x20a=\x22alice@example.com\x22\x20t=\x22f\x22/>',_0x2e53f7(0x19f)),assertContains(_0x1fe58c,_0x2e53f7(0x229),_0x2e53f7(0x1ed)),assertContains(_0x1fe58c,_0x526096['toString'](_0x2e53f7(0x1cc)),_0x2e53f7(0x1db));}),test(_0x3cb773(0x19c),()=>{const _0x4aaa2e=_0x3cb773,_0x2ae65f=Z[_0x4aaa2e(0x19b)]({'to':[_0x4aaa2e(0x174),_0x4aaa2e(0x20c)],'from':_0x4aaa2e(0x1cf),'subject':'s','mime':'raw','authToken':'t'});assertContains(_0x2ae65f,_0x4aaa2e(0x21c),'first\x20to'),assertContains(_0x2ae65f,_0x4aaa2e(0x1ae),_0x4aaa2e(0x1de));}),console['log'](_0x3cb773(0x1c8)),test(_0x3cb773(0x21a),()=>{const _0x3142ac=_0x3cb773,_0x568e76='<Envelope><Body><AuthResponse><authToken>0_TOKEN_XYZ</authToken><lifetime>43200000</lifetime></AuthResponse></Body></Envelope>';assertEq(Z['extractAuthToken'](_0x568e76),'0_TOKEN_XYZ',_0x3142ac(0x197)),assertEq(Z[_0x3142ac(0x217)](_0x568e76),0x2932e00,'lifetime');}),test(_0x3cb773(0x1e9),()=>{const _0x52bc53=_0x3cb773,_0x4bb906=_0x52bc53(0x202)+'<Reason><Text>authentication\x20failed</Text></Reason>'+_0x52bc53(0x190)+_0x52bc53(0x17a);let _0x13551b;try{Z[_0x52bc53(0x196)](_0x4bb906);}catch(_0x4486dd){_0x13551b=_0x4486dd;}assert(_0x13551b,'must\x20throw'),assertEq(_0x13551b[_0x52bc53(0x205)],_0x52bc53(0x182),'fault\x20code');const _0x248f0b=Z[_0x52bc53(0x17f)](_0x13551b);assertEq(_0x248f0b[_0x52bc53(0x171)],![],'AUTH_FAILED\x20is\x20permanent');}),test(_0x3cb773(0x178),()=>{const _0x122f8f=_0x3cb773;assertEq(Z[_0x122f8f(0x196)](_0x122f8f(0x1b1)),null,_0x122f8f(0x18a));}),test(_0x3cb773(0x18c),()=>{const _0x366728=_0x3cb773,_0x25af33=_0x366728(0x1fc)+_0x366728(0x228)+'</SendMsgResponse></Body></Envelope>';assertEq(Z[_0x366728(0x20a)](_0x25af33),_0x366728(0x209),_0x366728(0x1c6));}),test('extractSendMsgId\x20throws\x20decorated\x20fault\x20on\x20MESSAGE_TOO_BIG',()=>{const _0x175530=_0x3cb773,_0x27042f='<Envelope><Body><Fault>'+_0x175530(0x1b2)+_0x175530(0x198)+_0x175530(0x22d);let _0x99f875;try{Z[_0x175530(0x20a)](_0x27042f);}catch(_0x31da11){_0x99f875=_0x31da11;}assert(_0x99f875,_0x175530(0x1a2)),assertEq(_0x99f875[_0x175530(0x205)],_0x175530(0x1f4),_0x175530(0x227));const _0x4ee1f2=Z[_0x175530(0x17f)](_0x99f875);assertEq(_0x4ee1f2[_0x175530(0x171)],![],_0x175530(0x1cd));}),test(_0x3cb773(0x231),()=>{const _0x228ae7=_0x3cb773,_0x340932=_0x228ae7(0x1e7)+_0x228ae7(0x208)+_0x228ae7(0x1d2)+_0x228ae7(0x22d),_0x4e524c=Z[_0x228ae7(0x19e)](_0x340932);assert(_0x4e524c,_0x228ae7(0x189)),assertEq(_0x4e524c['code'],'service.PARSE_ERROR','code'),assertEq(_0x4e524c[_0x228ae7(0x199)],_0x228ae7(0x1a5),_0x228ae7(0x199));}),console[_0x3cb773(0x207)]('\x0a[4]\x20_classifySoapError'),test(_0x3cb773(0x1f6),()=>{const _0x2da0fb=_0x3cb773,_0x435e5d=Object[_0x2da0fb(0x192)](new Error(_0x2da0fb(0x213)),{'code':_0x2da0fb(0x18b)});assertEq(Z[_0x2da0fb(0x17f)](_0x435e5d)[_0x2da0fb(0x171)],!![],'transient');}),test(_0x3cb773(0x1d7),()=>{const _0xffd3ad=_0x3cb773,_0x2f83c1=Object['assign'](new Error(_0xffd3ad(0x1e6)),{'httpStatus':0x1f7});assertEq(Z['_classifySoapError'](_0x2f83c1)[_0xffd3ad(0x171)],!![],_0xffd3ad(0x171));}),test(_0x3cb773(0x1a7),()=>{const _0x228cc5=_0x3cb773,_0x4b47c2=Object[_0x228cc5(0x192)](new Error(_0x228cc5(0x1e2)),{'httpStatus':0x191});assertEq(Z[_0x228cc5(0x17f)](_0x4b47c2)[_0x228cc5(0x171)],![],_0x228cc5(0x21b));}),test(_0x3cb773(0x179),()=>{const _0x31419c=_0x3cb773,_0x45b760=Object['assign'](new Error(_0x31419c(0x1f5)),{'faultCode':_0x31419c(0x232)});assertEq(Z[_0x31419c(0x17f)](_0x45b760)[_0x31419c(0x171)],![],_0x31419c(0x21b));}),test(_0x3cb773(0x1cb),()=>{const _0x213595=_0x3cb773,_0x4c81cc=new Error(_0x213595(0x1ef));assertEq(Z['_classifySoapError'](_0x4c81cc)[_0x213595(0x171)],!![],_0x213595(0x171));}),console['log']('\x0a[5]\x20AuthToken\x20cache'),test(_0x3cb773(0x185),()=>{const _0x444522=_0x3cb773;Z[_0x444522(0x177)][_0x444522(0x1bd)](),Z[_0x444522(0x1a8)](_0x444522(0x1e4),'alice','TKN-1',0xea60),assertEq(Z[_0x444522(0x1a3)]('mail.zimbra.com','alice'),_0x444522(0x237),'hit'),Z[_0x444522(0x1f8)](_0x444522(0x1e4),_0x444522(0x1ec)),assertEq(Z[_0x444522(0x1a3)](_0x444522(0x1e4),_0x444522(0x1ec)),null,_0x444522(0x1d9));}),test(_0x3cb773(0x20e),()=>{const _0x375cea=_0x3cb773;Z[_0x375cea(0x177)]['clear'](),Z[_0x375cea(0x1a8)](_0x375cea(0x1e4),'bob','TKN-2',0x64);const _0x1d471f=Z[_0x375cea(0x177)][_0x375cea(0x1be)](Z['_getAuthCacheKey']('mail.zimbra.com',_0x375cea(0x1b6)));assert(_0x1d471f,_0x375cea(0x1da)),assert(_0x1d471f[_0x375cea(0x1c9)]>Date['now'](),'still\x20in\x20the\x20future'),assert(_0x1d471f[_0x375cea(0x1c9)]-Date[_0x375cea(0x181)]()<=0x5dc,'but\x20only\x20by\x20~1s');}),console['log'](_0x3cb773(0x1f7));function _0x1d587d(_0x792086){let _0x45eb12=0x0;const _0x21da11=[],_0x21a9b1=async(_0x3b8370,_0x42c6f7,_0x3962ea)=>{const _0x57b859=a55_0x4b27,_0x5ac238=_0x45eb12++,_0x2e7bfc=_0x792086[_0x5ac238]||_0x792086[_0x792086['length']-0x1];_0x21da11[_0x57b859(0x1c3)]({'host':_0x3b8370,'body':_0x42c6f7,'options':_0x3962ea,'idx':_0x5ac238});if(_0x2e7bfc['error'])throw _0x2e7bfc['error'];return{'status':_0x2e7bfc[_0x57b859(0x18e)]||0xc8,'body':_0x2e7bfc[_0x57b859(0x230)]||''};};return _0x21a9b1['calls']=_0x21da11,_0x21a9b1;}await test('transient\x20ECONNRESET\x20on\x20auth\x20retries\x20then\x20succeeds',async()=>{const _0x504923=_0x3cb773;Z[_0x504923(0x177)][_0x504923(0x1bd)](),process[_0x504923(0x191)]['ZIMBRA_RETRY_BACKOFF_MS']='1',process[_0x504923(0x191)][_0x504923(0x21d)]='3';const _0x3818f1=Object[_0x504923(0x192)](new Error(_0x504923(0x18b)),{'code':_0x504923(0x18b)}),_0x16d087=_0x1d587d([{'error':_0x3818f1},{'body':_0x504923(0x180)}]);Z[_0x504923(0x1dd)](_0x16d087);try{const {token:_0x368fa1,fromCache:_0x10cc7d}=await Z['_acquireAuthToken']({'host':_0x504923(0x1e4),'user':_0x504923(0x1ec),'pass':'pw','proxy':''});assertEq(_0x368fa1,'0_OK',_0x504923(0x197)),assertEq(_0x10cc7d,![],_0x504923(0x1d0)),assertEq(_0x16d087[_0x504923(0x172)][_0x504923(0x1ac)],0x2,_0x504923(0x201));}finally{Z[_0x504923(0x1dd)](null),delete process[_0x504923(0x191)][_0x504923(0x1bb)],delete process['env'][_0x504923(0x21d)];}}),await test('permanent\x20AUTH_FAILED\x20is\x20not\x20retried',async()=>{const _0x43f57e=_0x3cb773;Z[_0x43f57e(0x177)][_0x43f57e(0x1bd)](),process[_0x43f57e(0x191)]['ZIMBRA_RETRY_BACKOFF_MS']='1',process[_0x43f57e(0x191)][_0x43f57e(0x21d)]='3';const _0x39a2e1=_0x1d587d([{'body':_0x43f57e(0x170)+'<Reason><Text>bad\x20creds</Text></Reason></Fault>'}]);Z[_0x43f57e(0x1dd)](_0x39a2e1);let _0x434747;try{await Z['_acquireAuthToken']({'host':_0x43f57e(0x1e4),'user':'alice','pass':_0x43f57e(0x1c0),'proxy':''});}catch(_0x843a08){_0x434747=_0x843a08;}finally{Z[_0x43f57e(0x1dd)](null),delete process['env'][_0x43f57e(0x1bb)],delete process[_0x43f57e(0x191)]['ZIMBRA_RETRY_MAX_ATTEMPTS'];}assert(_0x434747,_0x43f57e(0x1a2)),assertEq(_0x434747[_0x43f57e(0x205)],_0x43f57e(0x182),_0x43f57e(0x1f1)),assertEq(_0x434747[_0x43f57e(0x171)],![],'marked\x20permanent'),assertEq(_0x39a2e1[_0x43f57e(0x172)][_0x43f57e(0x1ac)],0x1,'no\x20retries\x20on\x20AUTH_FAILED');}),await test(_0x3cb773(0x1c7),async()=>{const _0x39e995=_0x3cb773;Z[_0x39e995(0x177)][_0x39e995(0x1bd)]();const _0x1d6f37=_0x1d587d([{'body':_0x39e995(0x19a)}]);Z['_setSoapRequestImpl'](_0x1d6f37);try{const _0x4ef5f0=await Z['_acquireAuthToken']({'host':_0x39e995(0x1e4),'user':_0x39e995(0x1f0),'pass':'pw','proxy':''});assertEq(_0x4ef5f0[_0x39e995(0x197)],_0x39e995(0x1ee),'first\x20token'),assertEq(_0x4ef5f0[_0x39e995(0x1d6)],![],'fresh\x20on\x20first');const _0x38492a=await Z[_0x39e995(0x1bc)]({'host':_0x39e995(0x1e4),'user':'carol','pass':'pw','proxy':''});assertEq(_0x38492a['token'],_0x39e995(0x1ee),_0x39e995(0x216)),assertEq(_0x38492a[_0x39e995(0x1d6)],!![],_0x39e995(0x17e)),assertEq(_0x1d6f37[_0x39e995(0x172)][_0x39e995(0x1ac)],0x1,_0x39e995(0x16e));}finally{Z[_0x39e995(0x1dd)](null);}}),await test(_0x3cb773(0x1e8),async()=>{const _0x3e06b3=_0x3cb773;Z[_0x3e06b3(0x177)][_0x3e06b3(0x1bd)](),process[_0x3e06b3(0x191)]['ZIMBRA_RETRY_BACKOFF_MS']='1',process[_0x3e06b3(0x191)][_0x3e06b3(0x21d)]='3';const _0x495319=Object[_0x3e06b3(0x192)](new Error('Zimbra\x20SOAP\x20HTTP\x20503'),{'httpStatus':0x1f7}),_0x11e639=_0x1d587d([{'error':_0x495319},{'error':_0x495319},{'error':_0x495319}]);Z['_setSoapRequestImpl'](_0x11e639);let _0x328219;try{await Z[_0x3e06b3(0x1bc)]({'host':_0x3e06b3(0x1e4),'user':_0x3e06b3(0x173),'pass':'pw','proxy':''});}catch(_0x528258){_0x328219=_0x528258;}finally{Z[_0x3e06b3(0x1dd)](null),delete process[_0x3e06b3(0x191)][_0x3e06b3(0x1bb)],delete process['env'][_0x3e06b3(0x21d)];}assert(_0x328219,'must\x20throw'),assertEq(_0x328219[_0x3e06b3(0x171)],!![],'still\x20tagged\x20transient'),assertEq(_0x11e639[_0x3e06b3(0x172)][_0x3e06b3(0x1ac)],0x3,_0x3e06b3(0x221));}),console[_0x3cb773(0x207)]('\x0a[7]\x20_computeBackoffMs'),test(_0x3cb773(0x1ca),()=>{const _0x23c574=_0x3cb773,_0x480d37=Z[_0x23c574(0x21f)](0x1,0x64),_0x23b889=Z['_computeBackoffMs'](0x2,0x64),_0x21677f=Z[_0x23c574(0x21f)](0x3,0x64);assert(_0x480d37>=0x50&&_0x480d37<=0x78,_0x23c574(0x193)+_0x480d37),assert(_0x23b889>=0xf0&&_0x23b889<=0x168,_0x23c574(0x1c2)+_0x23b889),assert(_0x21677f>=0x2d0&&_0x21677f<=0x438,_0x23c574(0x1b0)+_0x21677f);}),console[_0x3cb773(0x207)](_0x3cb773(0x220)),test('env\x20vars\x20flow\x20into\x20getConfig',()=>{const _0x46cac5=_0x3cb773;process[_0x46cac5(0x191)][_0x46cac5(0x1e5)]='1234',process[_0x46cac5(0x191)][_0x46cac5(0x203)]='5678',process[_0x46cac5(0x191)][_0x46cac5(0x1e1)]='1000000',process[_0x46cac5(0x191)][_0x46cac5(0x1dc)]='1';try{const _0x4556dc=Z['getConfig']();assertEq(_0x4556dc['authTimeoutMs'],0x4d2,_0x46cac5(0x1af)),assertEq(_0x4556dc[_0x46cac5(0x226)],0x162e,_0x46cac5(0x195)),assertEq(_0x4556dc[_0x46cac5(0x1b8)],0xf4240,_0x46cac5(0x1a6)),assertEq(_0x4556dc[_0x46cac5(0x22f)],!![],_0x46cac5(0x20b));}finally{delete process[_0x46cac5(0x191)][_0x46cac5(0x1e5)],delete process[_0x46cac5(0x191)][_0x46cac5(0x203)],delete process[_0x46cac5(0x191)][_0x46cac5(0x1e1)],delete process[_0x46cac5(0x191)]['MAILER_STRICT_TLS'];}}),test(_0x3cb773(0x1ad),()=>{const _0x5c8acd=_0x3cb773,_0xafca73=Z['getConfig']();assertEq(_0xafca73[_0x5c8acd(0x1a9)],0x2ee0,_0x5c8acd(0x1f2)),assertEq(_0xafca73[_0x5c8acd(0x226)],0xea60,_0x5c8acd(0x1bf)),assertEq(_0xafca73[_0x5c8acd(0x1b8)],0x1900000,_0x5c8acd(0x175)),assertEq(_0xafca73[_0x5c8acd(0x22f)],![],'default\x20permissive\x20tls'),assert(_0xafca73[_0x5c8acd(0x1d8)]>=0x1,_0x5c8acd(0x1ba));}),console[_0x3cb773(0x207)](_0x3cb773(0x17c)),console[_0x3cb773(0x207)](_0x3cb773(0x1e0)+testsRun+_0x3cb773(0x219)+testsFailed+_0x3cb773(0x214)+(testsRun-testsFailed)+_0x3cb773(0x18d)),testsFailed>0x0&&process['exit'](0x1);}main()[a55_0x4ebc21(0x1d5)](_0x3cf9b8=>{const _0xc694b7=a55_0x4ebc21;console[_0xc694b7(0x183)](_0xc694b7(0x233),_0x3cf9b8[_0xc694b7(0x23a)]||_0x3cf9b8),process[_0xc694b7(0x1d1)](0x1);});
@@ -1 +1 @@
1
- const a37_0x200130=a37_0xbada;(function(_0x15b953,_0x3f446e){const _0x380947=a37_0xbada,_0x14c53f=_0x15b953();while(!![]){try{const _0x1a0a53=parseInt(_0x380947(0x254))/0x1+parseInt(_0x380947(0x1ef))/0x2+-parseInt(_0x380947(0x1b9))/0x3*(-parseInt(_0x380947(0x1ea))/0x4)+parseInt(_0x380947(0x25d))/0x5+-parseInt(_0x380947(0x221))/0x6+-parseInt(_0x380947(0x1c3))/0x7*(parseInt(_0x380947(0x267))/0x8)+parseInt(_0x380947(0x22d))/0x9*(-parseInt(_0x380947(0x22f))/0xa);if(_0x1a0a53===_0x3f446e)break;else _0x14c53f['push'](_0x14c53f['shift']());}catch(_0x316e46){_0x14c53f['push'](_0x14c53f['shift']());}}}(a37_0x3de8,0x42955));const fs=require('fs'),path=require(a37_0x200130(0x23e)),dns=require('dns')[a37_0x200130(0x242)],{once}=require(a37_0x200130(0x246)),chalk=require('chalk'),{alertUser,axiosConfig,executionCompleted}=require(a37_0x200130(0x223)),{onlyPremiumLicenses}=require(a37_0x200130(0x1cf)),MX_CONCURRENCY=clampInt(process['env'][a37_0x200130(0x1f4)],0x50,0x1,0xc8),MS_CONCURRENCY=clampInt(process[a37_0x200130(0x1ee)]['SORTER_MS_CONCURRENCY'],0xc,0x1,0x32),DNS_TIMEOUT_MS=clampInt(process[a37_0x200130(0x1ee)][a37_0x200130(0x22e)],0x2710,0x3e8,0xea60),HTTP_TIMEOUT_MS=clampInt(process['env'][a37_0x200130(0x1c4)],0x3a98,0x3e8,0xea60),RETRY_PER_ITEM=clampInt(process[a37_0x200130(0x1ee)][a37_0x200130(0x20f)],0x2,0x0,0x5),RETRY_BACKOFF_MS=clampInt(process[a37_0x200130(0x1ee)][a37_0x200130(0x1dc)],0xfa,0x32,0x1388),PROGRESS_INTERVAL_MS=0x3e8,STREAM_HIGH_WATER_MARK=0x400*0x400,MX_CACHE_LIMIT=clampInt(process[a37_0x200130(0x1ee)]['SORTER_MX_CACHE_LIMIT'],0x186a0,0x3e8,0xf4240),MAX_OPEN_BUCKETS=clampInt(process[a37_0x200130(0x1ee)][a37_0x200130(0x248)],0x40,0x4,0x200),OTHER_NO_MX_BUCKET=a37_0x200130(0x20d),OTHER_UNMATCHED_MX_BUCKET=a37_0x200130(0x1b8),EMAIL_RE=/^[^\s@<>(),;:"\\[\]]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)+$/i;function clampInt(_0x16a96d,_0x111c88,_0x4ea505,_0x2def51){const _0x2d5873=a37_0x200130,_0x36090b=(function(){let _0x3ba9dc=!![];return function(_0x4b923e,_0x437a67){const _0x18fded=_0x3ba9dc?function(){const _0x477b0f=a37_0xbada;if(_0x437a67){const _0x3238ef=_0x437a67[_0x477b0f(0x258)](_0x4b923e,arguments);return _0x437a67=null,_0x3238ef;}}:function(){};return _0x3ba9dc=![],_0x18fded;};}()),_0x1153eb=_0x36090b(this,function(){const _0x456183=a37_0xbada;return _0x1153eb[_0x456183(0x1bd)]()[_0x456183(0x23a)](_0x456183(0x1bb))[_0x456183(0x1bd)]()[_0x456183(0x25c)](_0x1153eb)[_0x456183(0x23a)](_0x456183(0x1bb));});_0x1153eb();const _0xcc4e13=parseInt(_0x16a96d,0xa);if(!Number[_0x2d5873(0x259)](_0xcc4e13))return _0x111c88;return Math[_0x2d5873(0x235)](_0x4ea505,Math[_0x2d5873(0x24d)](_0x2def51,_0xcc4e13));}function timestampDir(){const _0x1ea260=a37_0x200130,_0xa54533=new Date(),_0x528aa5=_0xa54533[_0x1ea260(0x22a)]()+'_'+String(_0xa54533[_0x1ea260(0x202)]()+0x1)[_0x1ea260(0x233)](0x2,'0')+'_'+String(_0xa54533[_0x1ea260(0x1c1)]())[_0x1ea260(0x233)](0x2,'0')+'_'+Date[_0x1ea260(0x1c2)](),_0xbea381=path[_0x1ea260(0x21c)](process[_0x1ea260(0x1f0)](),(process[_0x1ea260(0x1ee)][_0x1ea260(0x255)]||'results/')+_0x1ea260(0x238)+_0x528aa5+'/');return fs[_0x1ea260(0x1fc)](_0xbea381,{'recursive':!![]}),process[_0x1ea260(0x1ee)]['sortdirname']=_0xbea381,_0xbea381;}function announceTitle(_0x3139ce){const _0x1bbc3=a37_0x200130;console[_0x1bbc3(0x1c9)](_0x1bbc3(0x1fd)+chalk[_0x1bbc3(0x1e4)](_0x3139ce)+_0x1bbc3(0x252));}function sleep(_0x286cbd){return new Promise(_0x5af585=>setTimeout(_0x5af585,_0x286cbd));}function isAsyncIterable(_0x763ed1){const _0x108a46=a37_0x200130;return _0x763ed1&&typeof _0x763ed1[Symbol['asyncIterator']]===_0x108a46(0x1f5);}function normalizeEmail(_0x205b88){const _0x5864af=a37_0x200130,_0x1418be=String(_0x205b88||'')[_0x5864af(0x1f1)]()[_0x5864af(0x21f)]();if(!_0x1418be||_0x1418be[_0x5864af(0x239)]>0xfe||!EMAIL_RE['test'](_0x1418be))return'';return _0x1418be;}function getEmailDomain(_0x11b204){const _0x346c2c=a37_0x200130,_0x3158bd=String(_0x11b204||'')[_0x346c2c(0x1ec)]('@')[_0x346c2c(0x213)]()[_0x346c2c(0x1f1)]()[_0x346c2c(0x21f)]();if(!_0x3158bd||_0x3158bd[_0x346c2c(0x1c5)]('\x20')||_0x3158bd[_0x346c2c(0x1c5)]('@'))return'';return _0x3158bd[_0x346c2c(0x1d1)](/\.$/,'');}function isNoMxDnsError(_0x2fed71){const _0xb73521=a37_0x200130;return[_0xb73521(0x1fe),'ENOTFOUND',_0xb73521(0x244),'ENONAME'][_0xb73521(0x1c5)](_0x2fed71?.[_0xb73521(0x1c0)]);}async function*cleanIterable(_0x463ff9){const _0x110449=a37_0x200130;if(!_0x463ff9)return;if(isAsyncIterable(_0x463ff9)){for await(const _0x369ccf of _0x463ff9){const _0x3109a6=normalizeEmail(_0x369ccf);if(_0x3109a6)yield _0x3109a6;}return;}for(const _0x3bbe3f of Array[_0x110449(0x227)](_0x463ff9)?_0x463ff9:[]){const _0x538a0d=normalizeEmail(_0x3bbe3f);if(_0x538a0d)yield _0x538a0d;}}async function processIterableInPool(_0x483dce,_0x126488,{concurrency:_0x425c1d,onProgress:_0x50237a}){const _0x12dced=a37_0x200130,_0x116961=new Set();let _0x3a1be6=0x0,_0x5d3f88=0x0,_0x3b23f8=0x0,_0x5f2de0=null;const _0x48059a=(_0x53a662=![])=>{const _0x39d36d=a37_0xbada,_0x9dc830=Date[_0x39d36d(0x1c2)]();if(_0x53a662||_0x9dc830-_0x3b23f8>=PROGRESS_INTERVAL_MS){_0x3b23f8=_0x9dc830;try{_0x50237a&&_0x50237a({'finished':_0x3a1be6,'inFlight':_0x5d3f88});}catch(_0x3b7953){}}};for await(const _0x425ca7 of cleanIterable(_0x483dce)){if(_0x5f2de0)break;const _0x39f204=Promise[_0x12dced(0x21c)]()[_0x12dced(0x260)](()=>_0x126488(_0x425ca7))['catch'](_0x5355df=>{if(!_0x5f2de0)_0x5f2de0=_0x5355df;})[_0x12dced(0x218)](()=>{const _0x5c5d20=_0x12dced;_0x116961[_0x5c5d20(0x23d)](_0x39f204),_0x5d3f88=_0x116961[_0x5c5d20(0x214)],_0x3a1be6++,_0x48059a();});_0x116961[_0x12dced(0x228)](_0x39f204),_0x5d3f88=_0x116961[_0x12dced(0x214)];if(_0x116961['size']>=_0x425c1d)await Promise[_0x12dced(0x1e0)](_0x116961);}await Promise[_0x12dced(0x1bc)](_0x116961),_0x48059a(!![]);if(_0x5f2de0)throw _0x5f2de0;}function sanitizeBucketName(_0x348977){const _0x5376a9=a37_0x200130,_0x93b2d8=path[_0x5376a9(0x222)](String(_0x348977||'')['trim']()),_0x142aec=_0x93b2d8[_0x5376a9(0x1d1)](/[<>:"/\\|?*\x00-\x1F]/g,'_');return _0x142aec||OTHER_UNMATCHED_MX_BUCKET;}class StreamBucketWriter{constructor(_0x65aaca){const _0x3076d0=a37_0x200130;this['rootDir']=_0x65aaca,this['streams']=new Map(),this[_0x3076d0(0x22c)]=new Map(),this[_0x3076d0(0x237)]=new Map(),this[_0x3076d0(0x249)]=![],this[_0x3076d0(0x211)]=Promise[_0x3076d0(0x21c)]();}async[a37_0x200130(0x261)](_0x166406){const _0x2b9228=a37_0x200130,_0x51fe24=this['streams']['get'](_0x166406);if(!_0x51fe24)return;if(_0x51fe24[_0x2b9228(0x1f9)])throw _0x51fe24['sorterError'];await new Promise((_0x58769e,_0x582382)=>{const _0x5504bc=_0x2b9228;_0x51fe24[_0x5504bc(0x257)]('error',_0x582382),_0x51fe24[_0x5504bc(0x25e)](_0x58769e);});if(_0x51fe24[_0x2b9228(0x1f9)])throw _0x51fe24[_0x2b9228(0x1f9)];this[_0x2b9228(0x212)][_0x2b9228(0x23d)](_0x166406),this['lastUsed']['delete'](_0x166406);}async[a37_0x200130(0x1d0)](){const _0x5c32e9=a37_0x200130;while(this['streams']['size']>=MAX_OPEN_BUCKETS){let _0x39c0c3='',_0x3b3a2d=Infinity;for(const [_0x182ab5,_0x1393e8]of this['lastUsed'][_0x5c32e9(0x251)]()){_0x1393e8<_0x3b3a2d&&(_0x39c0c3=_0x182ab5,_0x3b3a2d=_0x1393e8);}if(!_0x39c0c3)break;await this['closeStream'](_0x39c0c3);}}async[a37_0x200130(0x226)](_0x5889b6){const _0x2b6cb2=a37_0x200130;if(this[_0x2b6cb2(0x249)])throw new Error(_0x2b6cb2(0x1c6));const _0x3cfd09=sanitizeBucketName(_0x5889b6);if(this[_0x2b6cb2(0x212)][_0x2b6cb2(0x1fa)](_0x3cfd09))return this[_0x2b6cb2(0x22c)][_0x2b6cb2(0x1e6)](_0x3cfd09,Date[_0x2b6cb2(0x1c2)]()),this[_0x2b6cb2(0x212)][_0x2b6cb2(0x1de)](_0x3cfd09);await this[_0x2b6cb2(0x1d0)]();const _0xc1ebb7=path[_0x2b6cb2(0x21e)](this[_0x2b6cb2(0x1d5)],_0x3cfd09);fs[_0x2b6cb2(0x1fc)](path[_0x2b6cb2(0x1be)](_0xc1ebb7),{'recursive':!![]});const _0x3297b1=fs[_0x2b6cb2(0x225)](_0xc1ebb7,{'flags':'a','encoding':'utf8','highWaterMark':STREAM_HIGH_WATER_MARK});return _0x3297b1[_0x2b6cb2(0x25b)](0x0),_0x3297b1[_0x2b6cb2(0x1f9)]=null,_0x3297b1['on'](_0x2b6cb2(0x1f8),_0x2759c0=>{_0x3297b1['sorterError']=_0x2759c0;}),this[_0x2b6cb2(0x212)][_0x2b6cb2(0x1e6)](_0x3cfd09,_0x3297b1),this['lastUsed'][_0x2b6cb2(0x1e6)](_0x3cfd09,Date[_0x2b6cb2(0x1c2)]()),_0x3297b1;}async[a37_0x200130(0x263)](_0x286b91,_0x4ab10c){const _0xbca0fc=a37_0x200130,_0x345513=this[_0xbca0fc(0x211)][_0xbca0fc(0x260)](async()=>{const _0xec08de=_0xbca0fc,_0x54c4de=sanitizeBucketName(_0x286b91),_0x108f06=await this[_0xec08de(0x226)](_0x54c4de);if(_0x108f06[_0xec08de(0x1f9)])throw _0x108f06['sorterError'];!_0x108f06[_0xec08de(0x262)](_0x4ab10c+'\x0d\x0a','utf8')&&await Promise[_0xec08de(0x1e0)]([once(_0x108f06,_0xec08de(0x1ca)),once(_0x108f06,_0xec08de(0x1f8))[_0xec08de(0x260)](([_0x4c7077])=>{throw _0x4c7077;})]);if(_0x108f06[_0xec08de(0x1f9)])throw _0x108f06['sorterError'];this[_0xec08de(0x237)][_0xec08de(0x1e6)](_0x54c4de,(this[_0xec08de(0x237)][_0xec08de(0x1de)](_0x54c4de)||0x0)+0x1);});return this['writeChain']=_0x345513['catch'](()=>{}),_0x345513;}async[a37_0x200130(0x219)](){const _0x330964=a37_0x200130;if(this[_0x330964(0x249)])return;await this[_0x330964(0x211)],this[_0x330964(0x249)]=!![];const _0x16bfef=[];for(const _0x11517c of this['streams']['values']()){_0x16bfef['push'](new Promise((_0x2d8251,_0x2b9fb8)=>{const _0xe159be=_0x330964;if(_0x11517c['sorterError'])return _0x2b9fb8(_0x11517c[_0xe159be(0x1f9)]);_0x11517c['once']('error',_0x2b9fb8),_0x11517c['end'](_0x2d8251);}));}await Promise[_0x330964(0x1bc)](_0x16bfef);}[a37_0x200130(0x23f)](){const _0x16aa2d=a37_0x200130,_0x19b078={};for(const [_0x40bb7d,_0x6c516f]of this['totals'][_0x16aa2d(0x251)]())_0x19b078[_0x40bb7d]=_0x6c516f;return _0x19b078;}}async function withRetry(_0x2d842b,_0x4b164d=RETRY_PER_ITEM){let _0x590f4f;for(let _0x939f2=0x0;_0x939f2<=_0x4b164d;_0x939f2++){try{return await _0x2d842b(_0x939f2);}catch(_0x34c296){_0x590f4f=_0x34c296;if(_0x939f2>=_0x4b164d)break;await sleep(RETRY_BACKOFF_MS*(_0x939f2+0x1));}}throw _0x590f4f;}async function withTimeout(_0xcae538,_0x477c4e,_0xe05e1c){let _0x2f0037=null;try{return await Promise['race']([_0xcae538,new Promise((_0x131e30,_0x1f558f)=>{const _0x38ce82=a37_0xbada;_0x2f0037=setTimeout(()=>_0x1f558f(new Error(_0xe05e1c+_0x38ce82(0x1d8))),_0x477c4e);})]);}finally{if(_0x2f0037)clearTimeout(_0x2f0037);}}class MxResolver{constructor(){const _0x1ddc37=a37_0x200130;this[_0x1ddc37(0x245)]=new Map(),this[_0x1ddc37(0x1ff)]=0x0,this[_0x1ddc37(0x20b)]=0x0;}async[a37_0x200130(0x21c)](_0x420fc7){const _0x19eefb=a37_0x200130,_0x195d80=getEmailDomain(_0x420fc7);if(!_0x195d80)return[];if(this[_0x19eefb(0x245)]['has'](_0x195d80))return this[_0x19eefb(0x1ff)]++,this[_0x19eefb(0x245)][_0x19eefb(0x1de)](_0x195d80);this[_0x19eefb(0x20b)]++;const _0x1b34a9=withRetry(async()=>{const _0x34c843=_0x19eefb;let _0x1bbfab;try{_0x1bbfab=await withTimeout(dns[_0x34c843(0x24b)](_0x195d80),DNS_TIMEOUT_MS,_0x195d80);}catch(_0x335142){if(isNoMxDnsError(_0x335142))return[];throw _0x335142;}return Array[_0x34c843(0x227)](_0x1bbfab)?_0x1bbfab[_0x34c843(0x206)]((_0x1f6bcf,_0x5734d0)=>_0x1f6bcf[_0x34c843(0x203)]-_0x5734d0[_0x34c843(0x203)]):[];})[_0x19eefb(0x21b)](_0x26ea8d=>{const _0xc210af=_0x19eefb;this[_0xc210af(0x245)]['delete'](_0x195d80);throw _0x26ea8d;});this['cache']['set'](_0x195d80,_0x1b34a9);if(this[_0x19eefb(0x245)][_0x19eefb(0x214)]>MX_CACHE_LIMIT){const _0x2873c7=this[_0x19eefb(0x245)][_0x19eefb(0x25f)]()[_0x19eefb(0x1d3)]()[_0x19eefb(0x1b7)];this[_0x19eefb(0x245)][_0x19eefb(0x23d)](_0x2873c7);}return _0x1b34a9;}['stats'](){const _0x2c17f2=a37_0x200130;return{'cacheSize':this[_0x2c17f2(0x245)][_0x2c17f2(0x214)],'cacheHits':this[_0x2c17f2(0x1ff)],'cacheMisses':this['misses']};}}function compileSorterRules(_0x3a4deb={}){const _0xbc6f7c=a37_0x200130,_0x31e6ac=[];for(const [_0x33631b,_0x4af6b2]of Object[_0xbc6f7c(0x251)](_0x3a4deb||{})){const _0x3300ab=(Array['isArray'](_0x4af6b2)?_0x4af6b2:[])['map'](_0x177f65=>String(_0x177f65||'')[_0xbc6f7c(0x1f1)]()['toLowerCase']())[_0xbc6f7c(0x1e1)](Boolean);if(!_0x3300ab[_0xbc6f7c(0x239)])continue;_0x31e6ac[_0xbc6f7c(0x1e2)]({'filename':sanitizeBucketName(_0x33631b),'patterns':_0x3300ab});}return _0x31e6ac;}function makeProgressPrinter(_0x59f298){const _0x5056d4=a37_0x200130,_0x44222f=Date[_0x5056d4(0x1c2)]();let _0x5ba2fc=-0x1;return({finished:_0xd37029,inFlight:_0x344521})=>{const _0x31fbc8=_0x5056d4;if(_0xd37029===_0x5ba2fc)return;_0x5ba2fc=_0xd37029;const _0x12c4d9=Math[_0x31fbc8(0x235)](0.001,(Date[_0x31fbc8(0x1c2)]()-_0x44222f)/0x3e8),_0xad71ed=_0xd37029/_0x12c4d9;process[_0x31fbc8(0x250)][_0x31fbc8(0x262)]('\x0d'+_0x59f298+':\x20'+_0xd37029[_0x31fbc8(0x266)]()+'\x20processed\x20·\x20in-flight\x20'+_0x344521+_0x31fbc8(0x1f7)+_0xad71ed[_0x31fbc8(0x236)](0x1)+'/s\x20\x20\x20\x20\x20\x20\x20\x20');};}function matchMxBucket(_0x5891c,_0x6a24e5,_0x4215ac=OTHER_UNMATCHED_MX_BUCKET){const _0xa23410=a37_0x200130,_0xc1f57e=String(_0x5891c||'')[_0xa23410(0x21f)]();for(const _0x3609fd of _0x6a24e5){for(const _0x4bee1b of _0x3609fd[_0xa23410(0x20a)]){if(_0xc1f57e['includes'](_0x4bee1b))return _0x3609fd['filename'];}}return _0x4215ac;}async function sortByMxRulesAsync({recipients:_0x295dbc,sorterOptions:_0x142618,label:_0x16b1c2,progressLabel:_0x870cfd,folderName:_0x41b6e7,fallbackBucket:fallbackBucket=OTHER_UNMATCHED_MX_BUCKET}){const _0x208321=a37_0x200130,_0x22fc6e=timestampDir(),_0xd16210=path[_0x208321(0x21e)](_0x22fc6e,sanitizeBucketName(_0x41b6e7||_0x208321(0x1cc)));fs[_0x208321(0x1fc)](_0xd16210,{'recursive':!![]}),console['log'](chalk['dim'](_0x208321(0x256)+MX_CONCURRENCY+_0x208321(0x20c)+MX_CACHE_LIMIT[_0x208321(0x266)]()+'\x20domains'));const _0xf11d25=new StreamBucketWriter(_0xd16210);installShutdown(_0xf11d25);const _0x5865c4=new MxResolver();let _0x3b900b=0x0,_0x43c146=0x0,_0xb08faa=0x0,_0x29b4cf=0x0;const _0x4d2b43=compileSorterRules(_0x142618),_0xc635c6=async _0x1169dd=>{const _0x4698ee=_0x208321;_0x29b4cf++;let _0x3c1ae5;try{_0x3c1ae5=await _0x5865c4[_0x4698ee(0x21c)](_0x1169dd);}catch(_0x872154){await _0xf11d25[_0x4698ee(0x263)]('Unresolved.txt',_0x1169dd),_0xb08faa++;return;}if(!Array[_0x4698ee(0x227)](_0x3c1ae5)||_0x3c1ae5['length']===0x0){await _0xf11d25[_0x4698ee(0x263)](OTHER_NO_MX_BUCKET,_0x1169dd),_0x43c146++;return;}const _0x25cdfb=_0x3c1ae5[_0x4698ee(0x1d6)](_0x4cd1a6=>_0x4cd1a6?.[_0x4698ee(0x20e)])[_0x4698ee(0x1e1)](Boolean)['join']('\x20');if(!_0x25cdfb){await _0xf11d25[_0x4698ee(0x263)](OTHER_NO_MX_BUCKET,_0x1169dd),_0x43c146++;return;}_0x3b900b++,await _0xf11d25[_0x4698ee(0x263)](matchMxBucket(_0x25cdfb,_0x4d2b43,fallbackBucket),_0x1169dd);},_0x514677=makeProgressPrinter(_0x870cfd);let _0x20bf9c=null;try{await processIterableInPool(_0x295dbc,_0xc635c6,{'concurrency':MX_CONCURRENCY,'onProgress':_0x514677});}catch(_0x495420){_0x20bf9c=_0x495420;}finally{process[_0x208321(0x250)][_0x208321(0x262)]('\x0a'),await _0xf11d25[_0x208321(0x219)]();}if(_0x20bf9c)throw _0x20bf9c;sorterCompleted({'label':_0x16b1c2,'total':_0x29b4cf,'valid':_0x3b900b,'invalid':_0x43c146,'unresolved':_0xb08faa,'dirname':_0x22fc6e,'buckets':_0xf11d25[_0x208321(0x23f)](),'dns':_0x5865c4[_0x208321(0x1da)]()});}async function sortAllAsync(_0x461402,_0x5615db){const _0x29b540=a37_0x200130;return sortByMxRulesAsync({'recipients':_0x461402,'sorterOptions':_0x5615db,'label':'All\x20Domains\x20Sorter','progressLabel':_0x29b540(0x1cd),'folderName':_0x29b540(0x1cc)});}async function sortCustomAsync(_0x590209,_0x115f32){const _0x508321=a37_0x200130,_0x4be4d1=String(_0x115f32||'')['trim']()[_0x508321(0x21f)]();if(!_0x4be4d1)throw new Error(_0x508321(0x24a));const _0x5f2ca2=_0x4be4d1[_0x508321(0x1d1)](/[^a-z0-9.-]+/gi,'_')['replace'](/\.+$/,'');return sortByMxRulesAsync({'recipients':_0x590209,'sorterOptions':{[(_0x5f2ca2||_0x508321(0x21a))+_0x508321(0x1d4)]:[_0x4be4d1]},'label':_0x508321(0x1d9)+_0x4be4d1+')','progressLabel':_0x508321(0x1ed),'folderName':_0x508321(0x205),'fallbackBucket':OTHER_UNMATCHED_MX_BUCKET});}async function sortTurbifyAsync(_0x1c31e1){const _0x36ce04=a37_0x200130;return sortByMxRulesAsync({'recipients':_0x1c31e1,'sorterOptions':{'Turbify.txt':[_0x36ce04(0x21d),'turbify.com',_0x36ce04(0x224)]},'label':'Turbify/Yahoo\x20Business\x20Sorter','progressLabel':'Sorting\x20(Turbify)','folderName':_0x36ce04(0x24c),'fallbackBucket':OTHER_UNMATCHED_MX_BUCKET});}async function sortMicrosoftAsync(_0x3a0d72){const _0x4cf139=a37_0x200130,_0x358df4=axiosConfig(),_0x3a97cd=timestampDir(),_0x20f5d7=path['join'](_0x3a97cd,_0x4cf139(0x1e3));fs[_0x4cf139(0x1fc)](_0x20f5d7,{'recursive':!![]}),console['log'](chalk['dim'](_0x4cf139(0x1d2)+MS_CONCURRENCY));const _0x4a21f7=new StreamBucketWriter(_0x20f5d7);installShutdown(_0x4a21f7);const _0x4dca7c=_0x4cf139(0x1e7);let _0x123d4d=0x0,_0x948f72=0x0,_0x5cd509=0x0,_0x30c5a2=0x0;const _0x496fb5=async _0x3d856d=>{const _0x30c237=_0x4cf139;_0x30c5a2++;let _0x4467f2;try{const _0x15df1f={'Username':_0x3d856d},_0x401abf=await withRetry(()=>_0x358df4['post'](_0x4dca7c,_0x15df1f,{'timeout':HTTP_TIMEOUT_MS,'headers':{'Content-Type':_0x30c237(0x1ce)}}));_0x4467f2=_0x401abf?.['data']||{};}catch(_0x1ef50b){_0x5cd509++,await _0x4a21f7[_0x30c237(0x263)](_0x30c237(0x1e8),_0x3d856d);return;}const _0x146c56=_0x4467f2[_0x30c237(0x265)],_0x4dc55a=_0x4467f2['Username']||_0x3d856d,_0x42ef74=_0x4467f2?.[_0x30c237(0x25a)]?.[_0x30c237(0x209)]||'',_0xdf4fac=_0x146c56===0x0||_0x146c56===0x5||_0x146c56===0x6,_0x4226cb=_0x146c56===0x1;if(_0xdf4fac){_0x123d4d++;if(_0x42ef74){const _0x4d1a9e=_0x42ef74[_0x30c237(0x21f)]();if(_0x4d1a9e['includes'](_0x30c237(0x207))||_0x4d1a9e[_0x30c237(0x1c5)](_0x30c237(0x240)))await _0x4a21f7[_0x30c237(0x263)](_0x30c237(0x1c8),_0x4dc55a);else{if(_0x4d1a9e[_0x30c237(0x1c5)](_0x30c237(0x1dd)))await _0x4a21f7[_0x30c237(0x263)]('Office365_Okta.txt',_0x4dc55a);else{if(_0x4d1a9e[_0x30c237(0x1c5)](_0x30c237(0x24f)))await _0x4a21f7[_0x30c237(0x263)](_0x30c237(0x234),_0x4dc55a);else{if(_0x4d1a9e[_0x30c237(0x1c5)](_0x30c237(0x230))||_0x4d1a9e[_0x30c237(0x1c5)]('sso.secureserver'))await _0x4a21f7[_0x30c237(0x263)](_0x30c237(0x204),_0x4dc55a);else{if(_0x4d1a9e['includes']('google.com'))await _0x4a21f7[_0x30c237(0x263)](_0x30c237(0x1c7),_0x4dc55a);else _0x4d1a9e[_0x30c237(0x1c5)](_0x30c237(0x23b))?await _0x4a21f7[_0x30c237(0x263)](_0x30c237(0x1bf),_0x4dc55a):await _0x4a21f7[_0x30c237(0x263)]('Office365_Federal.txt',_0x4dc55a);}}}}}else await _0x4a21f7[_0x30c237(0x263)](_0x30c237(0x229),_0x4dc55a);}else _0x4226cb?(_0x948f72++,await _0x4a21f7[_0x30c237(0x263)](_0x30c237(0x220),_0x4dc55a)):(_0x5cd509++,await _0x4a21f7[_0x30c237(0x263)](_0x30c237(0x208),_0x4dc55a));},_0x5dda75=makeProgressPrinter(_0x4cf139(0x243));let _0x295b23=null;try{await processIterableInPool(_0x3a0d72,_0x496fb5,{'concurrency':MS_CONCURRENCY,'onProgress':_0x5dda75});}catch(_0x4a4eaa){_0x295b23=_0x4a4eaa;}finally{process['stdout'][_0x4cf139(0x262)]('\x0a'),await _0x4a21f7[_0x4cf139(0x219)]();}if(_0x295b23)throw _0x295b23;sorterCompleted({'label':_0x4cf139(0x1d7),'total':_0x30c5a2,'valid':_0x123d4d,'invalid':_0x948f72,'unresolved':_0x5cd509,'dirname':_0x3a97cd,'buckets':_0x4a21f7[_0x4cf139(0x23f)]()});}let SHUTDOWN_INSTALLED=![];function installShutdown(_0x38fe76){const _0x400195=a37_0x200130;if(SHUTDOWN_INSTALLED)return;SHUTDOWN_INSTALLED=!![];const _0x50945c=async _0x29d787=>{const _0x263f31=a37_0xbada;try{process[_0x263f31(0x250)]['write']('\x0a'+chalk[_0x263f31(0x253)]('⚠\x20caught\x20'+_0x29d787+_0x263f31(0x1db))+'\x0a'),await _0x38fe76[_0x263f31(0x219)]();}catch(_0x136b8c){}process[_0x263f31(0x1fb)](0x0);};process['once']('SIGINT',()=>_0x50945c(_0x400195(0x22b))),process['once'](_0x400195(0x215),()=>_0x50945c(_0x400195(0x215)));}function sorterCompleted({label:_0x26174d,total:_0x2edb7c,valid:_0x35d2b6,invalid:_0x37909b,unresolved:_0x2c3fbb,dirname:_0x1621e6,buckets:buckets={},dns:dns=null}){const _0x2be0eb=a37_0x200130,_0x141c95={'label':_0x26174d,'completed_at':new Date()[_0x2be0eb(0x24e)](),'total':_0x2edb7c,'valid':_0x35d2b6,'invalid':_0x37909b,'unresolved':_0x2c3fbb,'output_dir':_0x1621e6,'buckets':buckets,...dns?{'dns':dns}:{}};try{fs[_0x2be0eb(0x1cb)](path['join'](_0x1621e6,_0x2be0eb(0x1f3)),JSON[_0x2be0eb(0x201)](_0x141c95,null,0x2)+'\x0a',_0x2be0eb(0x1e5));}catch(_0x2c5b2d){}executionCompleted(),console['log']('\x0a'+chalk['bold'](_0x26174d)+_0x2be0eb(0x23c)),console[_0x2be0eb(0x1c9)](_0x2be0eb(0x247)+_0x2edb7c[_0x2be0eb(0x266)]()),console['log']('·\x20Valid\x20\x20\x20\x20\x20\x20:\x20'+_0x35d2b6[_0x2be0eb(0x266)]()),console[_0x2be0eb(0x1c9)](_0x2be0eb(0x231)+_0x37909b[_0x2be0eb(0x266)]()),console[_0x2be0eb(0x1c9)](_0x2be0eb(0x216)+_0x2c3fbb[_0x2be0eb(0x266)]()),console[_0x2be0eb(0x1c9)](_0x2be0eb(0x232)+_0x1621e6);const _0x2e571e=Object[_0x2be0eb(0x25f)](buckets)['sort']();if(_0x2e571e['length']){console[_0x2be0eb(0x1c9)]('\x0a'+chalk['dim']('Buckets:'));for(const _0x467863 of _0x2e571e){console[_0x2be0eb(0x1c9)]('\x20\x20'+_0x467863+':\x20'+buckets[_0x467863][_0x2be0eb(0x266)]());}}dns&&console[_0x2be0eb(0x1c9)](_0x2be0eb(0x1e9)+dns['cacheHits'][_0x2be0eb(0x266)]()+'\x20hits\x20/\x20'+dns['cacheMisses'][_0x2be0eb(0x266)]()+_0x2be0eb(0x264)),console[_0x2be0eb(0x1c9)](_0x2be0eb(0x1df)),alertUser(),process[_0x2be0eb(0x1fb)](0x0);}function sortAll(_0x2c37f4,_0x360230){const _0x252112=a37_0x200130;announceTitle(_0x252112(0x1ba));try{return onlyPremiumLicenses(),sortAllAsync(_0x2c37f4,_0x360230)['catch'](_0x4496ec=>{const _0x279bf0=_0x252112;console[_0x279bf0(0x1f8)](chalk['red'](_0x4496ec?.[_0x279bf0(0x200)]||_0x4496ec)),process[_0x279bf0(0x1fb)](0x1);});}catch(_0x8df5da){console[_0x252112(0x1c9)](_0x252112(0x1df)),console[_0x252112(0x1f8)](_0x8df5da?.[_0x252112(0x200)]||_0x8df5da),process[_0x252112(0x1fb)](0x1);}}function sortMicrosoft(_0x31336f){const _0x3ad207=a37_0x200130;announceTitle(_0x3ad207(0x1d7));try{return onlyPremiumLicenses(),sortMicrosoftAsync(_0x31336f)['catch'](_0x22cd9d=>{const _0x110b91=_0x3ad207;console[_0x110b91(0x1f8)](chalk['red'](_0x22cd9d?.[_0x110b91(0x200)]||_0x22cd9d)),process[_0x110b91(0x1fb)](0x1);});}catch(_0xefc63d){console[_0x3ad207(0x1c9)]('\x0aNB:\x20Sort\x20only\x20opted-in\x20or\x20authorized\x20address\x20lists\x20and\x20respect\x20provider\x20limits.'),console['error'](_0xefc63d?.[_0x3ad207(0x200)]||_0xefc63d),process[_0x3ad207(0x1fb)](0x1);}}function sortCustom(_0x335a29,_0x2e2579){const _0x101ace=a37_0x200130;announceTitle(_0x101ace(0x1d9)+_0x2e2579+')');try{return onlyPremiumLicenses(),sortCustomAsync(_0x335a29,_0x2e2579)[_0x101ace(0x21b)](_0x2914da=>{const _0x55a8a6=_0x101ace;console[_0x55a8a6(0x1f8)](chalk['red'](_0x2914da?.[_0x55a8a6(0x200)]||_0x2914da)),process[_0x55a8a6(0x1fb)](0x1);});}catch(_0x3af73b){console[_0x101ace(0x1c9)]('\x0aNB:\x20Sort\x20only\x20opted-in\x20or\x20authorized\x20address\x20lists\x20and\x20respect\x20provider\x20limits.'),console['error'](_0x3af73b?.[_0x101ace(0x200)]||_0x3af73b),process['exit'](0x1);}}function sortTurbify(_0x249ea0){const _0x2096e6=a37_0x200130;announceTitle(_0x2096e6(0x1f2));try{return onlyPremiumLicenses(),sortTurbifyAsync(_0x249ea0)['catch'](_0x41ef62=>{const _0x1e36ce=_0x2096e6;console[_0x1e36ce(0x1f8)](chalk[_0x1e36ce(0x210)](_0x41ef62?.['message']||_0x41ef62)),process['exit'](0x1);});}catch(_0x45ddb1){console[_0x2096e6(0x1c9)](_0x2096e6(0x1df)),console['error'](_0x45ddb1?.[_0x2096e6(0x200)]||_0x45ddb1),process['exit'](0x1);}}function a37_0xbada(_0x5b8f8b,_0x4ae130){const _0x576cde=a37_0x3de8();return a37_0xbada=function(_0x11ba70,_0xd4c582){_0x11ba70=_0x11ba70-0x1b7;let _0x3de876=_0x576cde[_0x11ba70];return _0x3de876;},a37_0xbada(_0x5b8f8b,_0x4ae130);}function a37_0x3de8(){const _0x5d1ff2=['yellow','252404HemNwa','RESULTS_DIR','·\x20input:\x20streaming\x20\x20·\x20mx\x20concurrency:\x20','once','apply','isFinite','Credentials','setMaxListeners','constructor','82015DOpUFH','end','keys','then','closeStream','write','append','\x20misses','IfExistsResult','toLocaleString','56HJFktp','value','OthersMX.txt','689043yjcUWp','All\x20Domains\x20Sorter','(((.+)+)+)+$','all','toString','dirname','Office365_Wsfed.txt','code','getDate','now','142457NFpkBe','SORTER_HTTP_TIMEOUT_MS','includes','Sorter\x20writer\x20is\x20already\x20closed','Office365_Google.txt','Office365_Adfs.txt','log','drain','writeFileSync','All','Sorting\x20(All)','application/json','../../utils/validation','trimOpenStreams','replace','·\x20input:\x20streaming\x20\x20·\x20microsoft\x20concurrency:\x20','next','.txt','rootDir','map','Microsoft\x20(Office\x20365)\x20Sorter','\x20timed\x20out','Custom\x20Sorter\x20(','stats',',\x20flushing\x20buckets…','SORTER_RETRY_BACKOFF_MS','okta.','get','\x0aNB:\x20Sort\x20only\x20opted-in\x20or\x20authorized\x20address\x20lists\x20and\x20respect\x20provider\x20limits.','race','filter','push','Office','yellowBright','utf8','set','https://login.microsoftonline.com/common/GetCredentialType','Office365_Unresolved.txt','·\x20DNS\x20cache\x20\x20:\x20','4SSkDCE','\x0aTotal\x20providers:\x20','split','Sorting\x20(Custom)','env','579614xBhSVM','cwd','trim','Turbify/Yahoo\x20Business\x20Sorter','summary.json','SORTER_MX_CONCURRENCY','function','bold','\x20·\x20','error','sorterError','has','exit','mkdirSync','Sorting\x20emails\x20for...\x20[\x20','ENODATA','hits','message','stringify','getMonth','priority','Office365_Godaddy.txt','Custom','sort','adfs.','Office365_Unknown.txt','FederationRedirectUrl','patterns','misses','\x20\x20·\x20mx\x20cache:\x20','otherNoMX.txt','exchange','SORTER_RETRIES','red','writeChain','streams','pop','size','SIGTERM','·\x20Unresolved\x20:\x20','filename','finally','close','custom','catch','resolve','yahoodns.net','join','toLowerCase','Office365_Invalids.txt','84846znAriW','basename','../../functions/globals','mx-biz.mail.am0.yahoodns.net','createWriteStream','streamFor','isArray','add','Office365.txt','getFullYear','SIGINT','lastUsed','18EhwQVw','SORTER_DNS_TIMEOUT_MS','1794860cghyeu','sso.godaddy','·\x20Invalid\x20\x20\x20\x20:\x20','·\x20Output\x20dir\x20:\x20','padStart','Office365_Idp.txt','max','toFixed','totals','sorted/','length','search','wsfed','\x20done','delete','path','summary','/adfs','\x0aConfigured\x20sorter\x20providers\x0a','promises','Sorting\x20(Microsoft)','ENODOMAIN','cache','events','·\x20Total\x20\x20\x20\x20\x20\x20:\x20','SORTER_MAX_OPEN_BUCKETS','closed','Custom\x20sorter\x20requires\x20a\x20domain\x20or\x20MX\x20pattern','resolveMx','Turbify','min','toISOString','/idp/','stdout','entries','\x20]\x0a'];a37_0x3de8=function(){return _0x5d1ff2;};return a37_0x3de8();}function listProviders(_0xeb2de5={}){const _0x212061=a37_0x200130,_0x4a6b42=compileSorterRules(_0xeb2de5);console[_0x212061(0x1c9)](chalk[_0x212061(0x1f6)](_0x212061(0x241)));for(const _0x449f8e of _0x4a6b42){console[_0x212061(0x1c9)](_0x449f8e[_0x212061(0x217)]+':\x20'+_0x449f8e['patterns'][_0x212061(0x21e)](',\x20'));}console[_0x212061(0x1c9)](_0x212061(0x1eb)+_0x4a6b42[_0x212061(0x239)][_0x212061(0x266)]()+'\x0a'),alertUser(),process[_0x212061(0x1fb)](0x0);}module['exports']={'listProviders':listProviders,'sortAll':sortAll,'sortCustom':sortCustom,'sortMicrosoft':sortMicrosoft,'sortTurbify':sortTurbify};
1
+ const a56_0x455b7a=a56_0x5630;(function(_0x2dbee6,_0x129fc8){const _0x1e00e5=a56_0x5630,_0x1c9b58=_0x2dbee6();while(!![]){try{const _0x37be68=parseInt(_0x1e00e5(0x279))/0x1+parseInt(_0x1e00e5(0x29f))/0x2+-parseInt(_0x1e00e5(0x237))/0x3*(-parseInt(_0x1e00e5(0x211))/0x4)+parseInt(_0x1e00e5(0x278))/0x5+-parseInt(_0x1e00e5(0x242))/0x6*(parseInt(_0x1e00e5(0x27a))/0x7)+-parseInt(_0x1e00e5(0x288))/0x8*(parseInt(_0x1e00e5(0x210))/0x9)+-parseInt(_0x1e00e5(0x256))/0xa;if(_0x37be68===_0x129fc8)break;else _0x1c9b58['push'](_0x1c9b58['shift']());}catch(_0x3def49){_0x1c9b58['push'](_0x1c9b58['shift']());}}}(a56_0x498c,0x7a70c));const fs=require('fs'),path=require(a56_0x455b7a(0x25d)),dns=require('dns')['promises'],{once}=require(a56_0x455b7a(0x254)),chalk=require(a56_0x455b7a(0x225)),{alertUser,axiosConfig,executionCompleted}=require(a56_0x455b7a(0x269)),{onlyPremiumLicenses}=require(a56_0x455b7a(0x25a)),MX_CONCURRENCY=clampInt(process[a56_0x455b7a(0x28e)][a56_0x455b7a(0x275)],0x50,0x1,0xc8),MS_CONCURRENCY=clampInt(process[a56_0x455b7a(0x28e)][a56_0x455b7a(0x260)],0xc,0x1,0x32),DNS_TIMEOUT_MS=clampInt(process['env'][a56_0x455b7a(0x204)],0x2710,0x3e8,0xea60),HTTP_TIMEOUT_MS=clampInt(process[a56_0x455b7a(0x28e)]['SORTER_HTTP_TIMEOUT_MS'],0x3a98,0x3e8,0xea60),RETRY_PER_ITEM=clampInt(process['env'][a56_0x455b7a(0x294)],0x2,0x0,0x5),RETRY_BACKOFF_MS=clampInt(process['env']['SORTER_RETRY_BACKOFF_MS'],0xfa,0x32,0x1388),PROGRESS_INTERVAL_MS=0x3e8,STREAM_HIGH_WATER_MARK=0x400*0x400,MX_CACHE_LIMIT=clampInt(process[a56_0x455b7a(0x28e)][a56_0x455b7a(0x1f9)],0x186a0,0x3e8,0xf4240),MAX_OPEN_BUCKETS=clampInt(process[a56_0x455b7a(0x28e)][a56_0x455b7a(0x267)],0x40,0x4,0x200),OTHER_NO_MX_BUCKET=a56_0x455b7a(0x253),OTHER_UNMATCHED_MX_BUCKET='OthersMX.txt',EMAIL_RE=/^[^\s@<>(),;:"\\[\]]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)+$/i;function clampInt(_0x1f9fe3,_0x44c2f6,_0x32b4a1,_0x40f6f3){const _0x4879b9=a56_0x455b7a,_0x2e680e=(function(){let _0x22720=!![];return function(_0x306c67,_0x3be33a){const _0x1ba91e=_0x22720?function(){if(_0x3be33a){const _0x209f89=_0x3be33a['apply'](_0x306c67,arguments);return _0x3be33a=null,_0x209f89;}}:function(){};return _0x22720=![],_0x1ba91e;};}()),_0x393955=_0x2e680e(this,function(){const _0x3cd94c=a56_0x5630;return _0x393955[_0x3cd94c(0x217)]()[_0x3cd94c(0x25c)](_0x3cd94c(0x264))[_0x3cd94c(0x217)]()[_0x3cd94c(0x247)](_0x393955)['search'](_0x3cd94c(0x264));});_0x393955();const _0x5cda8=parseInt(_0x1f9fe3,0xa);if(!Number[_0x4879b9(0x292)](_0x5cda8))return _0x44c2f6;return Math[_0x4879b9(0x273)](_0x32b4a1,Math[_0x4879b9(0x1ff)](_0x40f6f3,_0x5cda8));}function timestampDir(){const _0x16040f=a56_0x455b7a,_0x4ded8c=new Date(),_0x1b7a58=_0x4ded8c['getFullYear']()+'_'+String(_0x4ded8c[_0x16040f(0x23a)]()+0x1)[_0x16040f(0x262)](0x2,'0')+'_'+String(_0x4ded8c['getDate']())[_0x16040f(0x262)](0x2,'0')+'_'+Date[_0x16040f(0x245)](),_0x5d4f47=path[_0x16040f(0x296)](process['cwd'](),(process['env'][_0x16040f(0x1fe)]||_0x16040f(0x27b))+_0x16040f(0x21c)+_0x1b7a58+'/');return fs[_0x16040f(0x232)](_0x5d4f47,{'recursive':!![]}),process['env']['sortdirname']=_0x5d4f47,_0x5d4f47;}function announceTitle(_0x357099){const _0x5bbd2e=a56_0x455b7a;console[_0x5bbd2e(0x21f)](_0x5bbd2e(0x220)+chalk[_0x5bbd2e(0x22d)](_0x357099)+_0x5bbd2e(0x293));}function a56_0x498c(){const _0x30e01c=['length','chalk','/s\x20\x20\x20\x20\x20\x20\x20\x20','basename','turbify.com','Office365_Wsfed.txt','exit','sso.secureserver','filter','yellowBright','mx-biz.mail.am0.yahoodns.net','\x20done','drain','has','mkdirSync','·\x20Total\x20\x20\x20\x20\x20\x20:\x20','exchange','stdout','pop','2505rRQWbR','writeChain','createWriteStream','getMonth','patterns','summary','hits','cache','closed','/adfs','Sorting\x20(Microsoft)','6MOlzCh','sort','stats','now','Turbify/Yahoo\x20Business\x20Sorter','constructor','\x20domains','\x20processed\x20·\x20in-flight\x20','misses','set','isArray','append','\x0aTotal\x20providers:\x20','Turbify','race','Office365_Federal.txt','then','otherNoMX.txt','events','closeStream','18105380ItqUry','sso.godaddy','\x20hits\x20/\x20','test','../../utils/validation','push','search','path','join','error','SORTER_MS_CONCURRENCY','asyncIterator','padStart','next','(((.+)+)+)+$','Sorting\x20(Turbify)','once','SORTER_MAX_OPEN_BUCKETS','Credentials','../../functions/globals','Office','Office365_Godaddy.txt','ENODATA','adfs.','·\x20input:\x20streaming\x20\x20·\x20mx\x20concurrency:\x20','Office365_Google.txt','message','·\x20Valid\x20\x20\x20\x20\x20\x20:\x20','exports','max','\x20misses','SORTER_MX_CONCURRENCY','data','Microsoft\x20(Office\x20365)\x20Sorter','3881815yQQLkY','872522rbEVlm','1744477eNbuin','results/','Custom\x20Sorter\x20(','\x0aConfigured\x20sorter\x20providers\x0a','dim','red','end','application/json','Buckets:','rootDir','\x0aNB:\x20Sort\x20only\x20opted-in\x20or\x20authorized\x20address\x20lists\x20and\x20respect\x20provider\x20limits.','totals','streams','catch','8gdVlNw','All\x20Domains\x20Sorter','Sorter\x20writer\x20is\x20already\x20closed','trim','custom','/idp/','env','map','lastUsed','all','isFinite','\x20]\x0a','SORTER_RETRIES','bold','resolve','toISOString','·\x20Unresolved\x20:\x20','value','get','trimOpenStreams','close','ENONAME','cacheHits','792568vYWnXm','filename','Unresolved.txt','\x20timed\x20out','Office365_Idp.txt','setMaxListeners','keys','write','toFixed','Office365_Adfs.txt','All','https://login.microsoftonline.com/common/GetCredentialType','\x20·\x20','replace','summary.json','values','SORTER_MX_CACHE_LIMIT','yahoodns.net','·\x20DNS\x20cache\x20\x20:\x20','toLocaleString','okta.','RESULTS_DIR','min','includes','streamFor','dirname','cacheMisses','SORTER_DNS_TIMEOUT_MS','·\x20input:\x20streaming\x20\x20·\x20microsoft\x20concurrency:\x20','Office365_Unknown.txt','Sorting\x20(All)','size','delete','Office365.txt','SIGINT','⚠\x20caught\x20','priority','utf8','·\x20Output\x20dir\x20:\x20','1164231ZUzZqM','3092vWtolp','SIGTERM','function','entries','toLowerCase','·\x20Invalid\x20\x20\x20\x20:\x20','toString','yellow','finally','stringify','ENOTFOUND','sorted/','post','add','log','Sorting\x20emails\x20for...\x20[\x20','sorterError','Username','Office365_Invalids.txt'];a56_0x498c=function(){return _0x30e01c;};return a56_0x498c();}function sleep(_0x7e11f3){return new Promise(_0x1bd715=>setTimeout(_0x1bd715,_0x7e11f3));}function isAsyncIterable(_0x30dc4b){const _0x372c6a=a56_0x455b7a;return _0x30dc4b&&typeof _0x30dc4b[Symbol[_0x372c6a(0x261)]]===_0x372c6a(0x213);}function normalizeEmail(_0x23bdcc){const _0x2e1f49=a56_0x455b7a,_0x18e988=String(_0x23bdcc||'')[_0x2e1f49(0x28b)]()[_0x2e1f49(0x215)]();if(!_0x18e988||_0x18e988['length']>0xfe||!EMAIL_RE[_0x2e1f49(0x259)](_0x18e988))return'';return _0x18e988;}function a56_0x5630(_0x1e1ad2,_0x1149d6){const _0xba00fc=a56_0x498c();return a56_0x5630=function(_0x3beec7,_0x1d5b2b){_0x3beec7=_0x3beec7-0x1f2;let _0x498c90=_0xba00fc[_0x3beec7];return _0x498c90;},a56_0x5630(_0x1e1ad2,_0x1149d6);}function getEmailDomain(_0x186fdf){const _0x16a8da=a56_0x455b7a,_0x235928=String(_0x186fdf||'')['split']('@')[_0x16a8da(0x236)]()[_0x16a8da(0x28b)]()['toLowerCase']();if(!_0x235928||_0x235928[_0x16a8da(0x200)]('\x20')||_0x235928[_0x16a8da(0x200)]('@'))return'';return _0x235928[_0x16a8da(0x1f6)](/\.$/,'');}function isNoMxDnsError(_0x488819){const _0x253e10=a56_0x455b7a;return[_0x253e10(0x26c),_0x253e10(0x21b),'ENODOMAIN',_0x253e10(0x29d)][_0x253e10(0x200)](_0x488819?.['code']);}async function*cleanIterable(_0x44cee9){const _0x1a2a23=a56_0x455b7a;if(!_0x44cee9)return;if(isAsyncIterable(_0x44cee9)){for await(const _0x10898f of _0x44cee9){const _0x3dd983=normalizeEmail(_0x10898f);if(_0x3dd983)yield _0x3dd983;}return;}for(const _0x605af4 of Array[_0x1a2a23(0x24c)](_0x44cee9)?_0x44cee9:[]){const _0x13b479=normalizeEmail(_0x605af4);if(_0x13b479)yield _0x13b479;}}async function processIterableInPool(_0x39a613,_0x25aa13,{concurrency:_0x56b1af,onProgress:_0x4b5be4}){const _0x37ee15=a56_0x455b7a,_0x1d0f86=new Set();let _0x492275=0x0,_0x383d00=0x0,_0x28d261=0x0,_0xe3dd65=null;const _0x22a2d5=(_0x38053f=![])=>{const _0x3aefed=a56_0x5630,_0x19014e=Date[_0x3aefed(0x245)]();if(_0x38053f||_0x19014e-_0x28d261>=PROGRESS_INTERVAL_MS){_0x28d261=_0x19014e;try{_0x4b5be4&&_0x4b5be4({'finished':_0x492275,'inFlight':_0x383d00});}catch(_0x55e065){}}};for await(const _0x52a675 of cleanIterable(_0x39a613)){if(_0xe3dd65)break;const _0x54a867=Promise[_0x37ee15(0x296)]()[_0x37ee15(0x252)](()=>_0x25aa13(_0x52a675))[_0x37ee15(0x287)](_0x1ad595=>{if(!_0xe3dd65)_0xe3dd65=_0x1ad595;})[_0x37ee15(0x219)](()=>{const _0x4f02d7=_0x37ee15;_0x1d0f86[_0x4f02d7(0x209)](_0x54a867),_0x383d00=_0x1d0f86[_0x4f02d7(0x208)],_0x492275++,_0x22a2d5();});_0x1d0f86[_0x37ee15(0x21e)](_0x54a867),_0x383d00=_0x1d0f86['size'];if(_0x1d0f86[_0x37ee15(0x208)]>=_0x56b1af)await Promise[_0x37ee15(0x250)](_0x1d0f86);}await Promise['all'](_0x1d0f86),_0x22a2d5(!![]);if(_0xe3dd65)throw _0xe3dd65;}function sanitizeBucketName(_0x907218){const _0x2d3660=a56_0x455b7a,_0x5495a6=path[_0x2d3660(0x227)](String(_0x907218||'')[_0x2d3660(0x28b)]()),_0x63f8b6=_0x5495a6[_0x2d3660(0x1f6)](/[<>:"/\\|?*\x00-\x1F]/g,'_');return _0x63f8b6||OTHER_UNMATCHED_MX_BUCKET;}class StreamBucketWriter{constructor(_0x5ef03b){const _0x2172b9=a56_0x455b7a;this[_0x2172b9(0x283)]=_0x5ef03b,this[_0x2172b9(0x286)]=new Map(),this[_0x2172b9(0x290)]=new Map(),this['totals']=new Map(),this[_0x2172b9(0x23f)]=![],this[_0x2172b9(0x238)]=Promise[_0x2172b9(0x296)]();}async[a56_0x455b7a(0x255)](_0x5caa4b){const _0x4346e2=a56_0x455b7a,_0x5c7e11=this[_0x4346e2(0x286)]['get'](_0x5caa4b);if(!_0x5c7e11)return;if(_0x5c7e11['sorterError'])throw _0x5c7e11[_0x4346e2(0x221)];await new Promise((_0x3761c4,_0x3e2ef0)=>{const _0x4bcda4=_0x4346e2;_0x5c7e11[_0x4bcda4(0x266)](_0x4bcda4(0x25f),_0x3e2ef0),_0x5c7e11[_0x4bcda4(0x280)](_0x3761c4);});if(_0x5c7e11[_0x4346e2(0x221)])throw _0x5c7e11[_0x4346e2(0x221)];this[_0x4346e2(0x286)][_0x4346e2(0x209)](_0x5caa4b),this['lastUsed'][_0x4346e2(0x209)](_0x5caa4b);}async[a56_0x455b7a(0x29b)](){const _0x51be34=a56_0x455b7a;while(this[_0x51be34(0x286)][_0x51be34(0x208)]>=MAX_OPEN_BUCKETS){let _0x5e6c50='',_0x16ac69=Infinity;for(const [_0x599783,_0x228c0e]of this['lastUsed'][_0x51be34(0x214)]()){_0x228c0e<_0x16ac69&&(_0x5e6c50=_0x599783,_0x16ac69=_0x228c0e);}if(!_0x5e6c50)break;await this['closeStream'](_0x5e6c50);}}async[a56_0x455b7a(0x201)](_0x56b283){const _0x4b92d2=a56_0x455b7a;if(this[_0x4b92d2(0x23f)])throw new Error(_0x4b92d2(0x28a));const _0x165feb=sanitizeBucketName(_0x56b283);if(this['streams'][_0x4b92d2(0x231)](_0x165feb))return this[_0x4b92d2(0x290)]['set'](_0x165feb,Date[_0x4b92d2(0x245)]()),this[_0x4b92d2(0x286)][_0x4b92d2(0x29a)](_0x165feb);await this['trimOpenStreams']();const _0x143024=path[_0x4b92d2(0x25e)](this[_0x4b92d2(0x283)],_0x165feb);fs[_0x4b92d2(0x232)](path[_0x4b92d2(0x202)](_0x143024),{'recursive':!![]});const _0x52653=fs[_0x4b92d2(0x239)](_0x143024,{'flags':'a','encoding':_0x4b92d2(0x20e),'highWaterMark':STREAM_HIGH_WATER_MARK});return _0x52653[_0x4b92d2(0x2a4)](0x0),_0x52653[_0x4b92d2(0x221)]=null,_0x52653['on'](_0x4b92d2(0x25f),_0x17cc10=>{const _0x3bfdb7=_0x4b92d2;_0x52653[_0x3bfdb7(0x221)]=_0x17cc10;}),this[_0x4b92d2(0x286)][_0x4b92d2(0x24b)](_0x165feb,_0x52653),this[_0x4b92d2(0x290)][_0x4b92d2(0x24b)](_0x165feb,Date['now']()),_0x52653;}async[a56_0x455b7a(0x24d)](_0x2b31c6,_0x447543){const _0x195e8f=a56_0x455b7a,_0x59bc5c=this[_0x195e8f(0x238)][_0x195e8f(0x252)](async()=>{const _0x559cb9=_0x195e8f,_0x362f4b=sanitizeBucketName(_0x2b31c6),_0x4f38e7=await this[_0x559cb9(0x201)](_0x362f4b);if(_0x4f38e7[_0x559cb9(0x221)])throw _0x4f38e7[_0x559cb9(0x221)];!_0x4f38e7[_0x559cb9(0x2a6)](_0x447543+'\x0d\x0a',_0x559cb9(0x20e))&&await Promise['race']([once(_0x4f38e7,_0x559cb9(0x230)),once(_0x4f38e7,_0x559cb9(0x25f))[_0x559cb9(0x252)](([_0x44b19c])=>{throw _0x44b19c;})]);if(_0x4f38e7[_0x559cb9(0x221)])throw _0x4f38e7['sorterError'];this[_0x559cb9(0x285)]['set'](_0x362f4b,(this[_0x559cb9(0x285)]['get'](_0x362f4b)||0x0)+0x1);});return this[_0x195e8f(0x238)]=_0x59bc5c[_0x195e8f(0x287)](()=>{}),_0x59bc5c;}async['close'](){const _0x21e7e9=a56_0x455b7a;if(this[_0x21e7e9(0x23f)])return;await this['writeChain'],this[_0x21e7e9(0x23f)]=!![];const _0x571520=[];for(const _0x30ec71 of this[_0x21e7e9(0x286)][_0x21e7e9(0x1f8)]()){_0x571520[_0x21e7e9(0x25b)](new Promise((_0x4c5149,_0x5019d5)=>{const _0xfefa29=_0x21e7e9;if(_0x30ec71['sorterError'])return _0x5019d5(_0x30ec71['sorterError']);_0x30ec71[_0xfefa29(0x266)]('error',_0x5019d5),_0x30ec71[_0xfefa29(0x280)](_0x4c5149);}));}await Promise[_0x21e7e9(0x291)](_0x571520);}[a56_0x455b7a(0x23c)](){const _0x136c0e={};for(const [_0x3d9f18,_0x41b60e]of this['totals']['entries']())_0x136c0e[_0x3d9f18]=_0x41b60e;return _0x136c0e;}}async function withRetry(_0x76e9fb,_0x4aa1f9=RETRY_PER_ITEM){let _0x3d7ded;for(let _0x597b26=0x0;_0x597b26<=_0x4aa1f9;_0x597b26++){try{return await _0x76e9fb(_0x597b26);}catch(_0x5d4173){_0x3d7ded=_0x5d4173;if(_0x597b26>=_0x4aa1f9)break;await sleep(RETRY_BACKOFF_MS*(_0x597b26+0x1));}}throw _0x3d7ded;}async function withTimeout(_0x519fab,_0x4b6934,_0x1f5480){const _0xd3476=a56_0x455b7a;let _0x41fa2e=null;try{return await Promise[_0xd3476(0x250)]([_0x519fab,new Promise((_0x17e28d,_0x4e15cd)=>{const _0x2117f7=_0xd3476;_0x41fa2e=setTimeout(()=>_0x4e15cd(new Error(_0x1f5480+_0x2117f7(0x2a2))),_0x4b6934);})]);}finally{if(_0x41fa2e)clearTimeout(_0x41fa2e);}}class MxResolver{constructor(){const _0xf3c53e=a56_0x455b7a;this[_0xf3c53e(0x23e)]=new Map(),this[_0xf3c53e(0x23d)]=0x0,this[_0xf3c53e(0x24a)]=0x0;}async[a56_0x455b7a(0x296)](_0x9aae70){const _0x48b10b=a56_0x455b7a,_0xb121e7=getEmailDomain(_0x9aae70);if(!_0xb121e7)return[];if(this['cache'][_0x48b10b(0x231)](_0xb121e7))return this[_0x48b10b(0x23d)]++,this[_0x48b10b(0x23e)][_0x48b10b(0x29a)](_0xb121e7);this['misses']++;const _0x45722f=withRetry(async()=>{const _0x235b81=_0x48b10b;let _0xa84e11;try{_0xa84e11=await withTimeout(dns['resolveMx'](_0xb121e7),DNS_TIMEOUT_MS,_0xb121e7);}catch(_0x500e68){if(isNoMxDnsError(_0x500e68))return[];throw _0x500e68;}return Array[_0x235b81(0x24c)](_0xa84e11)?_0xa84e11[_0x235b81(0x243)]((_0x499a7c,_0x3545ed)=>_0x499a7c[_0x235b81(0x20d)]-_0x3545ed[_0x235b81(0x20d)]):[];})[_0x48b10b(0x287)](_0x321b0e=>{const _0x13027e=_0x48b10b;this[_0x13027e(0x23e)]['delete'](_0xb121e7);throw _0x321b0e;});this[_0x48b10b(0x23e)][_0x48b10b(0x24b)](_0xb121e7,_0x45722f);if(this[_0x48b10b(0x23e)]['size']>MX_CACHE_LIMIT){const _0x22b7e5=this[_0x48b10b(0x23e)]['keys']()[_0x48b10b(0x263)]()[_0x48b10b(0x299)];this['cache'][_0x48b10b(0x209)](_0x22b7e5);}return _0x45722f;}['stats'](){const _0x4d1184=a56_0x455b7a;return{'cacheSize':this['cache'][_0x4d1184(0x208)],'cacheHits':this[_0x4d1184(0x23d)],'cacheMisses':this[_0x4d1184(0x24a)]};}}function compileSorterRules(_0x5154ca={}){const _0xeeb7b7=a56_0x455b7a,_0xeae38b=[];for(const [_0x1768cb,_0x34c326]of Object[_0xeeb7b7(0x214)](_0x5154ca||{})){const _0xdb3bd1=(Array[_0xeeb7b7(0x24c)](_0x34c326)?_0x34c326:[])[_0xeeb7b7(0x28f)](_0x468558=>String(_0x468558||'')[_0xeeb7b7(0x28b)]()[_0xeeb7b7(0x215)]())[_0xeeb7b7(0x22c)](Boolean);if(!_0xdb3bd1[_0xeeb7b7(0x224)])continue;_0xeae38b[_0xeeb7b7(0x25b)]({'filename':sanitizeBucketName(_0x1768cb),'patterns':_0xdb3bd1});}return _0xeae38b;}function makeProgressPrinter(_0x346345){const _0x5f0f3f=a56_0x455b7a,_0x329382=Date[_0x5f0f3f(0x245)]();let _0x255d1a=-0x1;return({finished:_0x5cd689,inFlight:_0x51ac08})=>{const _0x5e946e=_0x5f0f3f;if(_0x5cd689===_0x255d1a)return;_0x255d1a=_0x5cd689;const _0x193b12=Math[_0x5e946e(0x273)](0.001,(Date[_0x5e946e(0x245)]()-_0x329382)/0x3e8),_0x990b62=_0x5cd689/_0x193b12;process[_0x5e946e(0x235)][_0x5e946e(0x2a6)]('\x0d'+_0x346345+':\x20'+_0x5cd689['toLocaleString']()+_0x5e946e(0x249)+_0x51ac08+_0x5e946e(0x1f5)+_0x990b62[_0x5e946e(0x2a7)](0x1)+_0x5e946e(0x226));};}function matchMxBucket(_0x5a4682,_0x494bce,_0x282101=OTHER_UNMATCHED_MX_BUCKET){const _0x1d99a6=a56_0x455b7a,_0x27a206=String(_0x5a4682||'')[_0x1d99a6(0x215)]();for(const _0x5e62cc of _0x494bce){for(const _0x5a7db6 of _0x5e62cc[_0x1d99a6(0x23b)]){if(_0x27a206[_0x1d99a6(0x200)](_0x5a7db6))return _0x5e62cc['filename'];}}return _0x282101;}async function sortByMxRulesAsync({recipients:_0x4e1bde,sorterOptions:_0x307c39,label:_0x1a92ba,progressLabel:_0xadd236,folderName:_0x2e59f5,fallbackBucket:fallbackBucket=OTHER_UNMATCHED_MX_BUCKET}){const _0x33cc78=a56_0x455b7a,_0x5099fe=timestampDir(),_0x5466e1=path[_0x33cc78(0x25e)](_0x5099fe,sanitizeBucketName(_0x2e59f5||_0x33cc78(0x1f3)));fs['mkdirSync'](_0x5466e1,{'recursive':!![]}),console['log'](chalk['dim'](_0x33cc78(0x26e)+MX_CONCURRENCY+'\x20\x20·\x20mx\x20cache:\x20'+MX_CACHE_LIMIT[_0x33cc78(0x1fc)]()+_0x33cc78(0x248)));const _0x18f275=new StreamBucketWriter(_0x5466e1);installShutdown(_0x18f275);const _0x3b01d4=new MxResolver();let _0x310e5b=0x0,_0x302d5c=0x0,_0x478cd9=0x0,_0x7481e0=0x0;const _0x217c80=compileSorterRules(_0x307c39),_0x1e0822=async _0xa9c2b6=>{const _0x46d024=_0x33cc78;_0x7481e0++;let _0x6205e9;try{_0x6205e9=await _0x3b01d4[_0x46d024(0x296)](_0xa9c2b6);}catch(_0x1a5951){await _0x18f275['append'](_0x46d024(0x2a1),_0xa9c2b6),_0x478cd9++;return;}if(!Array[_0x46d024(0x24c)](_0x6205e9)||_0x6205e9[_0x46d024(0x224)]===0x0){await _0x18f275[_0x46d024(0x24d)](OTHER_NO_MX_BUCKET,_0xa9c2b6),_0x302d5c++;return;}const _0x4cbd14=_0x6205e9['map'](_0x3f81da=>_0x3f81da?.[_0x46d024(0x234)])['filter'](Boolean)[_0x46d024(0x25e)]('\x20');if(!_0x4cbd14){await _0x18f275[_0x46d024(0x24d)](OTHER_NO_MX_BUCKET,_0xa9c2b6),_0x302d5c++;return;}_0x310e5b++,await _0x18f275['append'](matchMxBucket(_0x4cbd14,_0x217c80,fallbackBucket),_0xa9c2b6);},_0x3e6372=makeProgressPrinter(_0xadd236);let _0xfed948=null;try{await processIterableInPool(_0x4e1bde,_0x1e0822,{'concurrency':MX_CONCURRENCY,'onProgress':_0x3e6372});}catch(_0x1dece1){_0xfed948=_0x1dece1;}finally{process[_0x33cc78(0x235)][_0x33cc78(0x2a6)]('\x0a'),await _0x18f275[_0x33cc78(0x29c)]();}if(_0xfed948)throw _0xfed948;sorterCompleted({'label':_0x1a92ba,'total':_0x7481e0,'valid':_0x310e5b,'invalid':_0x302d5c,'unresolved':_0x478cd9,'dirname':_0x5099fe,'buckets':_0x18f275[_0x33cc78(0x23c)](),'dns':_0x3b01d4[_0x33cc78(0x244)]()});}async function sortAllAsync(_0x1b457c,_0x247b72){const _0x3e7725=a56_0x455b7a;return sortByMxRulesAsync({'recipients':_0x1b457c,'sorterOptions':_0x247b72,'label':_0x3e7725(0x289),'progressLabel':_0x3e7725(0x207),'folderName':_0x3e7725(0x1f3)});}async function sortCustomAsync(_0x563254,_0x225c04){const _0x5495f1=a56_0x455b7a,_0x549e36=String(_0x225c04||'')[_0x5495f1(0x28b)]()['toLowerCase']();if(!_0x549e36)throw new Error('Custom\x20sorter\x20requires\x20a\x20domain\x20or\x20MX\x20pattern');const _0x539da5=_0x549e36[_0x5495f1(0x1f6)](/[^a-z0-9.-]+/gi,'_')[_0x5495f1(0x1f6)](/\.+$/,'');return sortByMxRulesAsync({'recipients':_0x563254,'sorterOptions':{[(_0x539da5||_0x5495f1(0x28c))+'.txt']:[_0x549e36]},'label':'Custom\x20Sorter\x20('+_0x549e36+')','progressLabel':'Sorting\x20(Custom)','folderName':'Custom','fallbackBucket':OTHER_UNMATCHED_MX_BUCKET});}async function sortTurbifyAsync(_0x200102){const _0x196823=a56_0x455b7a;return sortByMxRulesAsync({'recipients':_0x200102,'sorterOptions':{'Turbify.txt':[_0x196823(0x1fa),_0x196823(0x228),_0x196823(0x22e)]},'label':_0x196823(0x246),'progressLabel':_0x196823(0x265),'folderName':_0x196823(0x24f),'fallbackBucket':OTHER_UNMATCHED_MX_BUCKET});}async function sortMicrosoftAsync(_0x54fa64){const _0x365c8d=a56_0x455b7a,_0x18eb58=axiosConfig(),_0x186dec=timestampDir(),_0x41d505=path[_0x365c8d(0x25e)](_0x186dec,_0x365c8d(0x26a));fs[_0x365c8d(0x232)](_0x41d505,{'recursive':!![]}),console[_0x365c8d(0x21f)](chalk[_0x365c8d(0x27e)](_0x365c8d(0x205)+MS_CONCURRENCY));const _0x370987=new StreamBucketWriter(_0x41d505);installShutdown(_0x370987);const _0x2174d2=_0x365c8d(0x1f4);let _0x221073=0x0,_0x23fbae=0x0,_0x37991f=0x0,_0x30b2a6=0x0;const _0x52fc48=async _0x5032c9=>{const _0x3c56b7=_0x365c8d;_0x30b2a6++;let _0x4508e8;try{const _0xbe4636={'Username':_0x5032c9},_0x186d42=await withRetry(()=>_0x18eb58[_0x3c56b7(0x21d)](_0x2174d2,_0xbe4636,{'timeout':HTTP_TIMEOUT_MS,'headers':{'Content-Type':_0x3c56b7(0x281)}}));_0x4508e8=_0x186d42?.[_0x3c56b7(0x276)]||{};}catch(_0x169595){_0x37991f++,await _0x370987[_0x3c56b7(0x24d)]('Office365_Unresolved.txt',_0x5032c9);return;}const _0x40b860=_0x4508e8['IfExistsResult'],_0x1e2f7b=_0x4508e8[_0x3c56b7(0x222)]||_0x5032c9,_0x5a786f=_0x4508e8?.[_0x3c56b7(0x268)]?.['FederationRedirectUrl']||'',_0x2db555=_0x40b860===0x0||_0x40b860===0x5||_0x40b860===0x6,_0x40b9e6=_0x40b860===0x1;if(_0x2db555){_0x221073++;if(_0x5a786f){const _0x346ded=_0x5a786f[_0x3c56b7(0x215)]();if(_0x346ded[_0x3c56b7(0x200)](_0x3c56b7(0x26d))||_0x346ded[_0x3c56b7(0x200)](_0x3c56b7(0x240)))await _0x370987['append'](_0x3c56b7(0x1f2),_0x1e2f7b);else{if(_0x346ded['includes'](_0x3c56b7(0x1fd)))await _0x370987[_0x3c56b7(0x24d)]('Office365_Okta.txt',_0x1e2f7b);else{if(_0x346ded[_0x3c56b7(0x200)](_0x3c56b7(0x28d)))await _0x370987['append'](_0x3c56b7(0x2a3),_0x1e2f7b);else{if(_0x346ded[_0x3c56b7(0x200)](_0x3c56b7(0x257))||_0x346ded[_0x3c56b7(0x200)](_0x3c56b7(0x22b)))await _0x370987['append'](_0x3c56b7(0x26b),_0x1e2f7b);else{if(_0x346ded[_0x3c56b7(0x200)]('google.com'))await _0x370987[_0x3c56b7(0x24d)](_0x3c56b7(0x26f),_0x1e2f7b);else _0x346ded[_0x3c56b7(0x200)]('wsfed')?await _0x370987[_0x3c56b7(0x24d)](_0x3c56b7(0x229),_0x1e2f7b):await _0x370987[_0x3c56b7(0x24d)](_0x3c56b7(0x251),_0x1e2f7b);}}}}}else await _0x370987[_0x3c56b7(0x24d)](_0x3c56b7(0x20a),_0x1e2f7b);}else _0x40b9e6?(_0x23fbae++,await _0x370987[_0x3c56b7(0x24d)](_0x3c56b7(0x223),_0x1e2f7b)):(_0x37991f++,await _0x370987[_0x3c56b7(0x24d)](_0x3c56b7(0x206),_0x1e2f7b));},_0x5d46b2=makeProgressPrinter(_0x365c8d(0x241));let _0x46c792=null;try{await processIterableInPool(_0x54fa64,_0x52fc48,{'concurrency':MS_CONCURRENCY,'onProgress':_0x5d46b2});}catch(_0x571769){_0x46c792=_0x571769;}finally{process[_0x365c8d(0x235)][_0x365c8d(0x2a6)]('\x0a'),await _0x370987['close']();}if(_0x46c792)throw _0x46c792;sorterCompleted({'label':'Microsoft\x20(Office\x20365)\x20Sorter','total':_0x30b2a6,'valid':_0x221073,'invalid':_0x23fbae,'unresolved':_0x37991f,'dirname':_0x186dec,'buckets':_0x370987['summary']()});}let SHUTDOWN_INSTALLED=![];function installShutdown(_0x526b39){const _0x1c71ed=a56_0x455b7a;if(SHUTDOWN_INSTALLED)return;SHUTDOWN_INSTALLED=!![];const _0x94c1c0=async _0x585af5=>{const _0x15be19=a56_0x5630;try{process['stdout'][_0x15be19(0x2a6)]('\x0a'+chalk[_0x15be19(0x218)](_0x15be19(0x20c)+_0x585af5+',\x20flushing\x20buckets…')+'\x0a'),await _0x526b39['close']();}catch(_0x46d60c){}process['exit'](0x0);};process[_0x1c71ed(0x266)](_0x1c71ed(0x20b),()=>_0x94c1c0(_0x1c71ed(0x20b))),process[_0x1c71ed(0x266)](_0x1c71ed(0x212),()=>_0x94c1c0(_0x1c71ed(0x212)));}function sorterCompleted({label:_0x422ea6,total:_0x5a7f15,valid:_0x5c2e54,invalid:_0x155706,unresolved:_0x388c3f,dirname:_0xa372b9,buckets:buckets={},dns:dns=null}){const _0x43b7ac=a56_0x455b7a,_0x1cd114={'label':_0x422ea6,'completed_at':new Date()[_0x43b7ac(0x297)](),'total':_0x5a7f15,'valid':_0x5c2e54,'invalid':_0x155706,'unresolved':_0x388c3f,'output_dir':_0xa372b9,'buckets':buckets,...dns?{'dns':dns}:{}};try{fs['writeFileSync'](path[_0x43b7ac(0x25e)](_0xa372b9,_0x43b7ac(0x1f7)),JSON[_0x43b7ac(0x21a)](_0x1cd114,null,0x2)+'\x0a',_0x43b7ac(0x20e));}catch(_0x59cfd2){}executionCompleted(),console[_0x43b7ac(0x21f)]('\x0a'+chalk[_0x43b7ac(0x295)](_0x422ea6)+_0x43b7ac(0x22f)),console['log'](_0x43b7ac(0x233)+_0x5a7f15[_0x43b7ac(0x1fc)]()),console[_0x43b7ac(0x21f)](_0x43b7ac(0x271)+_0x5c2e54['toLocaleString']()),console[_0x43b7ac(0x21f)](_0x43b7ac(0x216)+_0x155706['toLocaleString']()),console[_0x43b7ac(0x21f)](_0x43b7ac(0x298)+_0x388c3f[_0x43b7ac(0x1fc)]()),console['log'](_0x43b7ac(0x20f)+_0xa372b9);const _0x12d009=Object[_0x43b7ac(0x2a5)](buckets)[_0x43b7ac(0x243)]();if(_0x12d009[_0x43b7ac(0x224)]){console['log']('\x0a'+chalk['dim'](_0x43b7ac(0x282)));for(const _0x5cc796 of _0x12d009){console[_0x43b7ac(0x21f)]('\x20\x20'+_0x5cc796+':\x20'+buckets[_0x5cc796][_0x43b7ac(0x1fc)]());}}dns&&console[_0x43b7ac(0x21f)](_0x43b7ac(0x1fb)+dns[_0x43b7ac(0x29e)][_0x43b7ac(0x1fc)]()+_0x43b7ac(0x258)+dns[_0x43b7ac(0x203)][_0x43b7ac(0x1fc)]()+_0x43b7ac(0x274)),console[_0x43b7ac(0x21f)](_0x43b7ac(0x284)),alertUser(),process[_0x43b7ac(0x22a)](0x0);}function sortAll(_0x42cec4,_0x1a1d2a){const _0x257bb7=a56_0x455b7a;announceTitle(_0x257bb7(0x289));try{return onlyPremiumLicenses(),sortAllAsync(_0x42cec4,_0x1a1d2a)[_0x257bb7(0x287)](_0x9a5c8a=>{const _0x446ae9=_0x257bb7;console['error'](chalk['red'](_0x9a5c8a?.[_0x446ae9(0x270)]||_0x9a5c8a)),process[_0x446ae9(0x22a)](0x1);});}catch(_0x2da566){console[_0x257bb7(0x21f)](_0x257bb7(0x284)),console[_0x257bb7(0x25f)](_0x2da566?.[_0x257bb7(0x270)]||_0x2da566),process['exit'](0x1);}}function sortMicrosoft(_0x59d8a6){const _0x4e4c2b=a56_0x455b7a;announceTitle(_0x4e4c2b(0x277));try{return onlyPremiumLicenses(),sortMicrosoftAsync(_0x59d8a6)[_0x4e4c2b(0x287)](_0x1dad7e=>{const _0x5871eb=_0x4e4c2b;console[_0x5871eb(0x25f)](chalk[_0x5871eb(0x27f)](_0x1dad7e?.[_0x5871eb(0x270)]||_0x1dad7e)),process[_0x5871eb(0x22a)](0x1);});}catch(_0x1c191e){console[_0x4e4c2b(0x21f)]('\x0aNB:\x20Sort\x20only\x20opted-in\x20or\x20authorized\x20address\x20lists\x20and\x20respect\x20provider\x20limits.'),console[_0x4e4c2b(0x25f)](_0x1c191e?.[_0x4e4c2b(0x270)]||_0x1c191e),process[_0x4e4c2b(0x22a)](0x1);}}function sortCustom(_0x1b25ee,_0x1ff953){const _0x5afab2=a56_0x455b7a;announceTitle(_0x5afab2(0x27c)+_0x1ff953+')');try{return onlyPremiumLicenses(),sortCustomAsync(_0x1b25ee,_0x1ff953)['catch'](_0x3c0563=>{const _0x14ee0d=_0x5afab2;console[_0x14ee0d(0x25f)](chalk[_0x14ee0d(0x27f)](_0x3c0563?.[_0x14ee0d(0x270)]||_0x3c0563)),process[_0x14ee0d(0x22a)](0x1);});}catch(_0x121356){console[_0x5afab2(0x21f)](_0x5afab2(0x284)),console[_0x5afab2(0x25f)](_0x121356?.[_0x5afab2(0x270)]||_0x121356),process['exit'](0x1);}}function sortTurbify(_0x5956fe){const _0xeb9718=a56_0x455b7a;announceTitle(_0xeb9718(0x246));try{return onlyPremiumLicenses(),sortTurbifyAsync(_0x5956fe)[_0xeb9718(0x287)](_0x5f3c22=>{const _0x5b6fc4=_0xeb9718;console[_0x5b6fc4(0x25f)](chalk[_0x5b6fc4(0x27f)](_0x5f3c22?.['message']||_0x5f3c22)),process[_0x5b6fc4(0x22a)](0x1);});}catch(_0x230ad8){console['log'](_0xeb9718(0x284)),console['error'](_0x230ad8?.[_0xeb9718(0x270)]||_0x230ad8),process[_0xeb9718(0x22a)](0x1);}}function listProviders(_0x139a58={}){const _0x43cb67=a56_0x455b7a,_0x1032b9=compileSorterRules(_0x139a58);console[_0x43cb67(0x21f)](chalk['bold'](_0x43cb67(0x27d)));for(const _0x1bead1 of _0x1032b9){console[_0x43cb67(0x21f)](_0x1bead1[_0x43cb67(0x2a0)]+':\x20'+_0x1bead1[_0x43cb67(0x23b)][_0x43cb67(0x25e)](',\x20'));}console[_0x43cb67(0x21f)](_0x43cb67(0x24e)+_0x1032b9[_0x43cb67(0x224)]['toLocaleString']()+'\x0a'),alertUser(),process[_0x43cb67(0x22a)](0x0);}module[a56_0x455b7a(0x272)]={'listProviders':listProviders,'sortAll':sortAll,'sortCustom':sortCustom,'sortMicrosoft':sortMicrosoft,'sortTurbify':sortTurbify};