Built motion from commit (unavailable).|2.2.3
[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 _0x36b2=['\x20=\x20?','createdAt','select','deletedAt\x20IS\x20NULL','id\x20IN\x20?','str','calleridnum','cm_hopper_final','cm_hopper_black','VoiceQueue','findAll','outbound','dialCheckDuplicateType','CmList','Lists','get','always','sequelize','query','VoiceQueueId','onlyIfOpen','BlackLists','all','Campaign','CampaignId','cmContact,\x20%s,\x20%s','generalCheckHopper','Error\x20processing\x20rows\x20block:','finally','emit','resume','resolve','contact:csv_','unlinkSync','Unable\x20to\x20delete\x20temp\x20file:','exit','SIGINT','info','CSV\x20import\x20process\x20stopped!','createReadStream','parse','pause','CSV\x20parsed\x20correctly!','CSV\x20parse\x20error','stringify','Error\x20executing\x20contact\x20csv\x20import:','bluebird','util','lodash','squel','../../../mysqldb','../../../config/logger','api','redis','defaults','localhost','socket.io-emitter','../../../api/cmContact/cmContact.socket','argv','undefined','Missing\x20filepath\x20parameter!','null','split','Missing\x20ListId\x20parameter!','error','contact','index','test','The\x20row\x20is\x20empty\x20or\x20the\x20number\x20of\x20parameters\x20does\x20not\x20match\x20the\x20columns!','errors','length','map','hasOwnProperty','data','firstName','firstName\x20not\x20specified!','phone','phone\x20not\x20specified!','birthDate','YYYY-MM-DD','isValid','birthDate\x20format\x20is\x20invalid,\x20YYYY-MM-DD\x20format\x20is\x20supported!','email','email\x20format\x20is\x20not\x20valid!','ListId','CompanyId','find','duplicate','Duplicate\x20Contact','CmContact','create','then','push','pick','catch','Error\x20while\x20creating\x20contact:\x20','message','cmContact','checkHopper','inspect','insert','into','cm_hopper','fromQuery','scheduledAt','updatedAt','field','NOW()','ContactId','toString','from','cm_contacts','where','ListId\x20=\x20?','phone\x20IS\x20NOT\x20NULL','phone\x20NOT\x20IN\x20(?)'];(function(_0x2a2397,_0x32b017){var _0x1408f8=function(_0x132cb7){while(--_0x132cb7){_0x2a2397['push'](_0x2a2397['shift']());}};_0x1408f8(++_0x32b017);}(_0x36b2,0x18a));var _0x236b=function(_0x4e2e6e,_0x2890de){_0x4e2e6e=_0x4e2e6e-0x0;var _0x2f333e=_0x36b2[_0x4e2e6e];return _0x2f333e;};'use strict';var BPromise=require(_0x236b('0x0'));var util=require(_0x236b('0x1'));var _=require(_0x236b('0x2'));var fs=require('fs');var squel=require(_0x236b('0x3'));var Papa=require('papaparse');var Redis=require('ioredis');var db=require(_0x236b('0x4'))['db'];var config=require('../../../config/environment');var logger=require(_0x236b('0x5'))(_0x236b('0x6'));config[_0x236b('0x7')]=_[_0x236b('0x8')](config[_0x236b('0x7')],{'host':_0x236b('0x9'),'port':0x18eb});var socket=require(_0x236b('0xa'))(new Redis(config['redis']));require(_0x236b('0xb'))['register'](socket);try{if(!process[_0x236b('0xc')][0x2]||process['argv'][0x2]===_0x236b('0xd')||process[_0x236b('0xc')][0x2]==='null'){throw new Error(_0x236b('0xe'));}var FILEPATH=process[_0x236b('0xc')][0x2];if(!process[_0x236b('0xc')][0x3]||process[_0x236b('0xc')][0x3]===_0x236b('0xd')||process['argv'][0x3]===_0x236b('0xf')||!process[_0x236b('0xc')][0x4]||process[_0x236b('0xc')][0x4]===_0x236b('0xd')||process[_0x236b('0xc')][0x4]===_0x236b('0xf')){throw new Error('Missing\x20binding\x20parameters!');}var FIELDS=_['zipObject'](process[_0x236b('0xc')][0x3]['split'](','),process[_0x236b('0xc')][0x4][_0x236b('0x10')](','));if(!process['argv'][0x5]||process[_0x236b('0xc')][0x5]==='undefined'||process[_0x236b('0xc')][0x5]===_0x236b('0xf')){throw new Error(_0x236b('0x11'));}var LISTID=process[_0x236b('0xc')][0x5];var COMPANYID=process[_0x236b('0xc')][0x6]&&process[_0x236b('0xc')][0x6]!==_0x236b('0xd')&&process['argv'][0x6]!==_0x236b('0xf')?process[_0x236b('0xc')][0x6]:null;var DUPLICATES=process[_0x236b('0xc')][0x7]&&process[_0x236b('0xc')][0x7]!=='undefined'&&process[_0x236b('0xc')][0x7]!==_0x236b('0xf')?process[_0x236b('0xc')][0x7]:null;if(!process['argv'][0x8]||process['argv'][0x8]===_0x236b('0xd')||process[_0x236b('0xc')][0x8]===_0x236b('0xf')){throw new Error('Missing\x20socket_timestamp\x20parameter!');}var SOCKET_TIMESTAMP=process['argv'][0x8];}catch(_0x3a9648){logger[_0x236b('0x12')](_0x3a9648);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(_0x155f9e,_0x25f419,_0x975acb,_0x3046bb){var _0x47c761={'message':_0x25f419};_0x47c761[_0x155f9e]=!![];if(_0x975acb){_0x47c761[_0x236b('0x13')]=_0x975acb;}if(_0x3046bb){_0x47c761[_0x236b('0x14')]=_0x3046bb;}return _0x47c761;}function isEmail(_0x57a006){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))*$/[_0x236b('0x15')](_0x57a006);}function checkRow(_0x351565,_0x2a434a,_0x425465){return new BPromise(function(_0x584162,_0x37505c){if(_['isNil'](_0x351565)){return _0x37505c(handleCheckRowError(_0x236b('0x12'),_0x236b('0x16'),null,_0x425465));}if(_0x351565[_0x236b('0x17')]&&_0x351565[_0x236b('0x17')][_0x236b('0x18')]){var _0x49035e=_[_0x236b('0x19')](_0x351565['errors'],'message')['join'](';');return _0x37505c(handleCheckRowError(_0x236b('0x12'),_0x49035e,null,_0x425465));}var _0x147420={};for(var _0x4d3f6e in FIELDS){if(FIELDS[_0x236b('0x1a')](_0x4d3f6e)&&FIELDS[_0x4d3f6e]){_0x147420[_0x4d3f6e]=_0x351565[_0x236b('0x1b')][0x0][FIELDS[_0x4d3f6e]]||_0x351565['data'][0x0]['\ufeff'+FIELDS[_0x4d3f6e]];}}if(!_0x147420[_0x236b('0x1c')]){return _0x37505c(handleCheckRowError(_0x236b('0x12'),_0x236b('0x1d'),null,_0x425465));}if(!_0x147420[_0x236b('0x1e')]){return _0x37505c(handleCheckRowError(_0x236b('0x12'),_0x236b('0x1f'),null,_0x425465));}if(_0x147420[_0x236b('0x20')]){var _0x549dbd=moment(_0x147420[_0x236b('0x20')],_0x236b('0x21'));if(!_0x549dbd[_0x236b('0x22')]()){return _0x37505c(handleCheckRowError(_0x236b('0x12'),_0x236b('0x23'),null,_0x425465));}}if(_0x147420[_0x236b('0x24')]){if(!isEmail(_0x147420[_0x236b('0x24')])){return _0x37505c(handleCheckRowError('error',_0x236b('0x25'),null,_0x425465));}}_0x147420[_0x236b('0x26')]=LISTID;_0x147420[_0x236b('0x27')]=COMPANYID||undefined;if(DUPLICATES&&DUPLICATES['length']&&_0x2a434a){var _0x8ad765={};for(var _0x4c0f16=0x0,_0x519c58=DUPLICATES[_0x236b('0x18')];_0x4c0f16<_0x519c58;_0x4c0f16+=0x1){_0x8ad765[DUPLICATES[_0x4c0f16]]=_0x147420[DUPLICATES[_0x4c0f16]];}var _0x1bb076=_[_0x236b('0x28')](_0x2a434a,_0x8ad765);if(_0x1bb076){return _0x37505c(handleCheckRowError(_0x236b('0x29'),_0x236b('0x2a'),_0x1bb076,_0x425465));}}return db[_0x236b('0x2b')][_0x236b('0x2c')](_0x147420,{'raw':!![],'hooks':![],'fields':_['keys'](_0x147420)})[_0x236b('0x2d')](function(_0x4bdf61){if(DUPLICATES&&DUPLICATES[_0x236b('0x18')]&&_0x2a434a){_0x2a434a[_0x236b('0x2e')](_[_0x236b('0x2f')](_0x147420,DUPLICATES));}hopperContacts+=(hopperContacts?',':'')+_0x4bdf61['id'];return _0x584162();})[_0x236b('0x30')](function(_0x53f68c){return _0x37505c(handleCheckRowError(_0x236b('0x12'),_0x236b('0x31')+(_0x53f68c[_0x236b('0x32')]||JSON['stringify'](_0x53f68c)),null,_0x425465));});});}function checkHopper(){function _0x596bb8(){return function(_0x38d12d){logger[_0x236b('0x12')](_0x236b('0x33'),_0x236b('0x34'),util[_0x236b('0x35')](_0x38d12d,{'showHidden':![],'depth':null}));};}var _0x1ef3a1=function(_0x11ed25,_0x3066d3){var _0x536ede=squel[_0x236b('0x36')]()[_0x236b('0x37')](_0x236b('0x38'))[_0x236b('0x39')](['phone',_0x236b('0x3a'),'ContactId',_0x236b('0x26'),_0x3066d3,'createdAt',_0x236b('0x3b')],squel['select']()[_0x236b('0x3c')](_0x236b('0x1e'),_0x236b('0x1e'))[_0x236b('0x3c')](_0x236b('0x3d'),_0x236b('0x3a'))[_0x236b('0x3c')]('id',_0x236b('0x3e'))[_0x236b('0x3c')](LISTID[_0x236b('0x3f')](),'ListId')['field'](_0x11ed25['id'][_0x236b('0x3f')](),_0x3066d3)[_0x236b('0x3c')](_0x236b('0x3d'),'createdAt')['field']('NOW()',_0x236b('0x3b'))[_0x236b('0x40')](_0x236b('0x41'))[_0x236b('0x42')]('deletedAt\x20IS\x20NULL')[_0x236b('0x42')](_0x236b('0x43'),LISTID['toString']())['where'](_0x236b('0x44'))[_0x236b('0x42')](_0x236b('0x45'),squel['select']()[_0x236b('0x3c')](_0x236b('0x1e'))[_0x236b('0x40')](_0x236b('0x38'))['where'](_0x3066d3+_0x236b('0x46'),_0x11ed25['id'][_0x236b('0x3f')]())))[_0x236b('0x3f')]();return _0x536ede;};var _0x4e7e6b=function(_0x1bc8f3,_0x530e9b){var _0xd94256=squel['insert']()['into'](_0x236b('0x38'))['fromQuery']([_0x236b('0x1e'),_0x236b('0x3a'),_0x236b('0x3e'),_0x236b('0x26'),_0x530e9b,_0x236b('0x47'),_0x236b('0x3b')],squel[_0x236b('0x48')]()[_0x236b('0x3c')]('phone',_0x236b('0x1e'))[_0x236b('0x3c')](_0x236b('0x3d'),_0x236b('0x3a'))[_0x236b('0x3c')]('id',_0x236b('0x3e'))[_0x236b('0x3c')](LISTID[_0x236b('0x3f')](),'ListId')[_0x236b('0x3c')](_0x1bc8f3['id'][_0x236b('0x3f')](),_0x530e9b)['field'](_0x236b('0x3d'),_0x236b('0x47'))[_0x236b('0x3c')](_0x236b('0x3d'),_0x236b('0x3b'))[_0x236b('0x40')](_0x236b('0x41'))[_0x236b('0x42')](_0x236b('0x49'))['where'](_0x236b('0x43'),LISTID['toString']())['where'](_0x236b('0x4a'),squel[_0x236b('0x4b')](hopperContacts))[_0x236b('0x42')]('phone\x20IS\x20NOT\x20NULL')[_0x236b('0x42')](_0x236b('0x45'),squel['select']()['field'](_0x236b('0x4c'))['from'](_0x236b('0x4d'))[_0x236b('0x42')](_0x530e9b+_0x236b('0x46'),_0x1bc8f3['id'][_0x236b('0x3f')]()))[_0x236b('0x42')](_0x236b('0x45'),squel['select']()[_0x236b('0x3c')]('phone')[_0x236b('0x40')]('cm_hopper')[_0x236b('0x42')](_0x530e9b+_0x236b('0x46'),_0x1bc8f3['id'][_0x236b('0x3f')]())))[_0x236b('0x3f')]();return _0xd94256;};function _0x1b203a(_0x2354ea,_0x445f14){var _0x34cd8a=squel['insert']()['into'](_0x236b('0x38'))['fromQuery']([_0x236b('0x1e'),_0x236b('0x3a'),'ContactId',_0x236b('0x26'),_0x445f14,_0x236b('0x47'),'updatedAt'],squel['select']()[_0x236b('0x3c')](_0x236b('0x1e'),_0x236b('0x1e'))['field']('NOW()','scheduledAt')[_0x236b('0x3c')]('id',_0x236b('0x3e'))[_0x236b('0x3c')](LISTID['toString'](),_0x236b('0x26'))[_0x236b('0x3c')](_0x2354ea['id'][_0x236b('0x3f')](),_0x445f14)[_0x236b('0x3c')](_0x236b('0x3d'),_0x236b('0x47'))[_0x236b('0x3c')](_0x236b('0x3d'),_0x236b('0x3b'))[_0x236b('0x40')](_0x236b('0x41'))[_0x236b('0x42')]('deletedAt\x20IS\x20NULL')['where'](_0x236b('0x43'),LISTID[_0x236b('0x3f')]())[_0x236b('0x42')](_0x236b('0x4a'),squel[_0x236b('0x4b')](hopperContacts))[_0x236b('0x42')](_0x236b('0x44')))[_0x236b('0x3f')]();return _0x34cd8a;}function _0x50b97a(_0x66679a,_0x528cbe){var _0x414f25=squel[_0x236b('0x36')]()[_0x236b('0x37')](_0x236b('0x4e'))[_0x236b('0x39')]([_0x236b('0x1e'),_0x236b('0x3e'),_0x236b('0x26'),_0x528cbe,_0x236b('0x47'),_0x236b('0x3b')],squel[_0x236b('0x48')]()[_0x236b('0x3c')](_0x236b('0x1e'),_0x236b('0x1e'))[_0x236b('0x3c')]('id',_0x236b('0x3e'))[_0x236b('0x3c')](LISTID[_0x236b('0x3f')](),_0x236b('0x26'))[_0x236b('0x3c')](_0x66679a['id'][_0x236b('0x3f')](),_0x528cbe)[_0x236b('0x3c')]('NOW()',_0x236b('0x47'))[_0x236b('0x3c')](_0x236b('0x3d'),_0x236b('0x3b'))['from'](_0x236b('0x41'))['where'](_0x236b('0x49'))['where'](_0x236b('0x43'),LISTID[_0x236b('0x3f')]())['where'](_0x236b('0x4a'),squel[_0x236b('0x4b')](hopperContacts))[_0x236b('0x42')]('phone\x20IS\x20NOT\x20NULL'))[_0x236b('0x3f')]();return _0x414f25;}return db[_0x236b('0x4f')][_0x236b('0x50')]({'where':{'type':_0x236b('0x51')},'attributes':['id',_0x236b('0x52')],'include':[{'model':db[_0x236b('0x53')],'as':_0x236b('0x54'),'where':{'id':LISTID}}]})[_0x236b('0x2d')](function(_0x4f4e89){var _0x378037=[];if(_0x4f4e89){var _0x35dd84;for(var _0x29593f=0x0,_0x4b53b0;_0x29593f<_0x4f4e89[_0x236b('0x18')];_0x29593f+=0x1){_0x4b53b0=_0x4f4e89[_0x29593f][_0x236b('0x55')]({'plain':!![]});switch(_0x4b53b0[_0x236b('0x52')]){case _0x236b('0x56'):_0x378037[_0x236b('0x2e')](db[_0x236b('0x57')][_0x236b('0x58')](_0x4e7e6b(_0x4b53b0,_0x236b('0x59')))[_0x236b('0x2d')](function(){})[_0x236b('0x30')](_0x596bb8()));break;case _0x236b('0x5a'):_0x378037[_0x236b('0x2e')](db[_0x236b('0x57')]['query'](_0x1ef3a1(_0x4b53b0,_0x236b('0x59')))[_0x236b('0x2d')](function(){})['catch'](_0x596bb8()));break;default:_0x378037['push'](db[_0x236b('0x57')]['query'](_0x1b203a(_0x4b53b0,_0x236b('0x59')))['then'](function(){})[_0x236b('0x30')](_0x596bb8()));}}}return _0x378037;})['all']()['then'](function(){return db[_0x236b('0x4f')][_0x236b('0x50')]({'where':{'type':_0x236b('0x51')},'attributes':['id'],'include':[{'model':db[_0x236b('0x53')],'as':_0x236b('0x5b'),'where':{'id':LISTID}}]})[_0x236b('0x2d')](function(_0x2c162a){var _0x3ecd0d=[];if(_0x2c162a){var _0xf98dc2;for(var _0x11bee3=0x0,_0x33da71;_0x11bee3<_0x2c162a[_0x236b('0x18')];_0x11bee3+=0x1){_0x33da71=_0x2c162a[_0x11bee3][_0x236b('0x55')]({'plain':!![]});_0x3ecd0d[_0x236b('0x2e')](db['sequelize']['query'](_0x50b97a(_0x33da71,_0x236b('0x59')))['then'](function(){})['catch'](_0x596bb8()));}}return _0x3ecd0d;})[_0x236b('0x5c')]();})[_0x236b('0x2d')](function(){return db[_0x236b('0x5d')][_0x236b('0x50')]({'attributes':['id',_0x236b('0x52')],'include':[{'model':db['CmList'],'as':_0x236b('0x54'),'where':{'id':LISTID}}]})[_0x236b('0x2d')](function(_0x397289){var _0x56ba7a=[];if(_0x397289){for(var _0x3f3e3b=0x0,_0x2d20c9;_0x3f3e3b<_0x397289['length'];_0x3f3e3b+=0x1){_0x2d20c9=_0x397289[_0x3f3e3b]['get']({'plain':!![]});switch(_0x2d20c9[_0x236b('0x52')]){case'always':_0x56ba7a[_0x236b('0x2e')](db['sequelize'][_0x236b('0x58')](_0x4e7e6b(_0x2d20c9,_0x236b('0x5e')))[_0x236b('0x2d')](function(){})[_0x236b('0x30')](_0x596bb8()));break;case _0x236b('0x5a'):_0x56ba7a[_0x236b('0x2e')](db[_0x236b('0x57')][_0x236b('0x58')](_0x1ef3a1(_0x2d20c9,_0x236b('0x5e')))['then'](function(){})[_0x236b('0x30')](_0x596bb8()));break;default:_0x56ba7a[_0x236b('0x2e')](db[_0x236b('0x57')][_0x236b('0x58')](_0x1b203a(_0x2d20c9,_0x236b('0x5e')))[_0x236b('0x2d')](function(){})[_0x236b('0x30')](_0x596bb8()));}}}return _0x56ba7a;})[_0x236b('0x5c')]();})['then'](function(){return db[_0x236b('0x5d')]['findAll']({'attributes':['id'],'include':[{'model':db[_0x236b('0x53')],'as':_0x236b('0x5b'),'where':{'id':LISTID}}]})[_0x236b('0x2d')](function(_0x1994c7){var _0x22e859=[];if(_0x1994c7){for(var _0x234b63=0x0,_0x252331;_0x234b63<_0x1994c7[_0x236b('0x18')];_0x234b63+=0x1){_0x252331=_0x1994c7[_0x234b63][_0x236b('0x55')]({'plain':!![]});_0x22e859[_0x236b('0x2e')](db['sequelize'][_0x236b('0x58')](_0x50b97a(_0x252331,'CampaignId'))[_0x236b('0x2d')](function(){})[_0x236b('0x30')](_0x596bb8()));}}return _0x22e859;})[_0x236b('0x5c')]();})[_0x236b('0x30')](function(_0xc3a7da){logger[_0x236b('0x12')](_0x236b('0x5f'),_0x236b('0x60'),_0xc3a7da[_0x236b('0x32')]);});}var processPromises=function(_0x52e131){return BPromise['all'](promises)[_0x236b('0x2d')](function(_0x556700){})[_0x236b('0x30')](function(_0x3c4b8a){logger[_0x236b('0x12')](_0x236b('0x61'),JSON['stringify'](_0x3c4b8a));})[_0x236b('0x62')](function(){socket[_0x236b('0x63')]('contact:csv_'+SOCKET_TIMESTAMP,{'success':success,'errors':errors,'duplicates':duplicates,'rows':rows});promises=[];success=0x0;errors=0x0;duplicates=0x0;rows=[];if(_0x52e131){return _0x52e131[_0x236b('0x64')]();}});};var endCsv=function(){return BPromise[_0x236b('0x65')]()[_0x236b('0x2d')](function(){if(hopperContacts){return checkHopper();}})[_0x236b('0x2d')](function(){socket[_0x236b('0x63')](_0x236b('0x66')+SOCKET_TIMESTAMP,{'finished':!![],'success':success,'errors':errors,'duplicates':duplicates,'rows':rows});try{fs[_0x236b('0x67')](FILEPATH);}catch(_0x141381){logger['error'](_0x236b('0x68'),JSON['stringify'](_0x141381));}finally{process[_0x236b('0x69')](0x0);}});};process['on'](_0x236b('0x6a'),function(){logger[_0x236b('0x6b')](_0x236b('0x6c'));endCsv();});function main(){return BPromise[_0x236b('0x65')]()[_0x236b('0x2d')](function(){if(DUPLICATES){DUPLICATES=DUPLICATES[_0x236b('0x10')](',');return db['CmContact']['findAll']({'where':{'ListId':LISTID},'attributes':DUPLICATES,'raw':!![]});}})[_0x236b('0x2d')](function(_0x475e12){var _0x3eb4f4=fs[_0x236b('0x6d')](FILEPATH,{'highWaterMark':0xf*0x400*0x400});Papa[_0x236b('0x6e')](_0x3eb4f4,{'header':!![],'skipEmptyLines':!![],'step':function(_0x40dc4e,_0x22be05){total+=0x1;var _0x36bcb5=total;promises[_0x236b('0x2e')](checkRow(_0x40dc4e,_0x475e12,_0x36bcb5)['then'](function(){success+=0x1;})[_0x236b('0x30')](function(_0x39e279){if(_0x39e279[_0x236b('0x12')]){errors+=0x1;delete _0x39e279[_0x236b('0x12')];}else if(_0x39e279[_0x236b('0x29')]){duplicates+=0x1;delete _0x39e279['duplicate'];}rows['push'](_0x39e279);}));if(total%0xc8===0x0){_0x22be05[_0x236b('0x6f')]();return processPromises(_0x22be05);}},'complete':function(){return processPromises()[_0x236b('0x2d')](function(){logger[_0x236b('0x6b')](_0x236b('0x70'));endCsv();});},'error':function(_0x38483b,_0x210c8a){logger[_0x236b('0x6b')](_0x236b('0x71'),JSON[_0x236b('0x72')](_0x38483b));endCsv();}});})[_0x236b('0x30')](function(_0x4078a6){logger[_0x236b('0x12')](_0x236b('0x73'),JSON[_0x236b('0x72')](_0x4078a6));});}main();