Built motion from commit 3c2ce842.|2.6.31
[motion2.git] / server / config / triggers / index.js
index 81cbacb..8bc0c00 100644 (file)
@@ -15,4 +15,4 @@
 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                        *
 // *                                                                       *
 // *************************************************************************
-var _0x8e1d=['ContactId','undefined','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','query','Sequelize','SELECT','then','contact','UserId','interface','format','SIP/%s','agent','incomingmessage','outgoingmessage','catch','AfterCreateMessage','event','offlineMessage','opened','resolve','name','AfterCreate','closed','changed','substatus','sequelize','QueryTypes','AfterUpdate','User','find','fullname','email','internal','default','length','hook','callback','toLowerCase','condition','util','../../mysqldb','jayson/promise','../logger','triggers','client','http','Chat','afterCreate','newinteraction','ChatInteraction','afterUpdate','closedinteraction','ChatMessage','ChatOfflineMessage','newmessage','SmsInteraction','Sms','SmsMessage','Whatsapp','WhatsappInteraction','Fax','FaxInteraction','FaxMessage','Mail','MailInteraction','MailMessage','Openchannel','OpenchannelInteraction','OpenchannelMessage','EventManager','error','code','Trigger,\x20%s','get','channel','motionChannel','direction'];(function(_0x1cdbf6,_0x2edcc6){var _0xb5c0d9=function(_0x4d842a){while(--_0x4d842a){_0x1cdbf6['push'](_0x1cdbf6['shift']());}};_0xb5c0d9(++_0x2edcc6);}(_0x8e1d,0x76));var _0xd8e1=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0x8e1d[_0x14add3];return _0x4a174f;};'use strict';var util=require(_0xd8e1('0x0'));var db=require(_0xd8e1('0x1'))['db'];var jayson=require(_0xd8e1('0x2'));var logger=require(_0xd8e1('0x3'))(_0xd8e1('0x4'));var client=jayson[_0xd8e1('0x5')][_0xd8e1('0x6')]({'port':0x232a});var triggers=[{'channel':_0xd8e1('0x7'),'model':'ChatInteraction','event':_0xd8e1('0x8'),'condition':_0xd8e1('0x9'),'callback':afterCreate},{'channel':_0xd8e1('0x7'),'model':_0xd8e1('0xa'),'event':_0xd8e1('0xb'),'condition':_0xd8e1('0xc'),'callback':afterUpdate},{'channel':'Chat','model':_0xd8e1('0xd'),'event':_0xd8e1('0x8'),'condition':'newmessage','callback':afterCreateMessage},{'channel':'Chat','model':_0xd8e1('0xe'),'event':_0xd8e1('0x8'),'condition':_0xd8e1('0xf'),'callback':afterCreateOfflineMessage},{'channel':'Sms','model':_0xd8e1('0x10'),'event':_0xd8e1('0x8'),'condition':'newinteraction','callback':afterCreate},{'channel':_0xd8e1('0x11'),'model':_0xd8e1('0x10'),'event':_0xd8e1('0xb'),'condition':_0xd8e1('0xc'),'callback':afterUpdate},{'channel':'Sms','model':_0xd8e1('0x12'),'event':_0xd8e1('0x8'),'condition':'newmessage','callback':afterCreateMessage},{'channel':_0xd8e1('0x13'),'model':_0xd8e1('0x14'),'event':'afterCreate','condition':_0xd8e1('0x9'),'callback':afterCreate},{'channel':_0xd8e1('0x13'),'model':_0xd8e1('0x14'),'event':'afterUpdate','condition':'closedinteraction','callback':afterUpdate},{'channel':_0xd8e1('0x13'),'model':'WhatsappMessage','event':_0xd8e1('0x8'),'condition':_0xd8e1('0xf'),'callback':afterCreateMessage},{'channel':_0xd8e1('0x15'),'model':_0xd8e1('0x16'),'event':_0xd8e1('0x8'),'condition':_0xd8e1('0x9'),'callback':afterCreate},{'channel':_0xd8e1('0x15'),'model':_0xd8e1('0x16'),'event':_0xd8e1('0xb'),'condition':_0xd8e1('0xc'),'callback':afterUpdate},{'channel':_0xd8e1('0x15'),'model':_0xd8e1('0x17'),'event':'afterCreate','condition':'newmessage','callback':afterCreateMessage},{'channel':_0xd8e1('0x18'),'model':_0xd8e1('0x19'),'event':_0xd8e1('0x8'),'condition':_0xd8e1('0x9'),'callback':afterCreate},{'channel':_0xd8e1('0x18'),'model':_0xd8e1('0x19'),'event':_0xd8e1('0xb'),'condition':_0xd8e1('0xc'),'callback':afterUpdate},{'channel':_0xd8e1('0x18'),'model':_0xd8e1('0x1a'),'event':_0xd8e1('0x8'),'condition':'newmessage','callback':afterCreateMessage},{'channel':_0xd8e1('0x1b'),'model':'OpenchannelInteraction','event':_0xd8e1('0x8'),'condition':'newinteraction','callback':afterCreate},{'channel':_0xd8e1('0x1b'),'model':_0xd8e1('0x1c'),'event':'afterUpdate','condition':_0xd8e1('0xc'),'callback':afterUpdate},{'channel':'Openchannel','model':_0xd8e1('0x1d'),'event':_0xd8e1('0x8'),'condition':_0xd8e1('0xf'),'callback':afterCreateMessage}];function request(_0x593aea){return client['request'](_0xd8e1('0x1e'),_0x593aea)['then'](function(_0x205f85){logger['info']('Trigger,\x20%s','EventManager',_0x205f85);if(_0x205f85['error']){if(_0x205f85[_0xd8e1('0x1f')][_0xd8e1('0x20')]===0x1f4){logger['error'](_0xd8e1('0x21'),_0xd8e1('0x1e'),_0x205f85[_0xd8e1('0x1f')]);}}})['catch'](function(_0x564859){logger['error']('Trigger,\x20%s',_0xd8e1('0x1e'),_0x564859);});}function afterCreateMessage(_0x11cf46){return function(_0x1b4dfe){_0x1b4dfe=_0x1b4dfe[_0xd8e1('0x22')]({'plain':!![]});_0x1b4dfe[_0xd8e1('0x23')]=_0x11cf46;_0x1b4dfe[_0xd8e1('0x24')]=_0x11cf46;_0x1b4dfe['event']=_0x1b4dfe[_0xd8e1('0x25')];Promise['resolve']()['then'](function(){if(typeof _0x1b4dfe[_0xd8e1('0x26')]===_0xd8e1('0x27'))return null;var _0x347359=_0xd8e1('0x28')+_0x1b4dfe['ContactId'];return db['sequelize'][_0xd8e1('0x29')](_0x347359,{'type':db[_0xd8e1('0x2a')]['QueryTypes'][_0xd8e1('0x2b')],'raw':!![]});})[_0xd8e1('0x2c')](function(_0x43a78f){if(_0x43a78f){_0x1b4dfe[_0xd8e1('0x2d')]=_0x43a78f[0x0];}if(typeof _0x1b4dfe[_0xd8e1('0x2e')]==='undefined')return;return getAgent(_0x1b4dfe[_0xd8e1('0x2e')]);})[_0xd8e1('0x2c')](function(_0xd78792){if(_0xd78792){_0x1b4dfe[_0xd8e1('0x2f')]=util[_0xd8e1('0x30')](_0xd8e1('0x31'),_0xd78792['name']);_0x1b4dfe[_0xd8e1('0x32')]=_0xd78792;_0x1b4dfe[_0xd8e1('0x23')]=_0x11cf46;return request({'event':_0xd8e1('0x33'),'message':_0x1b4dfe});}else{return request({'event':_0xd8e1('0x34'),'message':_0x1b4dfe});}})[_0xd8e1('0x35')](function(_0x3284d7){logger['error'](_0xd8e1('0x21'),_0xd8e1('0x36'),_0x3284d7);});};}function afterCreateOfflineMessage(_0xcde568){return function(_0x19d0ca){_0x19d0ca=_0x19d0ca[_0xd8e1('0x22')]({'plain':!![]});_0x19d0ca[_0xd8e1('0x23')]=_0xcde568;_0x19d0ca[_0xd8e1('0x24')]=_0xcde568;_0x19d0ca[_0xd8e1('0x37')]=_0xd8e1('0x38');return request({'event':_0x19d0ca['event'],'message':_0x19d0ca});};}function afterCreate(_0x3f6372,_0x4f833f){return function(_0x1847a0){var _0x30d710=_0x1847a0[_0xd8e1('0x22')]({'plain':!![]});_0x30d710[_0xd8e1('0x23')]=_0x3f6372;_0x30d710[_0xd8e1('0x24')]=_0x3f6372;_0x30d710[_0xd8e1('0x37')]=_0xd8e1('0x39');Promise[_0xd8e1('0x3a')]()[_0xd8e1('0x2c')](function(){var _0x4d6725='SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20'+_0x30d710['ContactId'];return db['sequelize'][_0xd8e1('0x29')](_0x4d6725,{'type':db[_0xd8e1('0x2a')]['QueryTypes'][_0xd8e1('0x2b')],'raw':!![]});})[_0xd8e1('0x2c')](function(_0x1e6568){if(_0x1e6568){_0x30d710[_0xd8e1('0x2d')]=_0x1e6568[0x0];}if(_0x30d710[_0xd8e1('0x2e')]){return getAgent(_0x30d710['UserId']);}return;})['then'](function(_0x33e145){if(_0x33e145){_0x30d710[_0xd8e1('0x2f')]=util[_0xd8e1('0x30')](_0xd8e1('0x31'),_0x33e145[_0xd8e1('0x3b')]);_0x30d710[_0xd8e1('0x32')]=_0x33e145;}return request({'event':_0x4f833f,'message':_0x30d710});})[_0xd8e1('0x35')](function(_0x772ef9){logger[_0xd8e1('0x1f')](_0xd8e1('0x21'),_0xd8e1('0x3c'),_0x772ef9);});};}function afterUpdate(_0x1fc263){return function(_0x26535c){var _0x3db25b=_0x26535c['changed'](_0xd8e1('0x3d'))&&_0x26535c['closed'];var _0xe8418c=_0x26535c[_0xd8e1('0x3e')](_0xd8e1('0x3f'));if(_0x3db25b||_0xe8418c){var _0x33a72f=_0x3db25b?_0xd8e1('0xc'):_0xd8e1('0x3f');var _0x71c2f7=_0x26535c[_0xd8e1('0x22')]({'plain':!![]});_0x71c2f7['channel']=_0x1fc263;_0x71c2f7[_0xd8e1('0x24')]=_0x1fc263;_0x71c2f7['event']=_0x3db25b?'closed':'substatus';var _0x497c91=_0xd8e1('0x28')+_0x71c2f7['ContactId'];return db[_0xd8e1('0x40')][_0xd8e1('0x29')](_0x497c91,{'type':db['Sequelize'][_0xd8e1('0x41')]['SELECT'],'raw':!![]})[_0xd8e1('0x2c')](function(_0x34ba6b){if(_0x34ba6b){_0x71c2f7['contact']=_0x34ba6b[0x0];}if(typeof _0x71c2f7[_0xd8e1('0x2e')]==='undefined')return;return getAgent(_0x71c2f7['UserId']);})[_0xd8e1('0x2c')](function(_0x525dae){if(_0x525dae){_0x71c2f7['interface']=util['format'](_0xd8e1('0x31'),_0x525dae[_0xd8e1('0x3b')]);_0x71c2f7['agent']=_0x525dae;}return request({'event':_0x33a72f,'message':_0x71c2f7});})[_0xd8e1('0x35')](function(_0x5846ed){logger[_0xd8e1('0x1f')]('Trigger,\x20%s',_0xd8e1('0x42'),_0x5846ed);});}};}function getAgent(_0x411961){return db[_0xd8e1('0x43')][_0xd8e1('0x44')]({'where':{'id':_0x411961},'attributes':['id',_0xd8e1('0x3b'),_0xd8e1('0x45'),_0xd8e1('0x46'),_0xd8e1('0x47')],'raw':!![]})[_0xd8e1('0x2c')](function(_0x3f8f91){return _0x3f8f91;});}exports[_0xd8e1('0x48')]=function(){for(var _0x470f69=0x0;_0x470f69<triggers[_0xd8e1('0x49')];_0x470f69+=0x1){if(db['hasOwnProperty'](triggers[_0x470f69]['model'])){db[triggers[_0x470f69]['model']][_0xd8e1('0x4a')](triggers[_0x470f69]['event'],triggers[_0x470f69][_0xd8e1('0x4b')](triggers[_0x470f69][_0xd8e1('0x23')][_0xd8e1('0x4c')](),triggers[_0x470f69][_0xd8e1('0x4d')]));}}};
\ No newline at end of file
+var _0x924f=['triggers','http','Chat','ChatInteraction','afterCreate','newinteraction','afterUpdate','closedinteraction','ChatMessage','ChatOfflineMessage','newmessage','SmsInteraction','Sms','WhatsappInteraction','Whatsapp','WhatsappMessage','Fax','FaxInteraction','Mail','MailInteraction','Openchannel','OpenchannelInteraction','OpenchannelMessage','request','EventManager','then','info','error','code','Trigger,\x20%s','catch','get','channel','event','direction','resolve','ContactId','undefined','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','sequelize','query','QueryTypes','SELECT','contact','UserId','interface','format','SIP/%s','name','agent','incomingmessage','outgoingmessage','motionChannel','offlineMessage','Sequelize','AfterCreate','changed','closed','substatus','AfterUpdate','User','find','email','internal','default','length','model','hook','callback','toLowerCase','condition','util','../../mysqldb'];(function(_0x22c684,_0x753309){var _0x39fcbb=function(_0x38b631){while(--_0x38b631){_0x22c684['push'](_0x22c684['shift']());}};_0x39fcbb(++_0x753309);}(_0x924f,0x90));var _0xf924=function(_0x4fa97c,_0x4aa6ab){_0x4fa97c=_0x4fa97c-0x0;var _0x518c7f=_0x924f[_0x4fa97c];return _0x518c7f;};'use strict';var util=require(_0xf924('0x0'));var db=require(_0xf924('0x1'))['db'];var jayson=require('jayson/promise');var logger=require('../logger')(_0xf924('0x2'));var client=jayson['client'][_0xf924('0x3')]({'port':0x232a});var triggers=[{'channel':_0xf924('0x4'),'model':_0xf924('0x5'),'event':_0xf924('0x6'),'condition':_0xf924('0x7'),'callback':afterCreate},{'channel':'Chat','model':_0xf924('0x5'),'event':_0xf924('0x8'),'condition':_0xf924('0x9'),'callback':afterUpdate},{'channel':_0xf924('0x4'),'model':_0xf924('0xa'),'event':_0xf924('0x6'),'condition':'newmessage','callback':afterCreateMessage},{'channel':_0xf924('0x4'),'model':_0xf924('0xb'),'event':_0xf924('0x6'),'condition':_0xf924('0xc'),'callback':afterCreateOfflineMessage},{'channel':'Sms','model':_0xf924('0xd'),'event':_0xf924('0x6'),'condition':_0xf924('0x7'),'callback':afterCreate},{'channel':_0xf924('0xe'),'model':'SmsInteraction','event':_0xf924('0x8'),'condition':_0xf924('0x9'),'callback':afterUpdate},{'channel':_0xf924('0xe'),'model':'SmsMessage','event':_0xf924('0x6'),'condition':_0xf924('0xc'),'callback':afterCreateMessage},{'channel':'Whatsapp','model':_0xf924('0xf'),'event':'afterCreate','condition':_0xf924('0x7'),'callback':afterCreate},{'channel':_0xf924('0x10'),'model':'WhatsappInteraction','event':_0xf924('0x8'),'condition':'closedinteraction','callback':afterUpdate},{'channel':_0xf924('0x10'),'model':_0xf924('0x11'),'event':'afterCreate','condition':_0xf924('0xc'),'callback':afterCreateMessage},{'channel':_0xf924('0x12'),'model':_0xf924('0x13'),'event':_0xf924('0x6'),'condition':_0xf924('0x7'),'callback':afterCreate},{'channel':_0xf924('0x12'),'model':_0xf924('0x13'),'event':_0xf924('0x8'),'condition':_0xf924('0x9'),'callback':afterUpdate},{'channel':'Fax','model':'FaxMessage','event':_0xf924('0x6'),'condition':'newmessage','callback':afterCreateMessage},{'channel':_0xf924('0x14'),'model':'MailInteraction','event':_0xf924('0x6'),'condition':_0xf924('0x7'),'callback':afterCreate},{'channel':_0xf924('0x14'),'model':_0xf924('0x15'),'event':'afterUpdate','condition':_0xf924('0x9'),'callback':afterUpdate},{'channel':_0xf924('0x14'),'model':'MailMessage','event':_0xf924('0x6'),'condition':_0xf924('0xc'),'callback':afterCreateMessage},{'channel':_0xf924('0x16'),'model':'OpenchannelInteraction','event':_0xf924('0x6'),'condition':'newinteraction','callback':afterCreate},{'channel':_0xf924('0x16'),'model':_0xf924('0x17'),'event':_0xf924('0x8'),'condition':_0xf924('0x9'),'callback':afterUpdate},{'channel':_0xf924('0x16'),'model':_0xf924('0x18'),'event':'afterCreate','condition':_0xf924('0xc'),'callback':afterCreateMessage}];function request(_0x1a1871){return client[_0xf924('0x19')](_0xf924('0x1a'),_0x1a1871)[_0xf924('0x1b')](function(_0x10df8e){logger[_0xf924('0x1c')]('Trigger,\x20%s',_0xf924('0x1a'),_0x10df8e);if(_0x10df8e[_0xf924('0x1d')]){if(_0x10df8e[_0xf924('0x1d')][_0xf924('0x1e')]===0x1f4){logger[_0xf924('0x1d')](_0xf924('0x1f'),_0xf924('0x1a'),_0x10df8e['error']);}}})[_0xf924('0x20')](function(_0x29fd41){logger[_0xf924('0x1d')]('Trigger,\x20%s',_0xf924('0x1a'),_0x29fd41);});}function afterCreateMessage(_0x481a02){return function(_0x244738){_0x244738=_0x244738[_0xf924('0x21')]({'plain':!![]});_0x244738[_0xf924('0x22')]=_0x481a02;_0x244738['motionChannel']=_0x481a02;_0x244738[_0xf924('0x23')]=_0x244738[_0xf924('0x24')];Promise[_0xf924('0x25')]()['then'](function(){if(typeof _0x244738[_0xf924('0x26')]===_0xf924('0x27'))return null;var _0x2bfb56=_0xf924('0x28')+_0x244738[_0xf924('0x26')];return db[_0xf924('0x29')][_0xf924('0x2a')](_0x2bfb56,{'type':db['Sequelize'][_0xf924('0x2b')][_0xf924('0x2c')],'raw':!![]});})[_0xf924('0x1b')](function(_0x2faeac){if(_0x2faeac){_0x244738[_0xf924('0x2d')]=_0x2faeac[0x0];}if(typeof _0x244738['UserId']===_0xf924('0x27'))return;return getAgent(_0x244738[_0xf924('0x2e')]);})['then'](function(_0x576cd9){if(_0x576cd9){_0x244738[_0xf924('0x2f')]=util[_0xf924('0x30')](_0xf924('0x31'),_0x576cd9[_0xf924('0x32')]);_0x244738[_0xf924('0x33')]=_0x576cd9;_0x244738[_0xf924('0x22')]=_0x481a02;return request({'event':_0xf924('0x34'),'message':_0x244738});}else{return request({'event':_0xf924('0x35'),'message':_0x244738});}})[_0xf924('0x20')](function(_0x2e0dbe){logger[_0xf924('0x1d')](_0xf924('0x1f'),'AfterCreateMessage',_0x2e0dbe);});};}function afterCreateOfflineMessage(_0x82db66){return function(_0x53e79c){_0x53e79c=_0x53e79c[_0xf924('0x21')]({'plain':!![]});_0x53e79c['channel']=_0x82db66;_0x53e79c[_0xf924('0x36')]=_0x82db66;_0x53e79c[_0xf924('0x23')]=_0xf924('0x37');return request({'event':_0x53e79c[_0xf924('0x23')],'message':_0x53e79c});};}function afterCreate(_0x72f301,_0x4d1d25){return function(_0x4b019b){var _0x352e62=_0x4b019b[_0xf924('0x21')]({'plain':!![]});_0x352e62['channel']=_0x72f301;_0x352e62[_0xf924('0x36')]=_0x72f301;_0x352e62[_0xf924('0x23')]='opened';Promise['resolve']()[_0xf924('0x1b')](function(){var _0xa8a37a=_0xf924('0x28')+_0x352e62[_0xf924('0x26')];return db['sequelize'][_0xf924('0x2a')](_0xa8a37a,{'type':db[_0xf924('0x38')][_0xf924('0x2b')][_0xf924('0x2c')],'raw':!![]});})[_0xf924('0x1b')](function(_0x5b98e6){if(_0x5b98e6){_0x352e62[_0xf924('0x2d')]=_0x5b98e6[0x0];}if(_0x352e62[_0xf924('0x2e')]){return getAgent(_0x352e62[_0xf924('0x2e')]);}return;})['then'](function(_0x310598){if(_0x310598){_0x352e62[_0xf924('0x2f')]=util[_0xf924('0x30')](_0xf924('0x31'),_0x310598[_0xf924('0x32')]);_0x352e62[_0xf924('0x33')]=_0x310598;}return request({'event':_0x4d1d25,'message':_0x352e62});})[_0xf924('0x20')](function(_0x34abd8){logger[_0xf924('0x1d')]('Trigger,\x20%s',_0xf924('0x39'),_0x34abd8);});};}function afterUpdate(_0x26a89b){return function(_0x49755a){var _0xb94828=_0x49755a[_0xf924('0x3a')](_0xf924('0x3b'))&&_0x49755a[_0xf924('0x3b')];var _0x663978=_0x49755a[_0xf924('0x3a')](_0xf924('0x3c'));if(_0xb94828||_0x663978){var _0x39d2cb=_0xb94828?_0xf924('0x9'):_0xf924('0x3c');var _0x5966cb=_0x49755a[_0xf924('0x21')]({'plain':!![]});_0x5966cb[_0xf924('0x22')]=_0x26a89b;_0x5966cb['motionChannel']=_0x26a89b;_0x5966cb[_0xf924('0x23')]=_0xb94828?_0xf924('0x3b'):'substatus';var _0x5b58c3=_0xf924('0x28')+_0x5966cb[_0xf924('0x26')];return db[_0xf924('0x29')][_0xf924('0x2a')](_0x5b58c3,{'type':db[_0xf924('0x38')]['QueryTypes']['SELECT'],'raw':!![]})[_0xf924('0x1b')](function(_0x4889c1){if(_0x4889c1){_0x5966cb['contact']=_0x4889c1[0x0];}if(typeof _0x5966cb[_0xf924('0x2e')]===_0xf924('0x27'))return;return getAgent(_0x5966cb['UserId']);})[_0xf924('0x1b')](function(_0x3ab0b0){if(_0x3ab0b0){_0x5966cb['interface']=util['format'](_0xf924('0x31'),_0x3ab0b0['name']);_0x5966cb[_0xf924('0x33')]=_0x3ab0b0;}return request({'event':_0x39d2cb,'message':_0x5966cb});})['catch'](function(_0x320300){logger[_0xf924('0x1d')](_0xf924('0x1f'),_0xf924('0x3d'),_0x320300);});}};}function getAgent(_0x52488d){return db[_0xf924('0x3e')][_0xf924('0x3f')]({'where':{'id':_0x52488d},'attributes':['id',_0xf924('0x32'),'fullname',_0xf924('0x40'),_0xf924('0x41')],'raw':!![]})[_0xf924('0x1b')](function(_0x891bdf){return _0x891bdf;});}exports[_0xf924('0x42')]=function(){for(var _0x570a7b=0x0;_0x570a7b<triggers[_0xf924('0x43')];_0x570a7b+=0x1){if(db['hasOwnProperty'](triggers[_0x570a7b][_0xf924('0x44')])){db[triggers[_0x570a7b][_0xf924('0x44')]][_0xf924('0x45')](triggers[_0x570a7b][_0xf924('0x23')],triggers[_0x570a7b][_0xf924('0x46')](triggers[_0x570a7b][_0xf924('0x22')][_0xf924('0x47')](),triggers[_0x570a7b][_0xf924('0x48')]));}}};
\ No newline at end of file