Built motion from commit ffdca78c.|2.6.24
[motion2.git] / server / api / cmHopperFinal / cmHopperFinal.controller.js
index d338fff..2783f30 100644 (file)
@@ -15,4 +15,4 @@
 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                        *
 // *                                                                       *
 // *************************************************************************
-var _0xe6e9=['CampaignId\x20=\x20?','findOne','html-pdf','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','to-csv','ejs','lodash','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../mysqldb','status','end','json','count','offset','limit','set','Content-Range','apply','reject','save','update','then','destroy','sendStatus','error','stack','send','index','CmHopperFinal','rawAttributes','fieldName','type','key','model','name','query','intersection','attributes','length','hasOwnProperty','nolimit','order','filters','pick','merge','where','map','VIRTUAL','filter','options','includeAll','catch','show','params','keys','fields','include','find','body','uniqueid','countContactsQueueCampaignHopperFinal','findAll','COUNT','literal','`state`\x20=\x200,\x201,\x20null','noSuchContacts','sequelize','`state`\x20=\x203,\x201,\x20null','noAnswerContacts','`state`\x20=\x205,\x201,\x20null','busyContacts','congestionContacts','`state`\x20=\x2010\x20,\x201,\x20null','dropContacts','abandonedContacts','`state`\x20=\x2022,\x201,\x20null','reCallContacts','`state`\x20=\x2019,\x201,\x20null','answeringMachine','`state`\x20=\x208,\x201,\x20null','`state`\x20=\x2011\x20,\x201,\x20null','moveContactsQueueCampaignHopperFinal','insert','cm_hopper','fromQuery','phone','scheduledAt','ContactId','VoiceQueueId','select','field','ANY_VALUE(ContactId)','ANY_VALUE(ListId)','ListId','NOW()','updatedAt','from','cm_hopper_final','VoiceQueueId\x20=\x20?','toString','state\x20=\x20?','state','calleridnum\x20IS\x20NOT\x20NULL','calleridnum\x20NOT\x20IN\x20(?)','calleridnum','state\x20=\x204','moveContactsIvrCampaignHopperFinal','into','CampaignId','createdAt'];(function(_0x30f395,_0x3629b5){var _0x2ea0ee=function(_0x35a9af){while(--_0x35a9af){_0x30f395['push'](_0x30f395['shift']());}};_0x2ea0ee(++_0x3629b5);}(_0xe6e9,0x182));var _0x9e6e=function(_0x3c438e,_0x37bd4a){_0x3c438e=_0x3c438e-0x0;var _0x31892b=_0xe6e9[_0x3c438e];return _0x31892b;};'use strict';var pdf=require(_0x9e6e('0x0'));var emlformat=require(_0x9e6e('0x1'));var rimraf=require(_0x9e6e('0x2'));var zipdir=require('zip-dir');var jsonpatch=require(_0x9e6e('0x3'));var rp=require(_0x9e6e('0x4'));var moment=require(_0x9e6e('0x5'));var BPromise=require(_0x9e6e('0x6'));var Mustache=require(_0x9e6e('0x7'));var util=require('util');var path=require(_0x9e6e('0x8'));var sox=require(_0x9e6e('0x9'));var csv=require(_0x9e6e('0xa'));var ejs=require(_0x9e6e('0xb'));var fs=require('fs');var _=require(_0x9e6e('0xc'));var squel=require('squel');var crypto=require(_0x9e6e('0xd'));var jsforce=require(_0x9e6e('0xe'));var deskjs=require(_0x9e6e('0xf'));var toCsv=require(_0x9e6e('0xa'));var querystring=require(_0x9e6e('0x10'));var Papa=require(_0x9e6e('0x11'));var Redis=require('ioredis');var authService=require(_0x9e6e('0x12'));var qs=require(_0x9e6e('0x13'));var as=require(_0x9e6e('0x14'));var hardwareService=require(_0x9e6e('0x15'));var logger=require('../../config/logger')(_0x9e6e('0x16'));var utils=require(_0x9e6e('0x17'));var config=require('../../config/environment');var db=require(_0x9e6e('0x18'))['db'];function respondWithStatusCode(_0x2e431d,_0x1b85f1){_0x1b85f1=_0x1b85f1||0xcc;return function(_0x363f0c){if(_0x363f0c){return _0x2e431d['sendStatus'](_0x1b85f1);}return _0x2e431d[_0x9e6e('0x19')](_0x1b85f1)[_0x9e6e('0x1a')]();};}function respondWithResult(_0x1235ab,_0x2981d0){_0x2981d0=_0x2981d0||0xc8;return function(_0x3ade25){if(_0x3ade25){return _0x1235ab[_0x9e6e('0x19')](_0x2981d0)[_0x9e6e('0x1b')](_0x3ade25);}};}function respondWithFilteredResult(_0x6bc20c,_0x3080b1){return function(_0x2dbdba){if(_0x2dbdba){var _0x1941da=_0x2dbdba[_0x9e6e('0x1c')],_0x236850=_0x3080b1[_0x9e6e('0x1d')],_0x2e5472=_0x3080b1[_0x9e6e('0x1d')]+_0x3080b1[_0x9e6e('0x1e')],_0xc9fd3c;if(_0x2e5472>=_0x1941da){_0x2e5472=_0x1941da;_0xc9fd3c=0xc8;}else{_0xc9fd3c=0xce;}_0x6bc20c[_0x9e6e('0x19')](_0xc9fd3c);return _0x6bc20c[_0x9e6e('0x1f')](_0x9e6e('0x20'),_0x236850+'-'+_0x2e5472+'/'+_0x1941da)['json'](_0x2dbdba);}return null;};}function patchUpdates(_0x54ba62){return function(_0x5e956c){try{jsonpatch[_0x9e6e('0x21')](_0x5e956c,_0x54ba62,!![]);}catch(_0x4027ba){return BPromise[_0x9e6e('0x22')](_0x4027ba);}return _0x5e956c[_0x9e6e('0x23')]();};}function saveUpdates(_0x35dd6d,_0x3b9299){return function(_0x195727){if(_0x195727){return _0x195727[_0x9e6e('0x24')](_0x35dd6d)[_0x9e6e('0x25')](function(_0x434aa3){return _0x434aa3;});}return null;};}function removeEntity(_0x379da6,_0x3b3527){return function(_0x28ae35){if(_0x28ae35){return _0x28ae35[_0x9e6e('0x26')]()[_0x9e6e('0x25')](function(){_0x379da6[_0x9e6e('0x19')](0xcc)['end']();});}};}function handleEntityNotFound(_0x223fd4,_0x4202cd){return function(_0x3aee5c){if(!_0x3aee5c){_0x223fd4[_0x9e6e('0x27')](0x194);}return _0x3aee5c;};}function handleError(_0x5dc500,_0x5b1aad){_0x5b1aad=_0x5b1aad||0x1f4;return function(_0x1e9b87){logger[_0x9e6e('0x28')](_0x1e9b87[_0x9e6e('0x29')]);if(_0x1e9b87['name']){delete _0x1e9b87['name'];}_0x5dc500[_0x9e6e('0x19')](_0x5b1aad)[_0x9e6e('0x2a')](_0x1e9b87);};}exports[_0x9e6e('0x2b')]=function(_0x2bc8d5,_0x4d30c1){var _0x4d1616={},_0x188387={},_0x4abc8f={'count':0x0,'rows':[]};var _0x438a84=_['map'](db[_0x9e6e('0x2c')][_0x9e6e('0x2d')],function(_0x4a0c94){return{'name':_0x4a0c94[_0x9e6e('0x2e')],'type':_0x4a0c94[_0x9e6e('0x2f')][_0x9e6e('0x30')]};});_0x188387[_0x9e6e('0x31')]=_['map'](_0x438a84,_0x9e6e('0x32'));_0x188387['query']=_['keys'](_0x2bc8d5[_0x9e6e('0x33')]);_0x188387['filters']=_[_0x9e6e('0x34')](_0x188387[_0x9e6e('0x31')],_0x188387[_0x9e6e('0x33')]);_0x4d1616[_0x9e6e('0x35')]=_['intersection'](_0x188387[_0x9e6e('0x31')],qs['fields'](_0x2bc8d5[_0x9e6e('0x33')]['fields']));_0x4d1616['attributes']=_0x4d1616[_0x9e6e('0x35')][_0x9e6e('0x36')]?_0x4d1616[_0x9e6e('0x35')]:_0x188387['model'];if(!_0x2bc8d5[_0x9e6e('0x33')][_0x9e6e('0x37')](_0x9e6e('0x38'))){_0x4d1616['limit']=qs[_0x9e6e('0x1e')](_0x2bc8d5[_0x9e6e('0x33')][_0x9e6e('0x1e')]);_0x4d1616['offset']=qs['offset'](_0x2bc8d5['query'][_0x9e6e('0x1d')]);}_0x4d1616[_0x9e6e('0x39')]=qs['sort'](_0x2bc8d5[_0x9e6e('0x33')]['sort']);_0x4d1616['where']=qs[_0x9e6e('0x3a')](_[_0x9e6e('0x3b')](_0x2bc8d5[_0x9e6e('0x33')],_0x188387['filters']),_0x438a84);if(_0x2bc8d5[_0x9e6e('0x33')]['filter']){_0x4d1616['where']=_[_0x9e6e('0x3c')](_0x4d1616[_0x9e6e('0x3d')],{'$or':_[_0x9e6e('0x3e')](_0x438a84,function(_0x4c0e75){if(_0x4c0e75[_0x9e6e('0x2f')]!==_0x9e6e('0x3f')){var _0x2a7b0a={};_0x2a7b0a[_0x4c0e75[_0x9e6e('0x32')]]={'$like':'%'+_0x2bc8d5[_0x9e6e('0x33')][_0x9e6e('0x40')]+'%'};return _0x2a7b0a;}})});}_0x4d1616=_['merge']({},_0x4d1616,_0x2bc8d5[_0x9e6e('0x41')]);var _0x38f653={'where':_0x4d1616['where']};return db[_0x9e6e('0x2c')][_0x9e6e('0x1c')](_0x38f653)[_0x9e6e('0x25')](function(_0x361e7a){_0x4abc8f['count']=_0x361e7a;if(_0x2bc8d5['query'][_0x9e6e('0x42')]){_0x4d1616['include']=[{'all':!![]}];}return db['CmHopperFinal']['findAll'](_0x4d1616);})['then'](function(_0x5afa1b){_0x4abc8f['rows']=_0x5afa1b;return _0x4abc8f;})[_0x9e6e('0x25')](respondWithFilteredResult(_0x4d30c1,_0x4d1616))[_0x9e6e('0x43')](handleError(_0x4d30c1,null));};exports[_0x9e6e('0x44')]=function(_0x38d706,_0x2546b3){var _0x272461={'raw':!![],'where':{'id':_0x38d706[_0x9e6e('0x45')]['id']}},_0x4d8acd={};_0x4d8acd[_0x9e6e('0x31')]=_[_0x9e6e('0x46')](db[_0x9e6e('0x2c')][_0x9e6e('0x2d')]);_0x4d8acd['query']=_['keys'](_0x38d706['query']);_0x4d8acd[_0x9e6e('0x3a')]=_[_0x9e6e('0x34')](_0x4d8acd[_0x9e6e('0x31')],_0x4d8acd[_0x9e6e('0x33')]);_0x272461[_0x9e6e('0x35')]=_[_0x9e6e('0x34')](_0x4d8acd[_0x9e6e('0x31')],qs['fields'](_0x38d706[_0x9e6e('0x33')][_0x9e6e('0x47')]));_0x272461['attributes']=_0x272461[_0x9e6e('0x35')][_0x9e6e('0x36')]?_0x272461['attributes']:_0x4d8acd['model'];if(_0x38d706[_0x9e6e('0x33')][_0x9e6e('0x42')]){_0x272461[_0x9e6e('0x48')]=[{'all':!![]}];}_0x272461=_['merge']({},_0x272461,_0x38d706[_0x9e6e('0x41')]);return db[_0x9e6e('0x2c')][_0x9e6e('0x49')](_0x272461)[_0x9e6e('0x25')](handleEntityNotFound(_0x2546b3,null))[_0x9e6e('0x25')](respondWithResult(_0x2546b3,null))['catch'](handleError(_0x2546b3,null));};exports['describe']=function(_0x10aa43,_0x1c10a0){return db['CmHopperFinal']['describe']()[_0x9e6e('0x25')](respondWithResult(_0x1c10a0,null))[_0x9e6e('0x43')](handleError(_0x1c10a0,null));};exports['update']=function(_0x22f916,_0x44a54f){if(_0x22f916[_0x9e6e('0x4a')][_0x9e6e('0x4b')]){delete _0x22f916[_0x9e6e('0x4a')][_0x9e6e('0x4b')];}return db[_0x9e6e('0x2c')][_0x9e6e('0x49')]({'where':{'uniqueid':_0x22f916[_0x9e6e('0x45')]['id']}})[_0x9e6e('0x25')](handleEntityNotFound(_0x44a54f,null))[_0x9e6e('0x25')](saveUpdates(_0x22f916[_0x9e6e('0x4a')],null))[_0x9e6e('0x25')](respondWithResult(_0x44a54f,null))[_0x9e6e('0x43')](handleError(_0x44a54f,null));};exports[_0x9e6e('0x4c')]=function(_0xf5d3eb,_0x26d53f,_0x3512df){return db['CmHopperFinal'][_0x9e6e('0x4d')]({'raw':![],'where':{'VoiceQueueId':_0xf5d3eb['params']['id']},'attributes':[[db['sequelize']['fn'](_0x9e6e('0x4e'),db['sequelize']['fn']('IF',db['sequelize'][_0x9e6e('0x4f')](_0x9e6e('0x50')))),_0x9e6e('0x51')],[db['sequelize']['fn'](_0x9e6e('0x4e'),db['sequelize']['fn']('IF',db[_0x9e6e('0x52')]['literal'](_0x9e6e('0x53')))),_0x9e6e('0x54')],[db[_0x9e6e('0x52')]['fn'](_0x9e6e('0x4e'),db[_0x9e6e('0x52')]['fn']('IF',db[_0x9e6e('0x52')][_0x9e6e('0x4f')](_0x9e6e('0x55')))),_0x9e6e('0x56')],[db[_0x9e6e('0x52')]['fn']('COUNT',db['sequelize']['fn']('IF',db[_0x9e6e('0x52')][_0x9e6e('0x4f')]('`state`\x20=\x208,\x201,\x20null'))),_0x9e6e('0x57')],[db[_0x9e6e('0x52')]['fn'](_0x9e6e('0x4e'),db[_0x9e6e('0x52')]['fn']('IF',db[_0x9e6e('0x52')]['literal'](_0x9e6e('0x58')))),_0x9e6e('0x59')],[db[_0x9e6e('0x52')]['fn'](_0x9e6e('0x4e'),db['sequelize']['fn']('IF',db[_0x9e6e('0x52')][_0x9e6e('0x4f')]('`state`\x20=\x2011\x20,\x201,\x20null'))),_0x9e6e('0x5a')],[db[_0x9e6e('0x52')]['fn'](_0x9e6e('0x4e'),db[_0x9e6e('0x52')]['fn']('IF',db[_0x9e6e('0x52')][_0x9e6e('0x4f')](_0x9e6e('0x5b')))),_0x9e6e('0x5c')],[db[_0x9e6e('0x52')]['fn'](_0x9e6e('0x4e'),db['sequelize']['fn']('IF',db[_0x9e6e('0x52')]['literal'](_0x9e6e('0x5d')))),_0x9e6e('0x5e')]]})['then'](handleEntityNotFound(_0x26d53f,null))[_0x9e6e('0x25')](respondWithResult(_0x26d53f,null))[_0x9e6e('0x43')](handleError(_0x26d53f,null));};exports['countContactsIvrCampaignHopperFinal']=function(_0x4dacc0,_0x5d9905,_0x1fde16){return db['CmHopperFinal'][_0x9e6e('0x4d')]({'raw':![],'where':{'CampaignId':_0x4dacc0['params']['id']},'attributes':[[db[_0x9e6e('0x52')]['fn'](_0x9e6e('0x4e'),db[_0x9e6e('0x52')]['fn']('IF',db['sequelize'][_0x9e6e('0x4f')](_0x9e6e('0x50')))),'noSuchContacts'],[db[_0x9e6e('0x52')]['fn']('COUNT',db['sequelize']['fn']('IF',db[_0x9e6e('0x52')]['literal'](_0x9e6e('0x53')))),'noAnswerContacts'],[db[_0x9e6e('0x52')]['fn'](_0x9e6e('0x4e'),db[_0x9e6e('0x52')]['fn']('IF',db[_0x9e6e('0x52')][_0x9e6e('0x4f')](_0x9e6e('0x55')))),'busyContacts'],[db[_0x9e6e('0x52')]['fn'](_0x9e6e('0x4e'),db[_0x9e6e('0x52')]['fn']('IF',db['sequelize'][_0x9e6e('0x4f')](_0x9e6e('0x5f')))),_0x9e6e('0x57')],[db[_0x9e6e('0x52')]['fn']('COUNT',db[_0x9e6e('0x52')]['fn']('IF',db[_0x9e6e('0x52')][_0x9e6e('0x4f')](_0x9e6e('0x58')))),_0x9e6e('0x59')],[db[_0x9e6e('0x52')]['fn'](_0x9e6e('0x4e'),db[_0x9e6e('0x52')]['fn']('IF',db[_0x9e6e('0x52')][_0x9e6e('0x4f')](_0x9e6e('0x60')))),_0x9e6e('0x5a')],[db[_0x9e6e('0x52')]['fn'](_0x9e6e('0x4e'),db[_0x9e6e('0x52')]['fn']('IF',db['sequelize']['literal'](_0x9e6e('0x5b')))),'reCallContacts'],[db['sequelize']['fn'](_0x9e6e('0x4e'),db[_0x9e6e('0x52')]['fn']('IF',db['sequelize']['literal'](_0x9e6e('0x5d')))),_0x9e6e('0x5e')]]})[_0x9e6e('0x25')](handleEntityNotFound(_0x5d9905,null))[_0x9e6e('0x25')](respondWithResult(_0x5d9905,null))[_0x9e6e('0x43')](handleError(_0x5d9905,null));};exports[_0x9e6e('0x61')]=function(_0x1718f1,_0xba73a5,_0x5ab96e){return db['VoiceQueue'][_0x9e6e('0x49')]({'where':{'id':_0x1718f1['params']['id']}})[_0x9e6e('0x25')](handleEntityNotFound(_0xba73a5,null))[_0x9e6e('0x25')](function(_0x191a55){var _0x3445fb;if(_0x191a55){_0x3445fb=squel[_0x9e6e('0x62')]()['into'](_0x9e6e('0x63'))[_0x9e6e('0x64')]([_0x9e6e('0x65'),_0x9e6e('0x66'),_0x9e6e('0x67'),'ListId',_0x9e6e('0x68'),'createdAt','updatedAt'],squel[_0x9e6e('0x69')]()[_0x9e6e('0x6a')]('ANY_VALUE(calleridnum)',_0x9e6e('0x65'))[_0x9e6e('0x6a')]('NOW()','scheduledAt')[_0x9e6e('0x6a')](_0x9e6e('0x6b'),_0x9e6e('0x67'))[_0x9e6e('0x6a')](_0x9e6e('0x6c'),_0x9e6e('0x6d'))[_0x9e6e('0x6a')]('ANY_VALUE(VoiceQueueId)','VoiceQueueId')[_0x9e6e('0x6a')](_0x9e6e('0x6e'),'createdAt')[_0x9e6e('0x6a')](_0x9e6e('0x6e'),_0x9e6e('0x6f'))[_0x9e6e('0x70')](_0x9e6e('0x71'))['where'](_0x9e6e('0x72'),_0x1718f1[_0x9e6e('0x45')]['id'][_0x9e6e('0x73')]())['where'](_0x9e6e('0x74'),_0x1718f1[_0x9e6e('0x4a')][_0x9e6e('0x75')][_0x9e6e('0x73')]())['where'](_0x9e6e('0x76'))[_0x9e6e('0x3d')](_0x9e6e('0x77'),squel[_0x9e6e('0x69')]()[_0x9e6e('0x6a')](_0x9e6e('0x65'))[_0x9e6e('0x70')]('cm_hopper')['where']('VoiceQueueId\x20=\x20?',_0x1718f1[_0x9e6e('0x45')]['id'][_0x9e6e('0x73')]()))[_0x9e6e('0x3d')]('calleridnum\x20NOT\x20IN\x20(?)',squel[_0x9e6e('0x69')]()[_0x9e6e('0x6a')](_0x9e6e('0x78'))['from'](_0x9e6e('0x71'))[_0x9e6e('0x3d')](_0x9e6e('0x72'),_0x1718f1['params']['id'][_0x9e6e('0x73')]())[_0x9e6e('0x3d')](_0x9e6e('0x79')))['group'](_0x9e6e('0x67')))[_0x9e6e('0x73')]();return db[_0x9e6e('0x52')]['query'](_0x3445fb);}return[];})[_0x9e6e('0x25')](respondWithResult(_0xba73a5,null))[_0x9e6e('0x43')](handleError(_0xba73a5,null));};exports[_0x9e6e('0x7a')]=function(_0x3e1500,_0x3fe7d0,_0x177e63){return db['Campaign']['find']({'where':{'id':_0x3e1500[_0x9e6e('0x45')]['id']}})[_0x9e6e('0x25')](handleEntityNotFound(_0x3fe7d0,null))[_0x9e6e('0x25')](function(_0x4fefaa){var _0x5c20c0;if(_0x4fefaa){_0x5c20c0=squel['insert']()[_0x9e6e('0x7b')](_0x9e6e('0x63'))[_0x9e6e('0x64')](['phone','scheduledAt',_0x9e6e('0x67'),_0x9e6e('0x6d'),_0x9e6e('0x7c'),_0x9e6e('0x7d'),'updatedAt'],squel[_0x9e6e('0x69')]()[_0x9e6e('0x6a')]('ANY_VALUE(calleridnum)',_0x9e6e('0x65'))[_0x9e6e('0x6a')](_0x9e6e('0x6e'),'scheduledAt')[_0x9e6e('0x6a')](_0x9e6e('0x6b'),'ContactId')[_0x9e6e('0x6a')](_0x9e6e('0x6c'),'ListId')[_0x9e6e('0x6a')]('ANY_VALUE(CampaignId)',_0x9e6e('0x7c'))[_0x9e6e('0x6a')](_0x9e6e('0x6e'),_0x9e6e('0x7d'))['field'](_0x9e6e('0x6e'),'updatedAt')[_0x9e6e('0x70')](_0x9e6e('0x71'))[_0x9e6e('0x3d')](_0x9e6e('0x7e'),_0x3e1500[_0x9e6e('0x45')]['id']['toString']())[_0x9e6e('0x3d')](_0x9e6e('0x74'),_0x3e1500['body'][_0x9e6e('0x75')][_0x9e6e('0x73')]())[_0x9e6e('0x3d')](_0x9e6e('0x76'))[_0x9e6e('0x3d')](_0x9e6e('0x77'),squel[_0x9e6e('0x69')]()['field'](_0x9e6e('0x65'))[_0x9e6e('0x70')](_0x9e6e('0x63'))[_0x9e6e('0x3d')]('CampaignId\x20=\x20?',_0x3e1500[_0x9e6e('0x45')]['id'][_0x9e6e('0x73')]()))[_0x9e6e('0x3d')](_0x9e6e('0x77'),squel[_0x9e6e('0x69')]()[_0x9e6e('0x6a')]('calleridnum')[_0x9e6e('0x70')]('cm_hopper_final')['where'](_0x9e6e('0x7e'),_0x3e1500['params']['id'][_0x9e6e('0x73')]())[_0x9e6e('0x3d')](_0x9e6e('0x79')))['group'](_0x9e6e('0x67')))[_0x9e6e('0x73')]();return db['sequelize'][_0x9e6e('0x33')](_0x5c20c0);}return[];})[_0x9e6e('0x25')](respondWithResult(_0x3fe7d0,null))[_0x9e6e('0x43')](handleError(_0x3fe7d0,null));};exports['checkContactHopper']=function(_0x5dbf3a,_0xb235e6,_0xdd0e5c){return db['CmHopper'][_0x9e6e('0x7f')]({'where':{'VoiceQueueId':_0x5dbf3a[_0x9e6e('0x4a')][_0x9e6e('0x68')],'CampaignId':_0x5dbf3a[_0x9e6e('0x4a')][_0x9e6e('0x7c')],'ContactId':_0x5dbf3a[_0x9e6e('0x4a')]['ContactId']}})[_0x9e6e('0x25')](handleEntityNotFound(_0xb235e6,null))['then'](function(_0x315bb8){if(_0x315bb8){return _0x315bb8;}return null;})[_0x9e6e('0x25')](respondWithResult(_0xb235e6,null))[_0x9e6e('0x43')](handleError(_0xb235e6,null));};
\ No newline at end of file
+var _0x5d58=['calleridnum','state\x20=\x204','group','moveContactsIvrCampaignHopperFinal','Campaign','fromQuery','CampaignId','ANY_VALUE(CampaignId)','cm_hopper_final','CampaignId\x20=\x20?','checkContactHopper','CmHopper','findOne','moment','bluebird','util','path','to-csv','ejs','fs-extra','lodash','crypto','jsforce','papaparse','ioredis','../../components/auth/service','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','end','json','offset','undefined','limit','count','set','apply','then','error','stack','name','send','index','map','fieldName','type','key','model','query','filters','intersection','fields','attributes','hasOwnProperty','nolimit','order','sort','where','pick','filter','options','CmHopperFinal','include','findAll','rows','show','params','rawAttributes','keys','length','includeAll','merge','describe','catch','body','find','countContactsQueueCampaignHopperFinal','sequelize','COUNT','literal','`state`\x20=\x200,\x201,\x20null','noSuchContacts','`state`\x20=\x203,\x201,\x20null','noAnswerContacts','`state`\x20=\x205,\x201,\x20null','busyContacts','congestionContacts','dropContacts','`state`\x20=\x2011\x20,\x201,\x20null','abandonedContacts','reCallContacts','`state`\x20=\x2019,\x201,\x20null','answeringMachine','countContactsIvrCampaignHopperFinal','`state`\x20=\x2010\x20,\x201,\x20null','`state`\x20=\x2022,\x201,\x20null','moveContactsQueueCampaignHopperFinal','VoiceQueue','insert','into','cm_hopper','phone','scheduledAt','ContactId','ListId','VoiceQueueId','createdAt','updatedAt','select','field','ANY_VALUE(calleridnum)','NOW()','ANY_VALUE(ContactId)','ANY_VALUE(ListId)','ANY_VALUE(VoiceQueueId)','from','VoiceQueueId\x20=\x20?','toString','state\x20=\x20?','state','calleridnum\x20IS\x20NOT\x20NULL','calleridnum\x20NOT\x20IN\x20(?)'];(function(_0x12f036,_0x27e401){var _0xf0be1b=function(_0x4084c){while(--_0x4084c){_0x12f036['push'](_0x12f036['shift']());}};_0xf0be1b(++_0x27e401);}(_0x5d58,0x187));var _0x85d5=function(_0x2fd3e1,_0x87c44d){_0x2fd3e1=_0x2fd3e1-0x0;var _0x2ef737=_0x5d58[_0x2fd3e1];return _0x2ef737;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x85d5('0x0'));var BPromise=require(_0x85d5('0x1'));var Mustache=require('mustache');var util=require(_0x85d5('0x2'));var path=require(_0x85d5('0x3'));var sox=require('sox');var csv=require(_0x85d5('0x4'));var ejs=require(_0x85d5('0x5'));var fs=require('fs');var fs_extra=require(_0x85d5('0x6'));var _=require(_0x85d5('0x7'));var squel=require('squel');var crypto=require(_0x85d5('0x8'));var jsforce=require(_0x85d5('0x9'));var deskjs=require('desk.js');var toCsv=require(_0x85d5('0x4'));var querystring=require('querystring');var Papa=require(_0x85d5('0xa'));var Redis=require(_0x85d5('0xb'));var authService=require(_0x85d5('0xc'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x85d5('0xd'))(_0x85d5('0xe'));var utils=require(_0x85d5('0xf'));var config=require(_0x85d5('0x10'));var licenseUtil=require(_0x85d5('0x11'));var db=require(_0x85d5('0x12'))['db'];function respondWithStatusCode(_0x31409d,_0x5897af){_0x5897af=_0x5897af||0xcc;return function(_0x4bbf2a){if(_0x4bbf2a){return _0x31409d['sendStatus'](_0x5897af);}return _0x31409d[_0x85d5('0x13')](_0x5897af)[_0x85d5('0x14')]();};}function respondWithResult(_0x339d4f,_0x1704f0){_0x1704f0=_0x1704f0||0xc8;return function(_0x18a20c){if(_0x18a20c){return _0x339d4f[_0x85d5('0x13')](_0x1704f0)[_0x85d5('0x15')](_0x18a20c);}};}function respondWithFilteredResult(_0x586382,_0x18e977){return function(_0x2d7c95){if(_0x2d7c95){var _0x1621ed=typeof _0x18e977[_0x85d5('0x16')]===_0x85d5('0x17')&&typeof _0x18e977[_0x85d5('0x18')]===_0x85d5('0x17');var _0x12bef9=_0x2d7c95[_0x85d5('0x19')];var _0x17acb0=_0x1621ed?0x0:_0x18e977[_0x85d5('0x16')];var _0x432bd6=_0x1621ed?_0x2d7c95[_0x85d5('0x19')]:_0x18e977[_0x85d5('0x16')]+_0x18e977[_0x85d5('0x18')];var _0x26981b;if(_0x432bd6>=_0x12bef9){_0x432bd6=_0x12bef9;_0x26981b=0xc8;}else{_0x26981b=0xce;}_0x586382[_0x85d5('0x13')](_0x26981b);return _0x586382[_0x85d5('0x1a')]('Content-Range',_0x17acb0+'-'+_0x432bd6+'/'+_0x12bef9)[_0x85d5('0x15')](_0x2d7c95);}return null;};}function patchUpdates(_0x133fa9){return function(_0x5f5755){try{jsonpatch[_0x85d5('0x1b')](_0x5f5755,_0x133fa9,!![]);}catch(_0x1264ca){return BPromise['reject'](_0x1264ca);}return _0x5f5755['save']();};}function saveUpdates(_0x347337,_0x5a1b9a){return function(_0x2f2bae){if(_0x2f2bae){return _0x2f2bae['update'](_0x347337)[_0x85d5('0x1c')](function(_0x1f8d27){return _0x1f8d27;});}return null;};}function removeEntity(_0x560b3a,_0x4e11c4){return function(_0x4da71b){if(_0x4da71b){return _0x4da71b['destroy']()[_0x85d5('0x1c')](function(){_0x560b3a[_0x85d5('0x13')](0xcc)[_0x85d5('0x14')]();});}};}function handleEntityNotFound(_0x466bbd,_0x12fea3){return function(_0xef2405){if(!_0xef2405){_0x466bbd['sendStatus'](0x194);}return _0xef2405;};}function handleError(_0x7e9a11,_0x4f8c66){_0x4f8c66=_0x4f8c66||0x1f4;return function(_0x1b3fae){logger[_0x85d5('0x1d')](_0x1b3fae[_0x85d5('0x1e')]);if(_0x1b3fae['name']){delete _0x1b3fae[_0x85d5('0x1f')];}_0x7e9a11[_0x85d5('0x13')](_0x4f8c66)[_0x85d5('0x20')](_0x1b3fae);};}exports[_0x85d5('0x21')]=function(_0x4605c5,_0x56031f){var _0x1cbef1={},_0x476c8b={},_0x330f8a={'count':0x0,'rows':[]};var _0x22a961=_[_0x85d5('0x22')](db['CmHopperFinal']['rawAttributes'],function(_0x2ce7a9){return{'name':_0x2ce7a9[_0x85d5('0x23')],'type':_0x2ce7a9[_0x85d5('0x24')][_0x85d5('0x25')]};});_0x476c8b[_0x85d5('0x26')]=_['map'](_0x22a961,_0x85d5('0x1f'));_0x476c8b[_0x85d5('0x27')]=_['keys'](_0x4605c5['query']);_0x476c8b[_0x85d5('0x28')]=_[_0x85d5('0x29')](_0x476c8b['model'],_0x476c8b[_0x85d5('0x27')]);_0x1cbef1['attributes']=_[_0x85d5('0x29')](_0x476c8b[_0x85d5('0x26')],qs['fields'](_0x4605c5[_0x85d5('0x27')][_0x85d5('0x2a')]));_0x1cbef1[_0x85d5('0x2b')]=_0x1cbef1[_0x85d5('0x2b')]['length']?_0x1cbef1['attributes']:_0x476c8b[_0x85d5('0x26')];if(!_0x4605c5[_0x85d5('0x27')][_0x85d5('0x2c')](_0x85d5('0x2d'))){_0x1cbef1[_0x85d5('0x18')]=qs[_0x85d5('0x18')](_0x4605c5[_0x85d5('0x27')][_0x85d5('0x18')]);_0x1cbef1[_0x85d5('0x16')]=qs['offset'](_0x4605c5['query'][_0x85d5('0x16')]);}_0x1cbef1[_0x85d5('0x2e')]=qs[_0x85d5('0x2f')](_0x4605c5[_0x85d5('0x27')][_0x85d5('0x2f')]);_0x1cbef1[_0x85d5('0x30')]=qs[_0x85d5('0x28')](_[_0x85d5('0x31')](_0x4605c5['query'],_0x476c8b[_0x85d5('0x28')]),_0x22a961);if(_0x4605c5[_0x85d5('0x27')][_0x85d5('0x32')]){_0x1cbef1[_0x85d5('0x30')]=_['merge'](_0x1cbef1[_0x85d5('0x30')],{'$or':_[_0x85d5('0x22')](_0x22a961,function(_0x3282d3){if(_0x3282d3[_0x85d5('0x24')]!=='VIRTUAL'){var _0x34caed={};_0x34caed[_0x3282d3['name']]={'$like':'%'+_0x4605c5['query'][_0x85d5('0x32')]+'%'};return _0x34caed;}})});}_0x1cbef1=_['merge']({},_0x1cbef1,_0x4605c5[_0x85d5('0x33')]);var _0x5ddba7={'where':_0x1cbef1['where']};return db[_0x85d5('0x34')][_0x85d5('0x19')](_0x5ddba7)[_0x85d5('0x1c')](function(_0x1beffc){_0x330f8a[_0x85d5('0x19')]=_0x1beffc;if(_0x4605c5['query']['includeAll']){_0x1cbef1[_0x85d5('0x35')]=[{'all':!![]}];}return db[_0x85d5('0x34')][_0x85d5('0x36')](_0x1cbef1);})[_0x85d5('0x1c')](function(_0xdd8b3e){_0x330f8a[_0x85d5('0x37')]=_0xdd8b3e;return _0x330f8a;})['then'](respondWithFilteredResult(_0x56031f,_0x1cbef1))['catch'](handleError(_0x56031f,null));};exports[_0x85d5('0x38')]=function(_0x52c99b,_0xfbf466){var _0x18e94d={'raw':!![],'where':{'id':_0x52c99b[_0x85d5('0x39')]['id']}},_0x7dd430={};_0x7dd430[_0x85d5('0x26')]=_['keys'](db['CmHopperFinal'][_0x85d5('0x3a')]);_0x7dd430[_0x85d5('0x27')]=_[_0x85d5('0x3b')](_0x52c99b[_0x85d5('0x27')]);_0x7dd430[_0x85d5('0x28')]=_[_0x85d5('0x29')](_0x7dd430[_0x85d5('0x26')],_0x7dd430[_0x85d5('0x27')]);_0x18e94d[_0x85d5('0x2b')]=_[_0x85d5('0x29')](_0x7dd430[_0x85d5('0x26')],qs[_0x85d5('0x2a')](_0x52c99b[_0x85d5('0x27')][_0x85d5('0x2a')]));_0x18e94d[_0x85d5('0x2b')]=_0x18e94d[_0x85d5('0x2b')][_0x85d5('0x3c')]?_0x18e94d['attributes']:_0x7dd430['model'];if(_0x52c99b[_0x85d5('0x27')][_0x85d5('0x3d')]){_0x18e94d[_0x85d5('0x35')]=[{'all':!![]}];}_0x18e94d=_[_0x85d5('0x3e')]({},_0x18e94d,_0x52c99b[_0x85d5('0x33')]);return db[_0x85d5('0x34')]['find'](_0x18e94d)[_0x85d5('0x1c')](handleEntityNotFound(_0xfbf466,null))['then'](respondWithResult(_0xfbf466,null))['catch'](handleError(_0xfbf466,null));};exports[_0x85d5('0x3f')]=function(_0x13ab32,_0x12a03){return db[_0x85d5('0x34')][_0x85d5('0x3f')]()['then'](respondWithResult(_0x12a03,null))[_0x85d5('0x40')](handleError(_0x12a03,null));};exports['update']=function(_0x1f2ef9,_0xd8db57){if(_0x1f2ef9[_0x85d5('0x41')]['uniqueid']){delete _0x1f2ef9['body']['uniqueid'];}return db[_0x85d5('0x34')][_0x85d5('0x42')]({'where':{'uniqueid':_0x1f2ef9[_0x85d5('0x39')]['id']}})['then'](handleEntityNotFound(_0xd8db57,null))['then'](saveUpdates(_0x1f2ef9[_0x85d5('0x41')],null))[_0x85d5('0x1c')](respondWithResult(_0xd8db57,null))[_0x85d5('0x40')](handleError(_0xd8db57,null));};exports[_0x85d5('0x43')]=function(_0x4b2dce,_0x3f69ea,_0x29442a){return db[_0x85d5('0x34')][_0x85d5('0x36')]({'raw':![],'where':{'VoiceQueueId':_0x4b2dce[_0x85d5('0x39')]['id']},'attributes':[[db[_0x85d5('0x44')]['fn'](_0x85d5('0x45'),db[_0x85d5('0x44')]['fn']('IF',db[_0x85d5('0x44')][_0x85d5('0x46')](_0x85d5('0x47')))),_0x85d5('0x48')],[db[_0x85d5('0x44')]['fn'](_0x85d5('0x45'),db[_0x85d5('0x44')]['fn']('IF',db['sequelize'][_0x85d5('0x46')](_0x85d5('0x49')))),_0x85d5('0x4a')],[db[_0x85d5('0x44')]['fn']('COUNT',db[_0x85d5('0x44')]['fn']('IF',db['sequelize'][_0x85d5('0x46')](_0x85d5('0x4b')))),_0x85d5('0x4c')],[db[_0x85d5('0x44')]['fn']('COUNT',db[_0x85d5('0x44')]['fn']('IF',db['sequelize']['literal']('`state`\x20=\x208,\x201,\x20null'))),_0x85d5('0x4d')],[db[_0x85d5('0x44')]['fn'](_0x85d5('0x45'),db[_0x85d5('0x44')]['fn']('IF',db[_0x85d5('0x44')]['literal']('`state`\x20=\x2010\x20,\x201,\x20null'))),_0x85d5('0x4e')],[db[_0x85d5('0x44')]['fn'](_0x85d5('0x45'),db[_0x85d5('0x44')]['fn']('IF',db['sequelize'][_0x85d5('0x46')](_0x85d5('0x4f')))),_0x85d5('0x50')],[db['sequelize']['fn']('COUNT',db[_0x85d5('0x44')]['fn']('IF',db[_0x85d5('0x44')][_0x85d5('0x46')]('`state`\x20=\x2022,\x201,\x20null'))),_0x85d5('0x51')],[db[_0x85d5('0x44')]['fn'](_0x85d5('0x45'),db[_0x85d5('0x44')]['fn']('IF',db['sequelize'][_0x85d5('0x46')](_0x85d5('0x52')))),_0x85d5('0x53')]]})['then'](handleEntityNotFound(_0x3f69ea,null))[_0x85d5('0x1c')](respondWithResult(_0x3f69ea,null))[_0x85d5('0x40')](handleError(_0x3f69ea,null));};exports[_0x85d5('0x54')]=function(_0x561bde,_0x34aa42,_0x1c3e2c){return db['CmHopperFinal'][_0x85d5('0x36')]({'raw':![],'where':{'CampaignId':_0x561bde['params']['id']},'attributes':[[db[_0x85d5('0x44')]['fn']('COUNT',db[_0x85d5('0x44')]['fn']('IF',db[_0x85d5('0x44')][_0x85d5('0x46')](_0x85d5('0x47')))),'noSuchContacts'],[db[_0x85d5('0x44')]['fn'](_0x85d5('0x45'),db[_0x85d5('0x44')]['fn']('IF',db[_0x85d5('0x44')][_0x85d5('0x46')](_0x85d5('0x49')))),_0x85d5('0x4a')],[db[_0x85d5('0x44')]['fn']('COUNT',db['sequelize']['fn']('IF',db[_0x85d5('0x44')]['literal'](_0x85d5('0x4b')))),_0x85d5('0x4c')],[db['sequelize']['fn']('COUNT',db[_0x85d5('0x44')]['fn']('IF',db[_0x85d5('0x44')][_0x85d5('0x46')]('`state`\x20=\x208,\x201,\x20null'))),_0x85d5('0x4d')],[db[_0x85d5('0x44')]['fn'](_0x85d5('0x45'),db[_0x85d5('0x44')]['fn']('IF',db['sequelize']['literal'](_0x85d5('0x55')))),'dropContacts'],[db['sequelize']['fn'](_0x85d5('0x45'),db[_0x85d5('0x44')]['fn']('IF',db[_0x85d5('0x44')]['literal']('`state`\x20=\x2011\x20,\x201,\x20null'))),_0x85d5('0x50')],[db[_0x85d5('0x44')]['fn'](_0x85d5('0x45'),db['sequelize']['fn']('IF',db[_0x85d5('0x44')][_0x85d5('0x46')](_0x85d5('0x56')))),_0x85d5('0x51')],[db[_0x85d5('0x44')]['fn'](_0x85d5('0x45'),db[_0x85d5('0x44')]['fn']('IF',db[_0x85d5('0x44')]['literal']('`state`\x20=\x2019,\x201,\x20null'))),_0x85d5('0x53')]]})[_0x85d5('0x1c')](handleEntityNotFound(_0x34aa42,null))[_0x85d5('0x1c')](respondWithResult(_0x34aa42,null))['catch'](handleError(_0x34aa42,null));};exports[_0x85d5('0x57')]=function(_0x1fdefb,_0x496586,_0x2dbd18){return db[_0x85d5('0x58')][_0x85d5('0x42')]({'where':{'id':_0x1fdefb[_0x85d5('0x39')]['id']}})[_0x85d5('0x1c')](handleEntityNotFound(_0x496586,null))['then'](function(_0x35ba15){var _0x1b96eb;if(_0x35ba15){_0x1b96eb=squel[_0x85d5('0x59')]()[_0x85d5('0x5a')](_0x85d5('0x5b'))['fromQuery']([_0x85d5('0x5c'),_0x85d5('0x5d'),_0x85d5('0x5e'),_0x85d5('0x5f'),_0x85d5('0x60'),_0x85d5('0x61'),_0x85d5('0x62')],squel[_0x85d5('0x63')]()[_0x85d5('0x64')](_0x85d5('0x65'),'phone')[_0x85d5('0x64')](_0x85d5('0x66'),_0x85d5('0x5d'))[_0x85d5('0x64')](_0x85d5('0x67'),_0x85d5('0x5e'))['field'](_0x85d5('0x68'),'ListId')['field'](_0x85d5('0x69'),_0x85d5('0x60'))[_0x85d5('0x64')](_0x85d5('0x66'),_0x85d5('0x61'))[_0x85d5('0x64')](_0x85d5('0x66'),_0x85d5('0x62'))[_0x85d5('0x6a')]('cm_hopper_final')[_0x85d5('0x30')](_0x85d5('0x6b'),_0x1fdefb[_0x85d5('0x39')]['id'][_0x85d5('0x6c')]())[_0x85d5('0x30')](_0x85d5('0x6d'),_0x1fdefb[_0x85d5('0x41')][_0x85d5('0x6e')][_0x85d5('0x6c')]())[_0x85d5('0x30')](_0x85d5('0x6f'))[_0x85d5('0x30')](_0x85d5('0x70'),squel[_0x85d5('0x63')]()[_0x85d5('0x64')]('phone')['from'](_0x85d5('0x5b'))['where'](_0x85d5('0x6b'),_0x1fdefb[_0x85d5('0x39')]['id'][_0x85d5('0x6c')]()))[_0x85d5('0x30')](_0x85d5('0x70'),squel[_0x85d5('0x63')]()[_0x85d5('0x64')](_0x85d5('0x71'))[_0x85d5('0x6a')]('cm_hopper_final')[_0x85d5('0x30')](_0x85d5('0x6b'),_0x1fdefb['params']['id'][_0x85d5('0x6c')]())['where'](_0x85d5('0x72')))[_0x85d5('0x73')](_0x85d5('0x5e')))[_0x85d5('0x6c')]();return db['sequelize'][_0x85d5('0x27')](_0x1b96eb);}return[];})[_0x85d5('0x1c')](respondWithResult(_0x496586,null))['catch'](handleError(_0x496586,null));};exports[_0x85d5('0x74')]=function(_0x14e4e8,_0x57f26b,_0x45b1e2){return db[_0x85d5('0x75')][_0x85d5('0x42')]({'where':{'id':_0x14e4e8['params']['id']}})[_0x85d5('0x1c')](handleEntityNotFound(_0x57f26b,null))[_0x85d5('0x1c')](function(_0x2dacf7){var _0x387a3b;if(_0x2dacf7){_0x387a3b=squel[_0x85d5('0x59')]()[_0x85d5('0x5a')]('cm_hopper')[_0x85d5('0x76')]([_0x85d5('0x5c'),'scheduledAt',_0x85d5('0x5e'),'ListId',_0x85d5('0x77'),_0x85d5('0x61'),_0x85d5('0x62')],squel['select']()[_0x85d5('0x64')](_0x85d5('0x65'),_0x85d5('0x5c'))[_0x85d5('0x64')](_0x85d5('0x66'),'scheduledAt')[_0x85d5('0x64')](_0x85d5('0x67'),_0x85d5('0x5e'))[_0x85d5('0x64')]('ANY_VALUE(ListId)',_0x85d5('0x5f'))[_0x85d5('0x64')](_0x85d5('0x78'),'CampaignId')[_0x85d5('0x64')]('NOW()',_0x85d5('0x61'))[_0x85d5('0x64')]('NOW()','updatedAt')[_0x85d5('0x6a')](_0x85d5('0x79'))[_0x85d5('0x30')](_0x85d5('0x7a'),_0x14e4e8[_0x85d5('0x39')]['id'][_0x85d5('0x6c')]())[_0x85d5('0x30')](_0x85d5('0x6d'),_0x14e4e8['body'][_0x85d5('0x6e')][_0x85d5('0x6c')]())[_0x85d5('0x30')]('calleridnum\x20IS\x20NOT\x20NULL')[_0x85d5('0x30')](_0x85d5('0x70'),squel['select']()[_0x85d5('0x64')](_0x85d5('0x5c'))[_0x85d5('0x6a')](_0x85d5('0x5b'))[_0x85d5('0x30')](_0x85d5('0x7a'),_0x14e4e8[_0x85d5('0x39')]['id']['toString']()))[_0x85d5('0x30')](_0x85d5('0x70'),squel[_0x85d5('0x63')]()[_0x85d5('0x64')]('calleridnum')[_0x85d5('0x6a')](_0x85d5('0x79'))[_0x85d5('0x30')](_0x85d5('0x7a'),_0x14e4e8[_0x85d5('0x39')]['id']['toString']())['where'](_0x85d5('0x72')))['group'](_0x85d5('0x5e')))[_0x85d5('0x6c')]();return db[_0x85d5('0x44')][_0x85d5('0x27')](_0x387a3b);}return[];})[_0x85d5('0x1c')](respondWithResult(_0x57f26b,null))[_0x85d5('0x40')](handleError(_0x57f26b,null));};exports[_0x85d5('0x7b')]=function(_0x48553d,_0xedb32d,_0x5366bc){return db[_0x85d5('0x7c')][_0x85d5('0x7d')]({'where':{'VoiceQueueId':_0x48553d[_0x85d5('0x41')]['VoiceQueueId'],'CampaignId':_0x48553d[_0x85d5('0x41')][_0x85d5('0x77')],'ContactId':_0x48553d[_0x85d5('0x41')]['ContactId']}})['then'](handleEntityNotFound(_0xedb32d,null))[_0x85d5('0x1c')](function(_0x428fd4){if(_0x428fd4){return _0x428fd4;}return null;})['then'](respondWithResult(_0xedb32d,null))[_0x85d5('0x40')](handleError(_0xedb32d,null));};
\ No newline at end of file