Built motion from commit 775e2a94.|2.6.3
[motion2.git] / server / services / routing / server / index.js
index a23bbd8..1641095 100644 (file)
@@ -15,4 +15,4 @@
 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                        *
 // *                                                                       *
 // *************************************************************************
-var _0x5b8c=['rules','message','interaction','applications','isArray','length','existsSync','app','.js','toLowerCase','autoreply','split','push','join','dialogflow','appdata','amazonlex','slice','tag','TagId','%s:%s:%s','./interval','condition','intervals','./applications/','consequence','info','Push\x20new\x20rule','on\x20interval','\x20|\x20','error','execute','Applications\x20executed','matchPath','complete','No\x20applications\x20to\x20execute','stack','routing\x20is\x20empty','channel','emit','end','QueueReport','UserId','message\x20is\x20empty','agent','agents','busy','busyQueue','hasOwnProperty','capacity','CurrentCapacity','updateRealtime','agent\x20not\x20found','chatQueues','available','loggedIn','name','waiting','mailQueues','paused','openchannelQueues','smsQueues','faxQueues','whatsappQueues','chatQueuesWaitingInteractions','values','mailQueuesWaitingInteractions','openchannelQueuesWaitingInteractions','smsQueuesWaitingInteractions','faxQueuesWaitingInteractions','whatsappQueuesWaitingInteractions','server','stringify','log','Routing\x20RPC\x20server\x20listening\x20on\x20127.0.0.1:%d!','RPC\x20listening\x20on\x20port:','lodash','util','path','jayson/promise','bluebird','uuid','../../../config/environment','../../../config/logger','../rpc/openchannelQueueReport','../rpc/mailQueueReport','../rpc/chatQueueReport','../rpc/smsQueueReport','../rpc/faxQueueReport','../rpc/whatsappQueueReport','../lib/rule-engine','format','%s.%s.%s','isNil','IntervalId','Intervals','map','interval','listen'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x5b8c,0x112));var _0xc5b8=function(_0x19df8e,_0xc8482){_0x19df8e=_0x19df8e-0x0;var _0x378598=_0x5b8c[_0x19df8e];return _0x378598;};'use strict';var _=require(_0xc5b8('0x0'));var util=require(_0xc5b8('0x1'));var path=require(_0xc5b8('0x2'));var fs=require('fs');var jayson=require(_0xc5b8('0x3'));var BPromise=require(_0xc5b8('0x4'));var uuid=require(_0xc5b8('0x5'));var config=require(_0xc5b8('0x6'));var logger=require(_0xc5b8('0x7'))('routing');var rpc={'openchannelQueueReport':require(_0xc5b8('0x8')),'mailQueueReport':require(_0xc5b8('0x9')),'chatQueueReport':require(_0xc5b8('0xa')),'smsQueueReport':require(_0xc5b8('0xb')),'faxQueueReport':require(_0xc5b8('0xc')),'whatsappQueueReport':require(_0xc5b8('0xd'))};var RuleEngine=require(_0xc5b8('0xe'));function getId(_0x333fb5,_0x580830,_0x1132bc){return util[_0xc5b8('0xf')](_0xc5b8('0x10'),_0x333fb5,_0x580830||0x0,_0x1132bc||0x0);}function getIntervals(_0x5d8966,_0x296c94){var _0x1f508e=[];if(!_[_0xc5b8('0x11')](_0x296c94[_0xc5b8('0x12')])&&!_['isNil'](_0x5d8966[_0x296c94[_0xc5b8('0x12')]])&&!_[_0xc5b8('0x11')](_0x5d8966[_0x296c94[_0xc5b8('0x12')]][_0xc5b8('0x13')])){_0x1f508e=_[_0xc5b8('0x14')](_0x5d8966[_0x296c94[_0xc5b8('0x12')]]['Intervals'],_0xc5b8('0x15'));}else if(!_[_0xc5b8('0x11')](_0x296c94['interval'])){_0x1f508e=[_0x296c94[_0xc5b8('0x15')]];}return _0x1f508e;}exports[_0xc5b8('0x16')]=function(_0x375c23){_0x375c23[_0xc5b8('0x17')]={};return new BPromise(function(_0xfff7b6,_0x2d13b3){var _0x1e9611={'Start':function(_0x2c647e){var _0x33c459=this;return new Promise(function(_0x46c126,_0x64d51e){if(_0x2c647e){try{var _0x3c6cdc=[];var _0x59c639=getId(_0x2c647e['channel'],_0x2c647e[_0xc5b8('0x18')]?_0x2c647e[_0xc5b8('0x18')]['id']:0x0,_0x2c647e[_0xc5b8('0x19')]?_0x2c647e['interaction']['id']:0x0);if(_0x2c647e[_0xc5b8('0x1a')]&&_[_0xc5b8('0x1b')](_0x2c647e[_0xc5b8('0x1a')])&&_0x2c647e[_0xc5b8('0x1a')][_0xc5b8('0x1c')]){for(var _0x26d9d=0x0;_0x26d9d<_0x2c647e[_0xc5b8('0x1a')][_0xc5b8('0x1c')];_0x26d9d+=0x1){var _0x34dc0e=_0x2c647e[_0xc5b8('0x1a')][_0x26d9d];if(fs[_0xc5b8('0x1d')](path['join'](__dirname,'applications',_0x34dc0e[_0xc5b8('0x1e')]+_0xc5b8('0x1f')))){var _0x5e9541=[];switch(_0x34dc0e['app'][_0xc5b8('0x20')]()){case _0xc5b8('0x21'):var _0x2b4a07=_0x34dc0e['appdata'][_0xc5b8('0x22')](',');_0x5e9541['push'](_0x2b4a07[0x0]);_0x5e9541[_0xc5b8('0x23')](_0x2b4a07['slice'](0x1,_0x2b4a07[_0xc5b8('0x1c')])[_0xc5b8('0x24')](','));break;case _0xc5b8('0x25'):var _0x619d43=_0x34dc0e[_0xc5b8('0x26')][_0xc5b8('0x22')](',');_0x5e9541['push'](_0x619d43[0x0]);_0x5e9541[_0xc5b8('0x23')](_0x619d43[0x1]);_0x5e9541['push'](_0x619d43['slice'](0x2,_0x619d43['length'])[_0xc5b8('0x24')](','));break;case _0xc5b8('0x27'):var _0x12bdbf=_0x34dc0e[_0xc5b8('0x26')][_0xc5b8('0x22')](',');_0x5e9541[_0xc5b8('0x23')](_0x12bdbf[0x0]);_0x5e9541[_0xc5b8('0x23')](_0x12bdbf[0x1]);_0x5e9541['push'](_0x12bdbf[0x2]);_0x5e9541[_0xc5b8('0x23')](_0x12bdbf[0x3]);_0x5e9541[_0xc5b8('0x23')](_0x12bdbf[_0xc5b8('0x28')](0x4,_0x12bdbf['length'])['join'](','));break;case'message':_0x5e9541[_0xc5b8('0x23')](_0x34dc0e[_0xc5b8('0x26')]);break;case _0xc5b8('0x29'):_0x5e9541['push'](_0x34dc0e[_0xc5b8('0x2a')]);_0x5e9541[_0xc5b8('0x23')](_0x34dc0e[_0xc5b8('0x26')]);break;default:_0x5e9541=_[_0xc5b8('0x11')](_0x34dc0e[_0xc5b8('0x26')])?[]:_0x34dc0e[_0xc5b8('0x26')][_0xc5b8('0x22')](',');}var _0xbe237={'id':util[_0xc5b8('0xf')](_0xc5b8('0x2b'),_0x59c639,_0x34dc0e['id'],_0x34dc0e[_0xc5b8('0x1e')]),'condition':require(_0xc5b8('0x2c'))[_0xc5b8('0x2d')](_0x59c639,getIntervals(_0x375c23[_0xc5b8('0x2e')],_0x34dc0e),_0x375c23),'consequence':require(_0xc5b8('0x2f')+_0x34dc0e['app'])[_0xc5b8('0x30')](_0x59c639,_0x5e9541,_0x375c23,_0x2c647e),'p':_0x34dc0e['priority']||0x0};logger[_0xc5b8('0x31')](_0xc5b8('0x32'),_0xbe237['id'],_0xc5b8('0x33'),getIntervals(_0x375c23[_0xc5b8('0x2e')],_0x34dc0e)['join'](_0xc5b8('0x34')));_0x3c6cdc[_0xc5b8('0x23')](_0xbe237);}else{logger[_0xc5b8('0x35')]('Please\x20create\x20a\x20new\x20file\x20under',path['join'](__dirname,'applications',_0x34dc0e[_0xc5b8('0x1e')]+'.js'));}}_0x375c23[_0xc5b8('0x17')][_0x59c639]=new RuleEngine(_0x3c6cdc);_0x375c23[_0xc5b8('0x17')][_0x59c639][_0xc5b8('0x36')](_0x2c647e,function(_0x283d50){logger[_0xc5b8('0x31')](_0xc5b8('0x37'),JSON['stringify'](_0x283d50[_0xc5b8('0x38')]));if(_0x375c23[_0xc5b8('0x17')][_0x59c639]){_0x375c23[_0xc5b8('0x17')][_0x59c639]['emit'](_0xc5b8('0x39'));}});return _0x46c126({'code':0xc8,'message':_0x2c647e});}else{logger[_0xc5b8('0x31')](_0xc5b8('0x3a'));return _0x46c126({'code':0xc8,'message':_0x2c647e});}}catch(_0x147788){logger[_0xc5b8('0x35')](_0x147788[_0xc5b8('0x3b')]);return _0x64d51e(_0x33c459[_0xc5b8('0x35')](0x1f4,_0x147788));}}return _0x64d51e(_0xc5b8('0x3c'));});},'AcceptMessage':function(_0x4fab5c){var _0x5d2dc6=this;return new Promise(function(_0x43554a,_0x519734){if(_0x4fab5c['message']&&_0x4fab5c['message']['id']){try{var _0x181d99=getId(_0x4fab5c[_0xc5b8('0x3d')],_0x4fab5c['message']?_0x4fab5c[_0xc5b8('0x18')]['id']:0x0,_0x4fab5c['interaction']?_0x4fab5c[_0xc5b8('0x19')]['id']:0x0);if(_0x375c23[_0xc5b8('0x17')][_0x181d99]){_0x375c23['rules'][_0x181d99][_0xc5b8('0x3e')](_0xc5b8('0x3f'));if(rpc[_0x4fab5c[_0xc5b8('0x3d')]+_0xc5b8('0x40')]){rpc[_0x4fab5c[_0xc5b8('0x3d')]+_0xc5b8('0x40')]['update'](_0x181d99,{'UserId':_0x4fab5c['message'][_0xc5b8('0x41')]})['catch'](function(_0x2838d5){logger[_0xc5b8('0x35')]('error\x20update\x20queue\x20report');});}}return _0x43554a({'code':0xc8,'message':_0x4fab5c});}catch(_0x565683){logger[_0xc5b8('0x35')](_0x565683[_0xc5b8('0x3b')]);return _0x519734(_0x5d2dc6[_0xc5b8('0x35')](0x1f4,_0x565683));}}logger['error'](_0xc5b8('0x42'));return _0x519734(_0x5d2dc6[_0xc5b8('0x35')](0x1f4,'message\x20is\x20empty'));});},'RejectMessage':function(_0xa69906){var _0x339fac=this;return new Promise(function(_0xece42b,_0x39c12e){if(_0xa69906[_0xc5b8('0x43')]&&_0xa69906[_0xc5b8('0x43')]['id']){try{if(_0x375c23[_0xc5b8('0x44')][_0xa69906[_0xc5b8('0x43')]['id']]){_0x375c23[_0xc5b8('0x44')][_0xa69906[_0xc5b8('0x43')]['id']][_0xc5b8('0x45')]=![];_0x375c23[_0xc5b8('0x44')][_0xa69906[_0xc5b8('0x43')]['id']][_0xc5b8('0x46')]=undefined;}return _0xece42b({'code':0xc8,'message':_0xa69906});}catch(_0x27c675){logger[_0xc5b8('0x35')](_0x27c675[_0xc5b8('0x3b')]);return _0x39c12e(_0x339fac['error'](0x1f4,_0x27c675));}}logger[_0xc5b8('0x35')](_0xc5b8('0x42'));return _0x39c12e(_0x339fac[_0xc5b8('0x35')](0x1f4,'message\x20is\x20empty'));});},'AbandonInteraction':function(_0x213fc3){var _0x3de859=this;return new Promise(function(_0x380c72,_0x1e5db6){if(_0x213fc3['channel']&&_0x213fc3[_0xc5b8('0x19')]&&_0x213fc3['interaction']['id']){try{var _0x25571c=getId(_0x213fc3[_0xc5b8('0x3d')],_0x213fc3['message']?_0x213fc3[_0xc5b8('0x18')]['id']:0x0,_0x213fc3[_0xc5b8('0x19')]?_0x213fc3[_0xc5b8('0x19')]['id']:0x0);if(_0x375c23['rules'][_0x25571c]){_0x375c23[_0xc5b8('0x17')][_0x25571c]['emit'](_0xc5b8('0x3f'));}return _0x380c72({'code':0xc8,'message':_0x213fc3});}catch(_0x1a32d4){logger[_0xc5b8('0x35')](_0x1a32d4[_0xc5b8('0x3b')]);return _0x1e5db6(_0x3de859['error'](0x1f4,_0x1a32d4));}}logger['error'](_0xc5b8('0x42'));return _0x1e5db6(_0x3de859[_0xc5b8('0x35')](0x1f4,_0xc5b8('0x42')));});},'AgentCapacity':function(_0x1a4e1f){var _0x39e24f=this;return new Promise(function(_0x391bf4,_0x4273da){if(_0x375c23[_0xc5b8('0x44')][_0xc5b8('0x47')](_0x1a4e1f['id'])){for(var _0x203804 in _0x1a4e1f[_0xc5b8('0x48')]){if(_0x1a4e1f[_0xc5b8('0x48')]['hasOwnProperty'](_0x203804)){if(_0x375c23[_0xc5b8('0x44')][_0x1a4e1f['id']][_0xc5b8('0x47')](_0x203804+_0xc5b8('0x49'))){_0x375c23[_0xc5b8('0x44')][_0x1a4e1f['id']][_0x203804+_0xc5b8('0x49')]=parseInt(_0x1a4e1f[_0xc5b8('0x48')][_0x203804],0xa);}}}_0x375c23[_0xc5b8('0x44')][_0x1a4e1f['id']][_0xc5b8('0x4a')]();return _0x391bf4({'code':0xc8,'message':_0x375c23[_0xc5b8('0x44')][_0x1a4e1f['id']]});}else{return _0x4273da(_0x39e24f[_0xc5b8('0x35')](0x1f4,_0xc5b8('0x4b')));}});},'Agents':function(_0x42c5d1){return new Promise(function(_0x5e2e28,_0x2c5a54){var _0x382111=_['values'](_0x375c23[_0xc5b8('0x44')]);_0x5e2e28({'count':_0x382111['length'],'rows':_0x382111});});},'ChatQueues':function(_0x7f9676){return new Promise(function(_0x5390e7,_0x10a431){var _0x11257e=[];for(var _0x5a6ea0 in _0x375c23['chatQueues']){if(_0x375c23[_0xc5b8('0x4c')][_0xc5b8('0x47')](_0x5a6ea0)){var _0xadd252=_0x375c23[_0xc5b8('0x4c')][_0x5a6ea0];var _0x152819={'id':_0xadd252['id'],'available':_0xadd252[_0xc5b8('0x4d')],'loggedIn':_0xadd252[_0xc5b8('0x4e')],'name':_0xadd252[_0xc5b8('0x4f')],'paused':_0xadd252['paused'],'waiting':_0xadd252[_0xc5b8('0x50')]};_0x11257e[_0xc5b8('0x23')](_0x152819);}}_0x5390e7({'count':_0x11257e[_0xc5b8('0x1c')],'rows':_0x11257e});});},'MailQueues':function(_0x426637){return new Promise(function(_0x376e69,_0x5e4d7a){var _0x4c0be0=[];for(var _0x47e854 in _0x375c23[_0xc5b8('0x51')]){if(_0x375c23[_0xc5b8('0x51')][_0xc5b8('0x47')](_0x47e854)){var _0x207c50=_0x375c23[_0xc5b8('0x51')][_0x47e854];var _0xe64e4c={'id':_0x207c50['id'],'available':_0x207c50[_0xc5b8('0x4d')],'loggedIn':_0x207c50['loggedIn'],'name':_0x207c50[_0xc5b8('0x4f')],'paused':_0x207c50[_0xc5b8('0x52')],'waiting':_0x207c50[_0xc5b8('0x50')]};_0x4c0be0[_0xc5b8('0x23')](_0xe64e4c);}}_0x376e69({'count':_0x4c0be0[_0xc5b8('0x1c')],'rows':_0x4c0be0});});},'OpenchannelQueues':function(_0x2ca5a3){return new Promise(function(_0x452ea7,_0x2b852e){var _0x708a7c=[];for(var _0x33e4af in _0x375c23[_0xc5b8('0x53')]){if(_0x375c23['openchannelQueues'][_0xc5b8('0x47')](_0x33e4af)){var _0xaa08f3=_0x375c23[_0xc5b8('0x53')][_0x33e4af];var _0x1715fd={'id':_0xaa08f3['id'],'available':_0xaa08f3[_0xc5b8('0x4d')],'loggedIn':_0xaa08f3[_0xc5b8('0x4e')],'name':_0xaa08f3['name'],'paused':_0xaa08f3[_0xc5b8('0x52')],'waiting':_0xaa08f3[_0xc5b8('0x50')]};_0x708a7c[_0xc5b8('0x23')](_0x1715fd);}}_0x452ea7({'count':_0x708a7c[_0xc5b8('0x1c')],'rows':_0x708a7c});});},'SmsQueues':function(_0x48e5d0){return new Promise(function(_0x1f4d41,_0x3bd405){var _0xf7246c=[];for(var _0x57fa29 in _0x375c23[_0xc5b8('0x54')]){if(_0x375c23[_0xc5b8('0x54')][_0xc5b8('0x47')](_0x57fa29)){var _0x4c3232=_0x375c23[_0xc5b8('0x54')][_0x57fa29];var _0x58666a={'id':_0x4c3232['id'],'available':_0x4c3232[_0xc5b8('0x4d')],'loggedIn':_0x4c3232[_0xc5b8('0x4e')],'name':_0x4c3232[_0xc5b8('0x4f')],'paused':_0x4c3232['paused'],'waiting':_0x4c3232[_0xc5b8('0x50')]};_0xf7246c[_0xc5b8('0x23')](_0x58666a);}}_0x1f4d41({'count':_0xf7246c['length'],'rows':_0xf7246c});});},'FaxQueues':function(_0xd6a106){return new Promise(function(_0x335636,_0x29603b){var _0x8f25ff=[];for(var _0x28e172 in _0x375c23[_0xc5b8('0x55')]){if(_0x375c23[_0xc5b8('0x55')][_0xc5b8('0x47')](_0x28e172)){var _0x2b411f=_0x375c23['faxQueues'][_0x28e172];var _0x51f53c={'id':_0x2b411f['id'],'available':_0x2b411f[_0xc5b8('0x4d')],'loggedIn':_0x2b411f[_0xc5b8('0x4e')],'name':_0x2b411f[_0xc5b8('0x4f')],'paused':_0x2b411f[_0xc5b8('0x52')],'waiting':_0x2b411f[_0xc5b8('0x50')]};_0x8f25ff['push'](_0x51f53c);}}_0x335636({'count':_0x8f25ff[_0xc5b8('0x1c')],'rows':_0x8f25ff});});},'WhatsappQueues':function(_0x24fa15){return new Promise(function(_0x486ae5,_0xf23db){var _0x257915=[];for(var _0x50c2bf in _0x375c23[_0xc5b8('0x56')]){if(_0x375c23[_0xc5b8('0x56')][_0xc5b8('0x47')](_0x50c2bf)){var _0x67d4db=_0x375c23['whatsappQueues'][_0x50c2bf];var _0x78d6da={'id':_0x67d4db['id'],'available':_0x67d4db[_0xc5b8('0x4d')],'loggedIn':_0x67d4db[_0xc5b8('0x4e')],'name':_0x67d4db[_0xc5b8('0x4f')],'paused':_0x67d4db['paused'],'waiting':_0x67d4db[_0xc5b8('0x50')]};_0x257915['push'](_0x78d6da);}}_0x486ae5({'count':_0x257915[_0xc5b8('0x1c')],'rows':_0x257915});});},'ChatQueuesWaitingInteractions':function(_0x5bc036){return new Promise(function(_0x368188,_0x1902e8){var _0x4af47b=_['values'](_0x375c23[_0xc5b8('0x57')]);_0x368188({'count':_0x4af47b[_0xc5b8('0x1c')],'rows':_0x4af47b});});},'MailQueuesWaitingInteractions':function(_0x1f7779){return new Promise(function(_0x1a8cc8,_0x2be358){var _0x1747a3=_[_0xc5b8('0x58')](_0x375c23[_0xc5b8('0x59')]);_0x1a8cc8({'count':_0x1747a3[_0xc5b8('0x1c')],'rows':_0x1747a3});});},'OpenchannelQueuesWaitingInteractions':function(_0x88255d){return new Promise(function(_0x1911e4,_0x4ab352){var _0x1f1ead=_[_0xc5b8('0x58')](_0x375c23[_0xc5b8('0x5a')]);_0x1911e4({'count':_0x1f1ead['length'],'rows':_0x1f1ead});});},'SmsQueuesWaitingInteractions':function(_0x3e5368){return new Promise(function(_0x77a21f,_0x25715c){var _0x7b739=_[_0xc5b8('0x58')](_0x375c23[_0xc5b8('0x5b')]);_0x77a21f({'count':_0x7b739[_0xc5b8('0x1c')],'rows':_0x7b739});});},'FaxQueuesWaitingInteractions':function(_0x408e92){return new Promise(function(_0x2a8538,_0x3adc9f){var _0x1a4a8a=_['values'](_0x375c23[_0xc5b8('0x5c')]);_0x2a8538({'count':_0x1a4a8a[_0xc5b8('0x1c')],'rows':_0x1a4a8a});});},'WhatsappQueuesWaitingInteractions':function(_0x2079e8){return new Promise(function(_0x27d443,_0x49557d){var _0x5b65b7=_[_0xc5b8('0x58')](_0x375c23[_0xc5b8('0x5d')]);_0x27d443({'count':_0x5b65b7['length'],'rows':_0x5b65b7});});}};var _0x160098=jayson[_0xc5b8('0x5e')](_0x1e9611)['http']();_0x160098['on'](_0xc5b8('0x35'),function(_0x3ae810){logger[_0xc5b8('0x35')](JSON[_0xc5b8('0x5f')](_0x3ae810));return _0x2d13b3(_0x3ae810);});_0x160098[_0xc5b8('0x16')](0x232c,'127.0.0.1',function(){console[_0xc5b8('0x60')](_0xc5b8('0x61'),0x232c);return _0xfff7b6(_0xc5b8('0x62')+0x232c);});});};
\ No newline at end of file
+var _0xd9dc=['emit','complete','No\x20applications\x20to\x20execute','routing\x20is\x20empty','agent','agents','busy','busyQueue','QueueReport','update','UserId','catch','error','error\x20update\x20queue\x20report','message\x20is\x20empty','stack','end','hasOwnProperty','capacity','CurrentCapacity','updateRealtime','agent\x20not\x20found','chatQueues','loggedIn','waiting','mailQueues','available','name','paused','openchannelQueues','smsQueues','faxQueues','whatsappQueues','values','chatQueuesWaitingInteractions','openchannelQueuesWaitingInteractions','smsQueuesWaitingInteractions','faxQueuesWaitingInteractions','server','127.0.0.1','log','RPC\x20listening\x20on\x20port:','util','path','bluebird','uuid','./applications/utils','../../../config/logger','routing','../rpc/openchannelQueueReport','../rpc/mailQueueReport','../rpc/chatQueueReport','../rpc/faxQueueReport','../rpc/whatsappQueueReport','../lib/rule-engine','format','%s.%s.%s','isNil','IntervalId','Intervals','interval','listen','rules','channel','message','interaction','applications','isArray','length','existsSync','join','app','.js','toLowerCase','appdata','split','mail','push','slice','dialogflow','amazonlex','tag','tvox','getMustacheRender','account','notificationTemplate','ChatWebsiteId','ContactId','body','%s:%s:%s','./interval','intervals','./applications/','consequence','priority','info','Push\x20new\x20rule','on\x20interval','\x20|\x20','Applications\x20executed','stringify'];(function(_0x3e9a9c,_0x19c96a){var _0x568a31=function(_0x4ffeb4){while(--_0x4ffeb4){_0x3e9a9c['push'](_0x3e9a9c['shift']());}};_0x568a31(++_0x19c96a);}(_0xd9dc,0x1be));var _0xcd9d=function(_0x388b2b,_0x4bcdfb){_0x388b2b=_0x388b2b-0x0;var _0x491672=_0xd9dc[_0x388b2b];return _0x491672;};'use strict';var _=require('lodash');var util=require(_0xcd9d('0x0'));var path=require(_0xcd9d('0x1'));var fs=require('fs');var jayson=require('jayson/promise');var BPromise=require(_0xcd9d('0x2'));var uuid=require(_0xcd9d('0x3'));var utils=require(_0xcd9d('0x4'));var config=require('../../../config/environment');var logger=require(_0xcd9d('0x5'))(_0xcd9d('0x6'));var rpc={'openchannelQueueReport':require(_0xcd9d('0x7')),'mailQueueReport':require(_0xcd9d('0x8')),'chatQueueReport':require(_0xcd9d('0x9')),'smsQueueReport':require('../rpc/smsQueueReport'),'faxQueueReport':require(_0xcd9d('0xa')),'whatsappQueueReport':require(_0xcd9d('0xb'))};var RuleEngine=require(_0xcd9d('0xc'));function getId(_0x285e75,_0x45130c,_0x549558){return util[_0xcd9d('0xd')](_0xcd9d('0xe'),_0x285e75,_0x45130c||0x0,_0x549558||0x0);}function getIntervals(_0x32dce7,_0x112c01){var _0x18f6a7=[];if(!_[_0xcd9d('0xf')](_0x112c01[_0xcd9d('0x10')])&&!_[_0xcd9d('0xf')](_0x32dce7[_0x112c01['IntervalId']])&&!_[_0xcd9d('0xf')](_0x32dce7[_0x112c01['IntervalId']][_0xcd9d('0x11')])){_0x18f6a7=_['map'](_0x32dce7[_0x112c01[_0xcd9d('0x10')]][_0xcd9d('0x11')],_0xcd9d('0x12'));}else if(!_['isNil'](_0x112c01[_0xcd9d('0x12')])){_0x18f6a7=[_0x112c01['interval']];}return _0x18f6a7;}exports[_0xcd9d('0x13')]=function(_0x957089){_0x957089[_0xcd9d('0x14')]={};return new BPromise(function(_0x582a92,_0x12edfc){var _0x64d51c={'Start':function(_0x50f14d){var _0x40d5aa=this;return new Promise(function(_0x5a7248,_0x3ea72c){if(_0x50f14d){try{var _0x534c8f=[];var _0x3e5e23=getId(_0x50f14d[_0xcd9d('0x15')],_0x50f14d[_0xcd9d('0x16')]?_0x50f14d[_0xcd9d('0x16')]['id']:0x0,_0x50f14d[_0xcd9d('0x17')]?_0x50f14d[_0xcd9d('0x17')]['id']:0x0);if(_0x50f14d[_0xcd9d('0x18')]&&_[_0xcd9d('0x19')](_0x50f14d[_0xcd9d('0x18')])&&_0x50f14d[_0xcd9d('0x18')][_0xcd9d('0x1a')]){for(var _0x497425=0x0;_0x497425<_0x50f14d[_0xcd9d('0x18')][_0xcd9d('0x1a')];_0x497425+=0x1){var _0x3599eb=_0x50f14d['applications'][_0x497425];if(fs[_0xcd9d('0x1b')](path[_0xcd9d('0x1c')](__dirname,_0xcd9d('0x18'),_0x3599eb[_0xcd9d('0x1d')]+_0xcd9d('0x1e')))){var _0x2891b6=[];switch(_0x3599eb[_0xcd9d('0x1d')][_0xcd9d('0x1f')]()){case'autoreply':var _0x5d7613=_0x3599eb[_0xcd9d('0x20')][_0xcd9d('0x21')](',');if(_0x50f14d[_0xcd9d('0x15')]===_0xcd9d('0x22')){_0x2891b6['push'](_0x5d7613[0x0]);_0x2891b6[_0xcd9d('0x23')](_0x5d7613[0x1]);_0x2891b6[_0xcd9d('0x23')](_0x5d7613[_0xcd9d('0x24')](0x2,_0x5d7613[_0xcd9d('0x1a')])[_0xcd9d('0x1c')](','));}else{_0x2891b6[_0xcd9d('0x23')](_0x5d7613[0x0]);_0x2891b6[_0xcd9d('0x23')](_0x5d7613[_0xcd9d('0x24')](0x1,_0x5d7613[_0xcd9d('0x1a')])[_0xcd9d('0x1c')](','));}break;case _0xcd9d('0x25'):var _0x3b1abd=_0x3599eb[_0xcd9d('0x20')]['split'](',');_0x2891b6[_0xcd9d('0x23')](_0x3b1abd[0x0]);_0x2891b6[_0xcd9d('0x23')](_0x3b1abd[0x1]);_0x2891b6['push'](_0x3b1abd['slice'](0x2,_0x3b1abd[_0xcd9d('0x1a')])[_0xcd9d('0x1c')](','));break;case'dialogflowv2':var _0xcf8b36=_0x3599eb[_0xcd9d('0x20')][_0xcd9d('0x21')](',');_0x2891b6[_0xcd9d('0x23')](_0xcf8b36[0x0]);_0x2891b6[_0xcd9d('0x23')](_0xcf8b36[0x1]);_0x2891b6['push'](_0xcf8b36[0x2]);_0x2891b6[_0xcd9d('0x23')](_0xcf8b36[0x3]);_0x2891b6[_0xcd9d('0x23')](_0xcf8b36[_0xcd9d('0x24')](0x4,_0xcf8b36['length'])[_0xcd9d('0x1c')](','));break;case _0xcd9d('0x26'):var _0x38e3e2=_0x3599eb['appdata'][_0xcd9d('0x21')](',');_0x2891b6[_0xcd9d('0x23')](_0x38e3e2[0x0]);_0x2891b6[_0xcd9d('0x23')](_0x38e3e2[0x1]);_0x2891b6[_0xcd9d('0x23')](_0x38e3e2[0x2]);_0x2891b6['push'](_0x38e3e2[0x3]);_0x2891b6['push'](_0x38e3e2[_0xcd9d('0x24')](0x4,_0x38e3e2['length'])['join'](','));break;case _0xcd9d('0x16'):_0x2891b6[_0xcd9d('0x23')](_0x3599eb[_0xcd9d('0x20')]);break;case _0xcd9d('0x27'):_0x2891b6['push'](_0x3599eb['TagId']);_0x2891b6[_0xcd9d('0x23')](_0x3599eb[_0xcd9d('0x20')]);break;case _0xcd9d('0x28'):var _0x57ac64=utils[_0xcd9d('0x29')](_0x50f14d[_0xcd9d('0x2a')][_0xcd9d('0x2b')],_0x50f14d);var _0x1cac92=_0x3599eb[_0xcd9d('0x20')][_0xcd9d('0x21')](',');_0x2891b6[_0xcd9d('0x23')](_0x1cac92[0x0]);_0x2891b6[_0xcd9d('0x23')](_0x1cac92[0x1]);_0x2891b6[_0xcd9d('0x23')](_0x1cac92[0x2]);_0x2891b6[_0xcd9d('0x23')](_0x1cac92[0x3]);_0x2891b6[_0xcd9d('0x23')](_0x1cac92[0x4]);_0x2891b6[_0xcd9d('0x23')](_0x1cac92[0x5]);_0x2891b6['push'](_0x1cac92[0x6]);_0x2891b6[_0xcd9d('0x23')](_0x1cac92[0x7]);_0x2891b6[_0xcd9d('0x23')](_0x1cac92[0x8]);_0x2891b6['push'](_0x1cac92[0x9]);_0x2891b6['push'](_0x1cac92[0xa]);_0x2891b6[_0xcd9d('0x23')](_0x50f14d['interaction']['id']);_0x2891b6['push'](_0x50f14d[_0xcd9d('0x16')]['id']);_0x2891b6[_0xcd9d('0x23')](_0x3599eb[_0xcd9d('0x2c')]);_0x2891b6[_0xcd9d('0x23')](_0x50f14d['interaction'][_0xcd9d('0x2d')]);_0x2891b6[_0xcd9d('0x23')](_0x50f14d['body'][_0xcd9d('0x2e')]);_0x2891b6[_0xcd9d('0x23')](_0x57ac64);break;default:_0x2891b6=_[_0xcd9d('0xf')](_0x3599eb[_0xcd9d('0x20')])?[]:_0x3599eb['appdata']['split'](',');}var _0x308488={'id':util['format'](_0xcd9d('0x2f'),_0x3e5e23,_0x3599eb['id'],_0x3599eb[_0xcd9d('0x1d')]),'condition':require(_0xcd9d('0x30'))['condition'](_0x3e5e23,getIntervals(_0x957089[_0xcd9d('0x31')],_0x3599eb),_0x957089),'consequence':require(_0xcd9d('0x32')+_0x3599eb[_0xcd9d('0x1d')])[_0xcd9d('0x33')](_0x3e5e23,_0x2891b6,_0x957089,_0x50f14d),'p':_0x3599eb[_0xcd9d('0x34')]||0x0};logger[_0xcd9d('0x35')](_0xcd9d('0x36'),_0x308488['id'],_0xcd9d('0x37'),getIntervals(_0x957089[_0xcd9d('0x31')],_0x3599eb)[_0xcd9d('0x1c')](_0xcd9d('0x38')));_0x534c8f['push'](_0x308488);}else{logger['error']('Please\x20create\x20a\x20new\x20file\x20under',path[_0xcd9d('0x1c')](__dirname,_0xcd9d('0x18'),_0x3599eb[_0xcd9d('0x1d')]+'.js'));}}_0x957089[_0xcd9d('0x14')][_0x3e5e23]=new RuleEngine(_0x534c8f);_0x957089[_0xcd9d('0x14')][_0x3e5e23]['execute'](_0x50f14d,function(_0x44d0ca){logger['info'](_0xcd9d('0x39'),JSON[_0xcd9d('0x3a')](_0x44d0ca['matchPath']));if(_0x957089['rules'][_0x3e5e23]){_0x957089[_0xcd9d('0x14')][_0x3e5e23][_0xcd9d('0x3b')](_0xcd9d('0x3c'));}});return _0x5a7248({'code':0xc8,'message':_0x50f14d});}else{logger[_0xcd9d('0x35')](_0xcd9d('0x3d'));return _0x5a7248({'code':0xc8,'message':_0x50f14d});}}catch(_0x1081cd){logger['error'](_0x1081cd['stack']);return _0x3ea72c(_0x40d5aa['error'](0x1f4,_0x1081cd));}}return _0x3ea72c(_0xcd9d('0x3e'));});},'AcceptMessage':function(_0x3d1bc0){var _0x53a8b2=this;return new Promise(function(_0x45233f,_0x3cf390){if(_0x3d1bc0[_0xcd9d('0x3f')]&&_0x3d1bc0[_0xcd9d('0x3f')]['id']){if(_0x957089[_0xcd9d('0x40')][_0x3d1bc0[_0xcd9d('0x3f')]['id']]){_0x957089[_0xcd9d('0x40')][_0x3d1bc0[_0xcd9d('0x3f')]['id']][_0xcd9d('0x41')]=![];_0x957089[_0xcd9d('0x40')][_0x3d1bc0['agent']['id']][_0xcd9d('0x42')]=undefined;}}if(_0x3d1bc0[_0xcd9d('0x16')]&&_0x3d1bc0[_0xcd9d('0x16')]['id']){try{var _0x2b927c=getId(_0x3d1bc0[_0xcd9d('0x15')],_0x3d1bc0[_0xcd9d('0x16')]?_0x3d1bc0[_0xcd9d('0x16')]['id']:0x0,_0x3d1bc0[_0xcd9d('0x17')]?_0x3d1bc0['interaction']['id']:0x0);if(_0x957089[_0xcd9d('0x14')][_0x2b927c]){_0x957089[_0xcd9d('0x14')][_0x2b927c][_0xcd9d('0x3b')]('end');if(rpc[_0x3d1bc0[_0xcd9d('0x15')]+_0xcd9d('0x43')]){rpc[_0x3d1bc0[_0xcd9d('0x15')]+_0xcd9d('0x43')][_0xcd9d('0x44')](_0x2b927c,{'UserId':_0x3d1bc0[_0xcd9d('0x16')][_0xcd9d('0x45')]})[_0xcd9d('0x46')](function(_0x5c541e){logger[_0xcd9d('0x47')](_0xcd9d('0x48'));});}}return _0x45233f({'code':0xc8,'message':_0x3d1bc0});}catch(_0x293d30){logger[_0xcd9d('0x47')](_0x293d30['stack']);return _0x3cf390(_0x53a8b2[_0xcd9d('0x47')](0x1f4,_0x293d30));}}logger[_0xcd9d('0x47')](_0xcd9d('0x49'));return _0x3cf390(_0x53a8b2[_0xcd9d('0x47')](0x1f4,'message\x20is\x20empty'));});},'RejectMessage':function(_0x27a363){var _0x3e6754=this;return new Promise(function(_0x1bf893,_0x425e86){if(_0x27a363[_0xcd9d('0x3f')]&&_0x27a363['agent']['id']){try{if(_0x957089[_0xcd9d('0x40')][_0x27a363[_0xcd9d('0x3f')]['id']]){_0x957089['agents'][_0x27a363[_0xcd9d('0x3f')]['id']][_0xcd9d('0x41')]=![];_0x957089['agents'][_0x27a363[_0xcd9d('0x3f')]['id']][_0xcd9d('0x42')]=undefined;}return _0x1bf893({'code':0xc8,'message':_0x27a363});}catch(_0x28f4bd){logger[_0xcd9d('0x47')](_0x28f4bd[_0xcd9d('0x4a')]);return _0x425e86(_0x3e6754[_0xcd9d('0x47')](0x1f4,_0x28f4bd));}}logger['error']('message\x20is\x20empty');return _0x425e86(_0x3e6754['error'](0x1f4,_0xcd9d('0x49')));});},'AbandonInteraction':function(_0x372bce){var _0x36ab7d=this;return new Promise(function(_0x4ba03e,_0x18d427){if(_0x372bce[_0xcd9d('0x15')]&&_0x372bce['interaction']&&_0x372bce[_0xcd9d('0x17')]['id']){try{var _0x1877fd=getId(_0x372bce[_0xcd9d('0x15')],_0x372bce['message']?_0x372bce[_0xcd9d('0x16')]['id']:0x0,_0x372bce[_0xcd9d('0x17')]?_0x372bce['interaction']['id']:0x0);if(_0x957089[_0xcd9d('0x14')][_0x1877fd]){_0x957089['rules'][_0x1877fd][_0xcd9d('0x3b')](_0xcd9d('0x4b'));}return _0x4ba03e({'code':0xc8,'message':_0x372bce});}catch(_0x1e350c){logger['error'](_0x1e350c[_0xcd9d('0x4a')]);return _0x18d427(_0x36ab7d[_0xcd9d('0x47')](0x1f4,_0x1e350c));}}logger[_0xcd9d('0x47')](_0xcd9d('0x49'));return _0x18d427(_0x36ab7d[_0xcd9d('0x47')](0x1f4,_0xcd9d('0x49')));});},'AgentCapacity':function(_0x2d1b93){var _0x288d3e=this;return new Promise(function(_0xf9b506,_0x542546){if(_0x957089[_0xcd9d('0x40')][_0xcd9d('0x4c')](_0x2d1b93['id'])){for(var _0x303584 in _0x2d1b93['capacity']){if(_0x2d1b93[_0xcd9d('0x4d')][_0xcd9d('0x4c')](_0x303584)){if(_0x957089[_0xcd9d('0x40')][_0x2d1b93['id']][_0xcd9d('0x4c')](_0x303584+_0xcd9d('0x4e'))){_0x957089[_0xcd9d('0x40')][_0x2d1b93['id']][_0x303584+'CurrentCapacity']=parseInt(_0x2d1b93['capacity'][_0x303584],0xa);}}}_0x957089[_0xcd9d('0x40')][_0x2d1b93['id']][_0xcd9d('0x4f')]();return _0xf9b506({'code':0xc8,'message':_0x957089[_0xcd9d('0x40')][_0x2d1b93['id']]});}else{return _0x542546(_0x288d3e[_0xcd9d('0x47')](0x1f4,_0xcd9d('0x50')));}});},'Agents':function(_0x55e3df){return new Promise(function(_0x39a73c,_0x55e1a3){var _0xe4aace=_['values'](_0x957089[_0xcd9d('0x40')]);_0x39a73c({'count':_0xe4aace['length'],'rows':_0xe4aace});});},'ChatQueues':function(_0x380e8b){return new Promise(function(_0x32fd7e,_0x5608f1){var _0x2f4bfa=[];for(var _0x5a7e9f in _0x957089[_0xcd9d('0x51')]){if(_0x957089[_0xcd9d('0x51')]['hasOwnProperty'](_0x5a7e9f)){var _0x305eff=_0x957089[_0xcd9d('0x51')][_0x5a7e9f];var _0x23998d={'id':_0x305eff['id'],'available':_0x305eff['available'],'loggedIn':_0x305eff[_0xcd9d('0x52')],'name':_0x305eff['name'],'paused':_0x305eff['paused'],'waiting':_0x305eff[_0xcd9d('0x53')]};_0x2f4bfa[_0xcd9d('0x23')](_0x23998d);}}_0x32fd7e({'count':_0x2f4bfa[_0xcd9d('0x1a')],'rows':_0x2f4bfa});});},'MailQueues':function(_0x538c53){return new Promise(function(_0x1b5467,_0x1787fb){var _0x251e68=[];for(var _0x26cad2 in _0x957089[_0xcd9d('0x54')]){if(_0x957089[_0xcd9d('0x54')]['hasOwnProperty'](_0x26cad2)){var _0x30fdc2=_0x957089[_0xcd9d('0x54')][_0x26cad2];var _0x52933d={'id':_0x30fdc2['id'],'available':_0x30fdc2[_0xcd9d('0x55')],'loggedIn':_0x30fdc2['loggedIn'],'name':_0x30fdc2[_0xcd9d('0x56')],'paused':_0x30fdc2[_0xcd9d('0x57')],'waiting':_0x30fdc2[_0xcd9d('0x53')]};_0x251e68[_0xcd9d('0x23')](_0x52933d);}}_0x1b5467({'count':_0x251e68[_0xcd9d('0x1a')],'rows':_0x251e68});});},'OpenchannelQueues':function(_0x2e1b36){return new Promise(function(_0xf8932c,_0xb62b90){var _0x2e7eef=[];for(var _0x4a16f8 in _0x957089[_0xcd9d('0x58')]){if(_0x957089['openchannelQueues'][_0xcd9d('0x4c')](_0x4a16f8)){var _0x124c5d=_0x957089[_0xcd9d('0x58')][_0x4a16f8];var _0x2f3c93={'id':_0x124c5d['id'],'available':_0x124c5d[_0xcd9d('0x55')],'loggedIn':_0x124c5d['loggedIn'],'name':_0x124c5d[_0xcd9d('0x56')],'paused':_0x124c5d[_0xcd9d('0x57')],'waiting':_0x124c5d[_0xcd9d('0x53')]};_0x2e7eef[_0xcd9d('0x23')](_0x2f3c93);}}_0xf8932c({'count':_0x2e7eef[_0xcd9d('0x1a')],'rows':_0x2e7eef});});},'SmsQueues':function(_0x5353ef){return new Promise(function(_0x5b4a56,_0xb6d303){var _0x47da2b=[];for(var _0x24f307 in _0x957089[_0xcd9d('0x59')]){if(_0x957089['smsQueues'][_0xcd9d('0x4c')](_0x24f307)){var _0x110be1=_0x957089[_0xcd9d('0x59')][_0x24f307];var _0x1e7665={'id':_0x110be1['id'],'available':_0x110be1['available'],'loggedIn':_0x110be1[_0xcd9d('0x52')],'name':_0x110be1['name'],'paused':_0x110be1['paused'],'waiting':_0x110be1['waiting']};_0x47da2b[_0xcd9d('0x23')](_0x1e7665);}}_0x5b4a56({'count':_0x47da2b['length'],'rows':_0x47da2b});});},'FaxQueues':function(_0x3d1bd0){return new Promise(function(_0x3f9a2d,_0x43374b){var _0x36e6ca=[];for(var _0x24684b in _0x957089[_0xcd9d('0x5a')]){if(_0x957089['faxQueues'][_0xcd9d('0x4c')](_0x24684b)){var _0x470a1d=_0x957089[_0xcd9d('0x5a')][_0x24684b];var _0x5527b8={'id':_0x470a1d['id'],'available':_0x470a1d[_0xcd9d('0x55')],'loggedIn':_0x470a1d[_0xcd9d('0x52')],'name':_0x470a1d[_0xcd9d('0x56')],'paused':_0x470a1d['paused'],'waiting':_0x470a1d[_0xcd9d('0x53')]};_0x36e6ca['push'](_0x5527b8);}}_0x3f9a2d({'count':_0x36e6ca[_0xcd9d('0x1a')],'rows':_0x36e6ca});});},'WhatsappQueues':function(_0x2fbeee){return new Promise(function(_0x26630d,_0x1cc657){var _0x2eefbc=[];for(var _0xa40477 in _0x957089[_0xcd9d('0x5b')]){if(_0x957089[_0xcd9d('0x5b')][_0xcd9d('0x4c')](_0xa40477)){var _0x7732f1=_0x957089['whatsappQueues'][_0xa40477];var _0x4b2edc={'id':_0x7732f1['id'],'available':_0x7732f1[_0xcd9d('0x55')],'loggedIn':_0x7732f1[_0xcd9d('0x52')],'name':_0x7732f1[_0xcd9d('0x56')],'paused':_0x7732f1[_0xcd9d('0x57')],'waiting':_0x7732f1['waiting']};_0x2eefbc['push'](_0x4b2edc);}}_0x26630d({'count':_0x2eefbc['length'],'rows':_0x2eefbc});});},'ChatQueuesWaitingInteractions':function(_0x339b4d){return new Promise(function(_0x4b2acf,_0x1aabf5){var _0xe82822=_[_0xcd9d('0x5c')](_0x957089[_0xcd9d('0x5d')]);_0x4b2acf({'count':_0xe82822[_0xcd9d('0x1a')],'rows':_0xe82822});});},'MailQueuesWaitingInteractions':function(_0x413a95){return new Promise(function(_0x1a64b3,_0x292303){var _0xb56e5a=_[_0xcd9d('0x5c')](_0x957089['mailQueuesWaitingInteractions']);_0x1a64b3({'count':_0xb56e5a[_0xcd9d('0x1a')],'rows':_0xb56e5a});});},'OpenchannelQueuesWaitingInteractions':function(_0x5d613d){return new Promise(function(_0x59490,_0x1cf4d3){var _0x3212fd=_[_0xcd9d('0x5c')](_0x957089[_0xcd9d('0x5e')]);_0x59490({'count':_0x3212fd[_0xcd9d('0x1a')],'rows':_0x3212fd});});},'SmsQueuesWaitingInteractions':function(_0x13d9e7){return new Promise(function(_0x1588d3,_0x21d255){var _0x4b1288=_[_0xcd9d('0x5c')](_0x957089[_0xcd9d('0x5f')]);_0x1588d3({'count':_0x4b1288[_0xcd9d('0x1a')],'rows':_0x4b1288});});},'FaxQueuesWaitingInteractions':function(_0x69da4c){return new Promise(function(_0x2d1581,_0x2def56){var _0x53da0f=_[_0xcd9d('0x5c')](_0x957089[_0xcd9d('0x60')]);_0x2d1581({'count':_0x53da0f[_0xcd9d('0x1a')],'rows':_0x53da0f});});},'WhatsappQueuesWaitingInteractions':function(_0x572afd){return new Promise(function(_0x14e45b,_0x591b4b){var _0x55dbdf=_[_0xcd9d('0x5c')](_0x957089['whatsappQueuesWaitingInteractions']);_0x14e45b({'count':_0x55dbdf[_0xcd9d('0x1a')],'rows':_0x55dbdf});});}};var _0x2620ac=jayson[_0xcd9d('0x61')](_0x64d51c)['http']();_0x2620ac['on'](_0xcd9d('0x47'),function(_0x10b945){logger['error'](JSON[_0xcd9d('0x3a')](_0x10b945));return _0x12edfc(_0x10b945);});_0x2620ac['listen'](0x232c,_0xcd9d('0x62'),function(){console[_0xcd9d('0x63')]('Routing\x20RPC\x20server\x20listening\x20on\x20127.0.0.1:%d!',0x232c);return _0x582a92(_0xcd9d('0x64')+0x232c);});});};
\ No newline at end of file