Built motion from commit f94df7f0.|2.5.48
[motion2.git] / server / components / import / cm / csv.js
1 // *************************************************************************
2 // *                                                                       *
3 // * xCALLY Motion -  The Omnichannel Contact Center                       *
4 // * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
5 // *                                                                       *
6 // *************************************************************************
7 // *                                                                       *
8 // * Email: info@xcally.com                                                *
9 // * Website: https://www.xcally.com                                       *
10 // *                                                                       *
11 // *************************************************************************
12 // *                                                                       *
13 // * The SOFTWARE PRODUCT is protected by copyright laws and international *
14 // * copyright treaties, as well as other intellectual property laws and   *
15 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                         *
16 // *                                                                       *
17 // *************************************************************************
18 var _0x8046=['from','cm_contacts','where','deletedAt\x20IS\x20NULL','ListId\x20=\x20?','phone\x20IS\x20NOT\x20NULL','phone\x20NOT\x20IN\x20(?)','cm_hopper','\x20=\x20?','str','cm_hopper_final','cm_hopper_black','id\x20IN\x20?','VoiceQueue','outbound','dialCheckDuplicateType','CmList','Lists','get','push','sequelize','query','VoiceQueueId','onlyIfOpen','findAll','BlackLists','all','Campaign','always','CampaignId','cmContact,\x20%s,\x20%s','generalCheckHopper','Error\x20processing\x20rows\x20block:','contact:csv_','resume','resolve','emit','Unable\x20to\x20delete\x20temp\x20file:','exit','SIGINT','info','CSV\x20import\x20process\x20stopped!','CmContact','createReadStream','parse','CSV\x20parsed\x20correctly!','CSV\x20parse\x20error','Error\x20executing\x20contact\x20csv\x20import:','util','squel','papaparse','ioredis','../../../mysqldb','../../../config/environment','api','redis','defaults','localhost','socket.io-emitter','../../../api/cmContact/cmContact.socket','register','argv','undefined','null','Missing\x20filepath\x20parameter!','zipObject','split','Missing\x20ListId\x20parameter!','error','contact','index','test','isNil','errors','map','join','hasOwnProperty','data','firstName','firstName\x20not\x20specified!','phone','birthDate','YYYY-MM-DD','isValid','birthDate\x20format\x20is\x20invalid,\x20YYYY-MM-DD\x20format\x20is\x20supported!','email','email\x20format\x20is\x20not\x20valid!','ListId','CompanyId','length','find','duplicate','Duplicate\x20Contact','create','then','pick','catch','message','stringify','cmContact','inspect','insert','into','fromQuery','scheduledAt','ContactId','createdAt','select','field','NOW()','toString','updatedAt'];(function(_0x400322,_0x4353a8){var _0xfdd597=function(_0xd914b6){while(--_0xd914b6){_0x400322['push'](_0x400322['shift']());}};_0xfdd597(++_0x4353a8);}(_0x8046,0x110));var _0x6804=function(_0x138adb,_0x193fee){_0x138adb=_0x138adb-0x0;var _0x1b27f2=_0x8046[_0x138adb];return _0x1b27f2;};'use strict';var BPromise=require('bluebird');var util=require(_0x6804('0x0'));var _=require('lodash');var fs=require('fs');var squel=require(_0x6804('0x1'));var Papa=require(_0x6804('0x2'));var Redis=require(_0x6804('0x3'));var db=require(_0x6804('0x4'))['db'];var config=require(_0x6804('0x5'));var logger=require('../../../config/logger')(_0x6804('0x6'));config[_0x6804('0x7')]=_[_0x6804('0x8')](config[_0x6804('0x7')],{'host':_0x6804('0x9'),'port':0x18eb});var socket=require(_0x6804('0xa'))(new Redis(config[_0x6804('0x7')]));require(_0x6804('0xb'))[_0x6804('0xc')](socket);try{if(!process[_0x6804('0xd')][0x2]||process[_0x6804('0xd')][0x2]===_0x6804('0xe')||process[_0x6804('0xd')][0x2]===_0x6804('0xf')){throw new Error(_0x6804('0x10'));}var FILEPATH=process[_0x6804('0xd')][0x2];if(!process[_0x6804('0xd')][0x3]||process[_0x6804('0xd')][0x3]===_0x6804('0xe')||process[_0x6804('0xd')][0x3]==='null'||!process[_0x6804('0xd')][0x4]||process[_0x6804('0xd')][0x4]===_0x6804('0xe')||process[_0x6804('0xd')][0x4]===_0x6804('0xf')){throw new Error('Missing\x20binding\x20parameters!');}var FIELDS=_[_0x6804('0x11')](process[_0x6804('0xd')][0x3][_0x6804('0x12')](','),process[_0x6804('0xd')][0x4][_0x6804('0x12')](','));if(!process[_0x6804('0xd')][0x5]||process[_0x6804('0xd')][0x5]===_0x6804('0xe')||process[_0x6804('0xd')][0x5]===_0x6804('0xf')){throw new Error(_0x6804('0x13'));}var LISTID=process['argv'][0x5];var COMPANYID=process['argv'][0x6]&&process[_0x6804('0xd')][0x6]!==_0x6804('0xe')&&process['argv'][0x6]!==_0x6804('0xf')?process[_0x6804('0xd')][0x6]:null;var DUPLICATES=process['argv'][0x7]&&process[_0x6804('0xd')][0x7]!=='undefined'&&process['argv'][0x7]!=='null'?process['argv'][0x7]:null;if(!process[_0x6804('0xd')][0x8]||process[_0x6804('0xd')][0x8]===_0x6804('0xe')||process[_0x6804('0xd')][0x8]===_0x6804('0xf')){throw new Error('Missing\x20socket_timestamp\x20parameter!');}var SOCKET_TIMESTAMP=process[_0x6804('0xd')][0x8];}catch(_0x45c6c1){logger[_0x6804('0x14')](_0x45c6c1);endCsv();}var total=0x0;var pTotal=0x0;var success=0x0;var errors=0x0;var duplicates=0x0;var rows=[];var hopperContacts='';var promises=[];var index=0x0;var alreadyInvalid=![];function handleCheckRowError(_0x2ae561,_0x1a2fea,_0x1f1e56,_0x3f4125){var _0x450d90={'message':_0x1a2fea};_0x450d90[_0x2ae561]=!![];if(_0x1f1e56){_0x450d90[_0x6804('0x15')]=_0x1f1e56;}if(_0x3f4125){_0x450d90[_0x6804('0x16')]=_0x3f4125;}return _0x450d90;}function isEmail(_0x421aab){return/^([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x22([^\x0d\x22\x5c\x80-\xff]|\x5c[\x00-\x7f])*\x22)(\x2e([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x22([^\x0d\x22\x5c\x80-\xff]|\x5c[\x00-\x7f])*\x22))*\x40([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x5b([^\x0d\x5b-\x5d\x80-\xff]|\x5c[\x00-\x7f])*\x5d)(\x2e([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x5b([^\x0d\x5b-\x5d\x80-\xff]|\x5c[\x00-\x7f])*\x5d))*$/[_0x6804('0x17')](_0x421aab);}function checkRow(_0x51a2db,_0x10c35b,_0x58a008){return new BPromise(function(_0x2b07cc,_0x1b2f95){if(_[_0x6804('0x18')](_0x51a2db)){return _0x1b2f95(handleCheckRowError(_0x6804('0x14'),'The\x20row\x20is\x20empty\x20or\x20the\x20number\x20of\x20parameters\x20does\x20not\x20match\x20the\x20columns!',null,_0x58a008));}if(_0x51a2db[_0x6804('0x19')]&&_0x51a2db[_0x6804('0x19')]['length']){var _0x5acc55=_[_0x6804('0x1a')](_0x51a2db['errors'],'message')[_0x6804('0x1b')](';');return _0x1b2f95(handleCheckRowError('error',_0x5acc55,null,_0x58a008));}var _0x26da96={};for(var _0x5d425b in FIELDS){if(FIELDS[_0x6804('0x1c')](_0x5d425b)&&FIELDS[_0x5d425b]){_0x26da96[_0x5d425b]=_0x51a2db[_0x6804('0x1d')][0x0][FIELDS[_0x5d425b]]||_0x51a2db[_0x6804('0x1d')][0x0]['\ufeff'+FIELDS[_0x5d425b]];}}if(!_0x26da96[_0x6804('0x1e')]){return _0x1b2f95(handleCheckRowError(_0x6804('0x14'),_0x6804('0x1f'),null,_0x58a008));}if(!_0x26da96[_0x6804('0x20')]){return _0x1b2f95(handleCheckRowError(_0x6804('0x14'),'phone\x20not\x20specified!',null,_0x58a008));}if(_0x26da96['birthDate']){var _0x50660b=moment(_0x26da96[_0x6804('0x21')],_0x6804('0x22'));if(!_0x50660b[_0x6804('0x23')]()){return _0x1b2f95(handleCheckRowError('error',_0x6804('0x24'),null,_0x58a008));}}if(_0x26da96[_0x6804('0x25')]){if(!isEmail(_0x26da96['email'])){return _0x1b2f95(handleCheckRowError('error',_0x6804('0x26'),null,_0x58a008));}}_0x26da96[_0x6804('0x27')]=LISTID;_0x26da96[_0x6804('0x28')]=COMPANYID||undefined;if(DUPLICATES&&DUPLICATES[_0x6804('0x29')]&&_0x10c35b){var _0x3a1163={};for(var _0xc10895=0x0,_0x45076e=DUPLICATES['length'];_0xc10895<_0x45076e;_0xc10895+=0x1){_0x3a1163[DUPLICATES[_0xc10895]]=_0x26da96[DUPLICATES[_0xc10895]];}var _0x12cb5e=_[_0x6804('0x2a')](_0x10c35b,_0x3a1163);if(_0x12cb5e){return _0x1b2f95(handleCheckRowError(_0x6804('0x2b'),_0x6804('0x2c'),_0x12cb5e,_0x58a008));}}return db['CmContact'][_0x6804('0x2d')](_0x26da96,{'raw':!![],'hooks':![],'fields':_['keys'](_0x26da96)})[_0x6804('0x2e')](function(_0x5b58cf){if(DUPLICATES&&DUPLICATES['length']&&_0x10c35b){_0x10c35b['push'](_[_0x6804('0x2f')](_0x26da96,DUPLICATES));}hopperContacts+=(hopperContacts?',':'')+_0x5b58cf['id'];return _0x2b07cc();})[_0x6804('0x30')](function(_0x59fc31){return _0x1b2f95(handleCheckRowError(_0x6804('0x14'),'Error\x20while\x20creating\x20contact:\x20'+(_0x59fc31[_0x6804('0x31')]||JSON[_0x6804('0x32')](_0x59fc31)),null,_0x58a008));});});}function checkHopper(){function _0x37d80f(){return function(_0x352ee1){logger[_0x6804('0x14')](_0x6804('0x33'),'checkHopper',util[_0x6804('0x34')](_0x352ee1,{'showHidden':![],'depth':null}));};}var _0xcf7dae=function(_0x1804d9,_0x1e78e5){var _0xf9dec0=squel[_0x6804('0x35')]()[_0x6804('0x36')]('cm_hopper')[_0x6804('0x37')]([_0x6804('0x20'),_0x6804('0x38'),_0x6804('0x39'),_0x6804('0x27'),_0x1e78e5,_0x6804('0x3a'),'updatedAt'],squel[_0x6804('0x3b')]()[_0x6804('0x3c')](_0x6804('0x20'),_0x6804('0x20'))[_0x6804('0x3c')](_0x6804('0x3d'),_0x6804('0x38'))['field']('id',_0x6804('0x39'))[_0x6804('0x3c')](LISTID[_0x6804('0x3e')](),'ListId')[_0x6804('0x3c')](_0x1804d9['id'][_0x6804('0x3e')](),_0x1e78e5)['field'](_0x6804('0x3d'),'createdAt')['field'](_0x6804('0x3d'),_0x6804('0x3f'))[_0x6804('0x40')](_0x6804('0x41'))[_0x6804('0x42')](_0x6804('0x43'))[_0x6804('0x42')](_0x6804('0x44'),LISTID[_0x6804('0x3e')]())['where'](_0x6804('0x45'))['where'](_0x6804('0x46'),squel[_0x6804('0x3b')]()['field']('phone')[_0x6804('0x40')](_0x6804('0x47'))[_0x6804('0x42')](_0x1e78e5+_0x6804('0x48'),_0x1804d9['id'][_0x6804('0x3e')]())))['toString']();return _0xf9dec0;};var _0x480451=function(_0x3c81a1,_0x37eb86){var _0x450489=squel[_0x6804('0x35')]()[_0x6804('0x36')](_0x6804('0x47'))[_0x6804('0x37')]([_0x6804('0x20'),_0x6804('0x38'),_0x6804('0x39'),_0x6804('0x27'),_0x37eb86,_0x6804('0x3a'),'updatedAt'],squel[_0x6804('0x3b')]()[_0x6804('0x3c')](_0x6804('0x20'),'phone')[_0x6804('0x3c')](_0x6804('0x3d'),_0x6804('0x38'))['field']('id',_0x6804('0x39'))[_0x6804('0x3c')](LISTID[_0x6804('0x3e')](),'ListId')['field'](_0x3c81a1['id']['toString'](),_0x37eb86)[_0x6804('0x3c')](_0x6804('0x3d'),_0x6804('0x3a'))[_0x6804('0x3c')]('NOW()','updatedAt')[_0x6804('0x40')](_0x6804('0x41'))[_0x6804('0x42')](_0x6804('0x43'))[_0x6804('0x42')](_0x6804('0x44'),LISTID['toString']())[_0x6804('0x42')]('id\x20IN\x20?',squel[_0x6804('0x49')](hopperContacts))[_0x6804('0x42')](_0x6804('0x45'))[_0x6804('0x42')](_0x6804('0x46'),squel[_0x6804('0x3b')]()[_0x6804('0x3c')]('calleridnum')['from'](_0x6804('0x4a'))[_0x6804('0x42')](_0x37eb86+_0x6804('0x48'),_0x3c81a1['id']['toString']()))[_0x6804('0x42')](_0x6804('0x46'),squel[_0x6804('0x3b')]()['field'](_0x6804('0x20'))[_0x6804('0x40')](_0x6804('0x47'))[_0x6804('0x42')](_0x37eb86+_0x6804('0x48'),_0x3c81a1['id']['toString']())))[_0x6804('0x3e')]();return _0x450489;};function _0x51feb9(_0x12f1ea,_0x556a4c){var _0x482552=squel[_0x6804('0x35')]()[_0x6804('0x36')]('cm_hopper')[_0x6804('0x37')]([_0x6804('0x20'),_0x6804('0x38'),_0x6804('0x39'),_0x6804('0x27'),_0x556a4c,_0x6804('0x3a'),_0x6804('0x3f')],squel[_0x6804('0x3b')]()[_0x6804('0x3c')]('phone',_0x6804('0x20'))['field'](_0x6804('0x3d'),_0x6804('0x38'))[_0x6804('0x3c')]('id',_0x6804('0x39'))[_0x6804('0x3c')](LISTID[_0x6804('0x3e')](),'ListId')[_0x6804('0x3c')](_0x12f1ea['id']['toString'](),_0x556a4c)[_0x6804('0x3c')](_0x6804('0x3d'),'createdAt')[_0x6804('0x3c')](_0x6804('0x3d'),_0x6804('0x3f'))[_0x6804('0x40')](_0x6804('0x41'))[_0x6804('0x42')](_0x6804('0x43'))[_0x6804('0x42')]('ListId\x20=\x20?',LISTID[_0x6804('0x3e')]())[_0x6804('0x42')]('id\x20IN\x20?',squel[_0x6804('0x49')](hopperContacts))[_0x6804('0x42')](_0x6804('0x45')))[_0x6804('0x3e')]();return _0x482552;}function _0x2e54ef(_0x206b8b,_0x3aef9f){var _0x4a3f7f=squel[_0x6804('0x35')]()['into'](_0x6804('0x4b'))[_0x6804('0x37')]([_0x6804('0x20'),_0x6804('0x39'),'ListId',_0x3aef9f,_0x6804('0x3a'),'updatedAt'],squel[_0x6804('0x3b')]()[_0x6804('0x3c')](_0x6804('0x20'),_0x6804('0x20'))['field']('id',_0x6804('0x39'))['field'](LISTID[_0x6804('0x3e')](),_0x6804('0x27'))[_0x6804('0x3c')](_0x206b8b['id'][_0x6804('0x3e')](),_0x3aef9f)[_0x6804('0x3c')](_0x6804('0x3d'),_0x6804('0x3a'))[_0x6804('0x3c')](_0x6804('0x3d'),_0x6804('0x3f'))[_0x6804('0x40')](_0x6804('0x41'))[_0x6804('0x42')]('deletedAt\x20IS\x20NULL')[_0x6804('0x42')](_0x6804('0x44'),LISTID[_0x6804('0x3e')]())[_0x6804('0x42')](_0x6804('0x4c'),squel['str'](hopperContacts))[_0x6804('0x42')](_0x6804('0x45')))[_0x6804('0x3e')]();return _0x4a3f7f;}return db[_0x6804('0x4d')]['findAll']({'where':{'type':_0x6804('0x4e')},'attributes':['id',_0x6804('0x4f')],'include':[{'model':db[_0x6804('0x50')],'as':_0x6804('0x51'),'where':{'id':LISTID}}]})[_0x6804('0x2e')](function(_0x591e96){var _0x3fbcfb=[];if(_0x591e96){var _0x4d62f5;for(var _0x2bc5cc=0x0,_0x2649f7;_0x2bc5cc<_0x591e96[_0x6804('0x29')];_0x2bc5cc+=0x1){_0x2649f7=_0x591e96[_0x2bc5cc][_0x6804('0x52')]({'plain':!![]});switch(_0x2649f7[_0x6804('0x4f')]){case'always':_0x3fbcfb[_0x6804('0x53')](db[_0x6804('0x54')][_0x6804('0x55')](_0x480451(_0x2649f7,_0x6804('0x56')))[_0x6804('0x2e')](function(){})[_0x6804('0x30')](_0x37d80f()));break;case _0x6804('0x57'):_0x3fbcfb[_0x6804('0x53')](db['sequelize'][_0x6804('0x55')](_0xcf7dae(_0x2649f7,_0x6804('0x56')))[_0x6804('0x2e')](function(){})[_0x6804('0x30')](_0x37d80f()));break;default:_0x3fbcfb[_0x6804('0x53')](db[_0x6804('0x54')][_0x6804('0x55')](_0x51feb9(_0x2649f7,_0x6804('0x56')))[_0x6804('0x2e')](function(){})[_0x6804('0x30')](_0x37d80f()));}}}return _0x3fbcfb;})['all']()[_0x6804('0x2e')](function(){return db['VoiceQueue'][_0x6804('0x58')]({'where':{'type':_0x6804('0x4e')},'attributes':['id'],'include':[{'model':db[_0x6804('0x50')],'as':_0x6804('0x59'),'where':{'id':LISTID}}]})[_0x6804('0x2e')](function(_0x4f5b22){var _0x34203a=[];if(_0x4f5b22){var _0x415d45;for(var _0x374be0=0x0,_0x394e9e;_0x374be0<_0x4f5b22[_0x6804('0x29')];_0x374be0+=0x1){_0x394e9e=_0x4f5b22[_0x374be0]['get']({'plain':!![]});_0x34203a[_0x6804('0x53')](db[_0x6804('0x54')][_0x6804('0x55')](_0x2e54ef(_0x394e9e,_0x6804('0x56')))['then'](function(){})[_0x6804('0x30')](_0x37d80f()));}}return _0x34203a;})[_0x6804('0x5a')]();})[_0x6804('0x2e')](function(){return db[_0x6804('0x5b')]['findAll']({'attributes':['id',_0x6804('0x4f')],'include':[{'model':db[_0x6804('0x50')],'as':_0x6804('0x51'),'where':{'id':LISTID}}]})[_0x6804('0x2e')](function(_0x4385f6){var _0x107166=[];if(_0x4385f6){for(var _0x52c76a=0x0,_0x329207;_0x52c76a<_0x4385f6[_0x6804('0x29')];_0x52c76a+=0x1){_0x329207=_0x4385f6[_0x52c76a][_0x6804('0x52')]({'plain':!![]});switch(_0x329207[_0x6804('0x4f')]){case _0x6804('0x5c'):_0x107166[_0x6804('0x53')](db[_0x6804('0x54')][_0x6804('0x55')](_0x480451(_0x329207,'CampaignId'))[_0x6804('0x2e')](function(){})['catch'](_0x37d80f()));break;case _0x6804('0x57'):_0x107166['push'](db['sequelize'][_0x6804('0x55')](_0xcf7dae(_0x329207,_0x6804('0x5d')))[_0x6804('0x2e')](function(){})[_0x6804('0x30')](_0x37d80f()));break;default:_0x107166[_0x6804('0x53')](db[_0x6804('0x54')][_0x6804('0x55')](_0x51feb9(_0x329207,_0x6804('0x5d')))[_0x6804('0x2e')](function(){})[_0x6804('0x30')](_0x37d80f()));}}}return _0x107166;})[_0x6804('0x5a')]();})['then'](function(){return db[_0x6804('0x5b')][_0x6804('0x58')]({'attributes':['id'],'include':[{'model':db[_0x6804('0x50')],'as':_0x6804('0x59'),'where':{'id':LISTID}}]})[_0x6804('0x2e')](function(_0x23584f){var _0x51050d=[];if(_0x23584f){for(var _0x30ffe8=0x0,_0x4c8852;_0x30ffe8<_0x23584f[_0x6804('0x29')];_0x30ffe8+=0x1){_0x4c8852=_0x23584f[_0x30ffe8]['get']({'plain':!![]});_0x51050d[_0x6804('0x53')](db[_0x6804('0x54')][_0x6804('0x55')](_0x2e54ef(_0x4c8852,'CampaignId'))['then'](function(){})[_0x6804('0x30')](_0x37d80f()));}}return _0x51050d;})[_0x6804('0x5a')]();})['catch'](function(_0x2f522c){logger[_0x6804('0x14')](_0x6804('0x5e'),_0x6804('0x5f'),_0x2f522c[_0x6804('0x31')]);});}var processPromises=function(_0x5085c5){return BPromise[_0x6804('0x5a')](promises)[_0x6804('0x2e')](function(_0x166772){})[_0x6804('0x30')](function(_0x8707c6){logger[_0x6804('0x14')](_0x6804('0x60'),JSON['stringify'](_0x8707c6));})['finally'](function(){socket['emit'](_0x6804('0x61')+SOCKET_TIMESTAMP,{'success':success,'errors':errors,'duplicates':duplicates,'rows':rows});promises=[];success=0x0;errors=0x0;duplicates=0x0;rows=[];if(_0x5085c5){return _0x5085c5[_0x6804('0x62')]();}});};var endCsv=function(){return BPromise[_0x6804('0x63')]()[_0x6804('0x2e')](function(){if(hopperContacts){return checkHopper();}})[_0x6804('0x2e')](function(){socket[_0x6804('0x64')](_0x6804('0x61')+SOCKET_TIMESTAMP,{'finished':!![],'success':success,'errors':errors,'duplicates':duplicates,'rows':rows});try{fs['unlinkSync'](FILEPATH);}catch(_0x277fe7){logger[_0x6804('0x14')](_0x6804('0x65'),JSON[_0x6804('0x32')](_0x277fe7));}finally{process[_0x6804('0x66')](0x0);}});};process['on'](_0x6804('0x67'),function(){logger[_0x6804('0x68')](_0x6804('0x69'));endCsv();});function main(){return BPromise[_0x6804('0x63')]()['then'](function(){if(DUPLICATES){DUPLICATES=DUPLICATES[_0x6804('0x12')](',');return db[_0x6804('0x6a')][_0x6804('0x58')]({'where':{'ListId':LISTID},'attributes':DUPLICATES,'raw':!![]});}})['then'](function(_0x51e4f9){var _0x4ef95f=fs[_0x6804('0x6b')](FILEPATH,{'highWaterMark':0xf*0x400*0x400});Papa[_0x6804('0x6c')](_0x4ef95f,{'header':!![],'skipEmptyLines':!![],'step':function(_0x4b9310,_0x53d22f){total+=0x1;var _0x217f99=total;promises[_0x6804('0x53')](checkRow(_0x4b9310,_0x51e4f9,_0x217f99)[_0x6804('0x2e')](function(){success+=0x1;})[_0x6804('0x30')](function(_0x1168af){if(_0x1168af[_0x6804('0x14')]){errors+=0x1;delete _0x1168af[_0x6804('0x14')];}else if(_0x1168af[_0x6804('0x2b')]){duplicates+=0x1;delete _0x1168af[_0x6804('0x2b')];}rows[_0x6804('0x53')](_0x1168af);}));if(total%0xc8===0x0){_0x53d22f['pause']();return processPromises(_0x53d22f);}},'complete':function(){return processPromises()[_0x6804('0x2e')](function(){logger[_0x6804('0x68')](_0x6804('0x6d'));endCsv();});},'error':function(_0x296d46,_0x35a0f6){logger['info'](_0x6804('0x6e'),JSON['stringify'](_0x296d46));endCsv();}});})[_0x6804('0x30')](function(_0x14d39d){logger[_0x6804('0x14')](_0x6804('0x6f'),JSON[_0x6804('0x32')](_0x14d39d));});}main();