Built motion from commit fe909640.|2.6.8
[motion2.git] / server / api / intDeskField / intDeskField.controller.js
index 3268cef..edbe972 100644 (file)
@@ -15,4 +15,4 @@
 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                        *
 // *                                                                       *
 // *************************************************************************
-var _0x5fac=['model','query','keys','filters','intersection','attributes','fields','length','order','where','pick','filter','merge','options','includeAll','include','DeskField','findAll','rows','catch','show','params','create','body','find','html-pdf','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','count','offset','limit','set','Content-Range','reject','save','update','then','destroy','stack','name','index','map','rawAttributes','fieldName','key'];(function(_0x14add3,_0x13ce8d){var _0x4a174f=function(_0x2b3ed7){while(--_0x2b3ed7){_0x14add3['push'](_0x14add3['shift']());}};_0x4a174f(++_0x13ce8d);}(_0x5fac,0xab));var _0xc5fa=function(_0x57470d,_0x42e9){_0x57470d=_0x57470d-0x0;var _0x30f0cc=_0x5fac[_0x57470d];return _0x30f0cc;};'use strict';var pdf=require(_0xc5fa('0x0'));var emlformat=require('eml-format');var rimraf=require(_0xc5fa('0x1'));var zipdir=require(_0xc5fa('0x2'));var jsonpatch=require(_0xc5fa('0x3'));var rp=require(_0xc5fa('0x4'));var moment=require(_0xc5fa('0x5'));var BPromise=require('bluebird');var Mustache=require(_0xc5fa('0x6'));var util=require('util');var path=require('path');var sox=require(_0xc5fa('0x7'));var csv=require(_0xc5fa('0x8'));var ejs=require(_0xc5fa('0x9'));var fs=require('fs');var _=require(_0xc5fa('0xa'));var squel=require(_0xc5fa('0xb'));var crypto=require(_0xc5fa('0xc'));var jsforce=require(_0xc5fa('0xd'));var deskjs=require(_0xc5fa('0xe'));var toCsv=require('to-csv');var querystring=require(_0xc5fa('0xf'));var Papa=require(_0xc5fa('0x10'));var Redis=require(_0xc5fa('0x11'));var authService=require(_0xc5fa('0x12'));var qs=require(_0xc5fa('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xc5fa('0x14'));var logger=require(_0xc5fa('0x15'))(_0xc5fa('0x16'));var utils=require(_0xc5fa('0x17'));var config=require(_0xc5fa('0x18'));var licenseUtil=require(_0xc5fa('0x19'));var db=require(_0xc5fa('0x1a'))['db'];function respondWithStatusCode(_0x349b3c,_0x30bc2d){_0x30bc2d=_0x30bc2d||0xcc;return function(_0x321930){if(_0x321930){return _0x349b3c[_0xc5fa('0x1b')](_0x30bc2d);}return _0x349b3c[_0xc5fa('0x1c')](_0x30bc2d)[_0xc5fa('0x1d')]();};}function respondWithResult(_0x184666,_0x396278){_0x396278=_0x396278||0xc8;return function(_0x460724){if(_0x460724){return _0x184666['status'](_0x396278)[_0xc5fa('0x1e')](_0x460724);}};}function respondWithFilteredResult(_0x380f1c,_0x1a27b2){return function(_0x10533a){if(_0x10533a){var _0x2be6aa=_0x10533a[_0xc5fa('0x1f')],_0x1e9886=_0x1a27b2[_0xc5fa('0x20')],_0x1b504e=_0x1a27b2[_0xc5fa('0x20')]+_0x1a27b2[_0xc5fa('0x21')],_0xdc1979;if(_0x1b504e>=_0x2be6aa){_0x1b504e=_0x2be6aa;_0xdc1979=0xc8;}else{_0xdc1979=0xce;}_0x380f1c[_0xc5fa('0x1c')](_0xdc1979);return _0x380f1c[_0xc5fa('0x22')](_0xc5fa('0x23'),_0x1e9886+'-'+_0x1b504e+'/'+_0x2be6aa)[_0xc5fa('0x1e')](_0x10533a);}return null;};}function patchUpdates(_0x1972f0){return function(_0x1f114c){try{jsonpatch['apply'](_0x1f114c,_0x1972f0,!![]);}catch(_0x1cf381){return BPromise[_0xc5fa('0x24')](_0x1cf381);}return _0x1f114c[_0xc5fa('0x25')]();};}function saveUpdates(_0x4c7e19,_0x487562){return function(_0x4f1dc4){if(_0x4f1dc4){return _0x4f1dc4[_0xc5fa('0x26')](_0x4c7e19)[_0xc5fa('0x27')](function(_0x224520){return _0x224520;});}return null;};}function removeEntity(_0x15d7ee,_0x1ed6ce){return function(_0x429c30){if(_0x429c30){return _0x429c30[_0xc5fa('0x28')]()[_0xc5fa('0x27')](function(){_0x15d7ee[_0xc5fa('0x1c')](0xcc)['end']();});}};}function handleEntityNotFound(_0x4836c3,_0x45b09f){return function(_0x5b0db3){if(!_0x5b0db3){_0x4836c3[_0xc5fa('0x1b')](0x194);}return _0x5b0db3;};}function handleError(_0x24b89b,_0x3de2fd){_0x3de2fd=_0x3de2fd||0x1f4;return function(_0x49d66c){logger['error'](_0x49d66c[_0xc5fa('0x29')]);if(_0x49d66c[_0xc5fa('0x2a')]){delete _0x49d66c['name'];}_0x24b89b['status'](_0x3de2fd)['send'](_0x49d66c);};}exports[_0xc5fa('0x2b')]=function(_0x2dfd91,_0x1a89da){var _0x57cb38={},_0x1ff47b={},_0xe4e1a9={'count':0x0,'rows':[]};var _0x2f976e=_[_0xc5fa('0x2c')](db['DeskField'][_0xc5fa('0x2d')],function(_0x21463d){return{'name':_0x21463d[_0xc5fa('0x2e')],'type':_0x21463d['type'][_0xc5fa('0x2f')]};});_0x1ff47b[_0xc5fa('0x30')]=_[_0xc5fa('0x2c')](_0x2f976e,_0xc5fa('0x2a'));_0x1ff47b[_0xc5fa('0x31')]=_[_0xc5fa('0x32')](_0x2dfd91[_0xc5fa('0x31')]);_0x1ff47b[_0xc5fa('0x33')]=_[_0xc5fa('0x34')](_0x1ff47b['model'],_0x1ff47b[_0xc5fa('0x31')]);_0x57cb38[_0xc5fa('0x35')]=_[_0xc5fa('0x34')](_0x1ff47b['model'],qs[_0xc5fa('0x36')](_0x2dfd91[_0xc5fa('0x31')][_0xc5fa('0x36')]));_0x57cb38[_0xc5fa('0x35')]=_0x57cb38[_0xc5fa('0x35')][_0xc5fa('0x37')]?_0x57cb38[_0xc5fa('0x35')]:_0x1ff47b[_0xc5fa('0x30')];if(!_0x2dfd91['query']['hasOwnProperty']('nolimit')){_0x57cb38[_0xc5fa('0x21')]=qs['limit'](_0x2dfd91[_0xc5fa('0x31')]['limit']);_0x57cb38[_0xc5fa('0x20')]=qs[_0xc5fa('0x20')](_0x2dfd91['query']['offset']);}_0x57cb38[_0xc5fa('0x38')]=qs['sort'](_0x2dfd91[_0xc5fa('0x31')]['sort']);_0x57cb38[_0xc5fa('0x39')]=qs[_0xc5fa('0x33')](_[_0xc5fa('0x3a')](_0x2dfd91['query'],_0x1ff47b[_0xc5fa('0x33')]),_0x2f976e);if(_0x2dfd91['query'][_0xc5fa('0x3b')]){_0x57cb38[_0xc5fa('0x39')]=_['merge'](_0x57cb38[_0xc5fa('0x39')],{'$or':_[_0xc5fa('0x2c')](_0x2f976e,function(_0x2f5db4){if(_0x2f5db4['type']!=='VIRTUAL'){var _0x185703={};_0x185703[_0x2f5db4[_0xc5fa('0x2a')]]={'$like':'%'+_0x2dfd91[_0xc5fa('0x31')]['filter']+'%'};return _0x185703;}})});}_0x57cb38=_[_0xc5fa('0x3c')]({},_0x57cb38,_0x2dfd91[_0xc5fa('0x3d')]);var _0x1f4a37={'where':_0x57cb38[_0xc5fa('0x39')]};return db['DeskField'][_0xc5fa('0x1f')](_0x1f4a37)[_0xc5fa('0x27')](function(_0x472883){_0xe4e1a9[_0xc5fa('0x1f')]=_0x472883;if(_0x2dfd91[_0xc5fa('0x31')][_0xc5fa('0x3e')]){_0x57cb38[_0xc5fa('0x3f')]=[{'all':!![]}];}return db[_0xc5fa('0x40')][_0xc5fa('0x41')](_0x57cb38);})[_0xc5fa('0x27')](function(_0x390bad){_0xe4e1a9[_0xc5fa('0x42')]=_0x390bad;return _0xe4e1a9;})[_0xc5fa('0x27')](respondWithFilteredResult(_0x1a89da,_0x57cb38))[_0xc5fa('0x43')](handleError(_0x1a89da,null));};exports[_0xc5fa('0x44')]=function(_0x4113a5,_0x24b9bb){var _0x380fa2={'raw':!![],'where':{'id':_0x4113a5[_0xc5fa('0x45')]['id']}},_0x146e88={};_0x146e88[_0xc5fa('0x30')]=_['keys'](db[_0xc5fa('0x40')]['rawAttributes']);_0x146e88[_0xc5fa('0x31')]=_['keys'](_0x4113a5[_0xc5fa('0x31')]);_0x146e88[_0xc5fa('0x33')]=_['intersection'](_0x146e88[_0xc5fa('0x30')],_0x146e88[_0xc5fa('0x31')]);_0x380fa2['attributes']=_[_0xc5fa('0x34')](_0x146e88[_0xc5fa('0x30')],qs[_0xc5fa('0x36')](_0x4113a5['query'][_0xc5fa('0x36')]));_0x380fa2[_0xc5fa('0x35')]=_0x380fa2[_0xc5fa('0x35')]['length']?_0x380fa2[_0xc5fa('0x35')]:_0x146e88[_0xc5fa('0x30')];if(_0x4113a5[_0xc5fa('0x31')]['includeAll']){_0x380fa2[_0xc5fa('0x3f')]=[{'all':!![]}];}_0x380fa2=_[_0xc5fa('0x3c')]({},_0x380fa2,_0x4113a5[_0xc5fa('0x3d')]);return db[_0xc5fa('0x40')]['find'](_0x380fa2)['then'](handleEntityNotFound(_0x24b9bb,null))[_0xc5fa('0x27')](respondWithResult(_0x24b9bb,null))[_0xc5fa('0x43')](handleError(_0x24b9bb,null));};exports['create']=function(_0x575d51,_0x33b02a){return db[_0xc5fa('0x40')][_0xc5fa('0x46')](_0x575d51[_0xc5fa('0x47')],{})[_0xc5fa('0x27')](respondWithResult(_0x33b02a,0xc9))[_0xc5fa('0x43')](handleError(_0x33b02a,null));};exports[_0xc5fa('0x26')]=function(_0x25acca,_0x51e34d){if(_0x25acca[_0xc5fa('0x47')]['id']){delete _0x25acca[_0xc5fa('0x47')]['id'];}return db['DeskField']['find']({'where':{'id':_0x25acca[_0xc5fa('0x45')]['id']}})[_0xc5fa('0x27')](handleEntityNotFound(_0x51e34d,null))[_0xc5fa('0x27')](saveUpdates(_0x25acca['body'],null))[_0xc5fa('0x27')](respondWithResult(_0x51e34d,null))[_0xc5fa('0x43')](handleError(_0x51e34d,null));};exports[_0xc5fa('0x28')]=function(_0x592977,_0xd6da78){return db[_0xc5fa('0x40')][_0xc5fa('0x48')]({'where':{'id':_0x592977[_0xc5fa('0x45')]['id']}})['then'](handleEntityNotFound(_0xd6da78,null))['then'](removeEntity(_0xd6da78,null))['catch'](handleError(_0xd6da78,null));};
\ No newline at end of file
+var _0x347a=['create','body','params','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','lodash','crypto','jsforce','desk.js','to-csv','../../components/parsers/qs','../../components/parsers/advancedSearch','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','limit','undefined','count','offset','set','Content-Range','apply','reject','save','update','error','stack','send','index','map','DeskField','rawAttributes','type','key','model','name','query','keys','filters','attributes','fields','length','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','then','include','findAll','rows','catch','show','intersection','includeAll','options','find'];(function(_0x2b972f,_0x57ac44){var _0x3a8716=function(_0x3c125a){while(--_0x3c125a){_0x2b972f['push'](_0x2b972f['shift']());}};_0x3a8716(++_0x57ac44);}(_0x347a,0x12f));var _0xa347=function(_0x2cbb74,_0x241c10){_0x2cbb74=_0x2cbb74-0x0;var _0xa6d18=_0x347a[_0x2cbb74];return _0xa6d18;};'use strict';var emlformat=require(_0xa347('0x0'));var rimraf=require(_0xa347('0x1'));var zipdir=require(_0xa347('0x2'));var jsonpatch=require(_0xa347('0x3'));var rp=require(_0xa347('0x4'));var moment=require(_0xa347('0x5'));var BPromise=require(_0xa347('0x6'));var Mustache=require(_0xa347('0x7'));var util=require(_0xa347('0x8'));var path=require(_0xa347('0x9'));var sox=require(_0xa347('0xa'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xa347('0xb'));var squel=require('squel');var crypto=require(_0xa347('0xc'));var jsforce=require(_0xa347('0xd'));var deskjs=require(_0xa347('0xe'));var toCsv=require(_0xa347('0xf'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0xa347('0x10'));var as=require(_0xa347('0x11'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0xa347('0x12'));var utils=require(_0xa347('0x13'));var config=require(_0xa347('0x14'));var licenseUtil=require(_0xa347('0x15'));var db=require(_0xa347('0x16'))['db'];function respondWithStatusCode(_0x27ca6a,_0x1fb5f3){_0x1fb5f3=_0x1fb5f3||0xcc;return function(_0x54dac8){if(_0x54dac8){return _0x27ca6a[_0xa347('0x17')](_0x1fb5f3);}return _0x27ca6a[_0xa347('0x18')](_0x1fb5f3)[_0xa347('0x19')]();};}function respondWithResult(_0x4f2cc0,_0x1935b5){_0x1935b5=_0x1935b5||0xc8;return function(_0x313fb9){if(_0x313fb9){return _0x4f2cc0['status'](_0x1935b5)[_0xa347('0x1a')](_0x313fb9);}};}function respondWithFilteredResult(_0x6e4df7,_0x2e51b8){return function(_0xf80252){if(_0xf80252){var _0x4090f0=typeof _0x2e51b8['offset']==='undefined'&&typeof _0x2e51b8[_0xa347('0x1b')]===_0xa347('0x1c');var _0x390943=_0xf80252[_0xa347('0x1d')];var _0x55557b=_0x4090f0?0x0:_0x2e51b8['offset'];var _0x199b44=_0x4090f0?_0xf80252[_0xa347('0x1d')]:_0x2e51b8[_0xa347('0x1e')]+_0x2e51b8[_0xa347('0x1b')];var _0x8a9d17;if(_0x199b44>=_0x390943){_0x199b44=_0x390943;_0x8a9d17=0xc8;}else{_0x8a9d17=0xce;}_0x6e4df7[_0xa347('0x18')](_0x8a9d17);return _0x6e4df7[_0xa347('0x1f')](_0xa347('0x20'),_0x55557b+'-'+_0x199b44+'/'+_0x390943)[_0xa347('0x1a')](_0xf80252);}return null;};}function patchUpdates(_0x2d6e2a){return function(_0x33458a){try{jsonpatch[_0xa347('0x21')](_0x33458a,_0x2d6e2a,!![]);}catch(_0x49b1e5){return BPromise[_0xa347('0x22')](_0x49b1e5);}return _0x33458a[_0xa347('0x23')]();};}function saveUpdates(_0x24b83b,_0x351761){return function(_0x40e66d){if(_0x40e66d){return _0x40e66d[_0xa347('0x24')](_0x24b83b)['then'](function(_0x46bbba){return _0x46bbba;});}return null;};}function removeEntity(_0xd03421,_0x4a6c74){return function(_0x4d3d3f){if(_0x4d3d3f){return _0x4d3d3f['destroy']()['then'](function(){_0xd03421['status'](0xcc)[_0xa347('0x19')]();});}};}function handleEntityNotFound(_0x3c34f4,_0x4aec5a){return function(_0x412e84){if(!_0x412e84){_0x3c34f4['sendStatus'](0x194);}return _0x412e84;};}function handleError(_0x195e98,_0x496358){_0x496358=_0x496358||0x1f4;return function(_0x3a4624){logger[_0xa347('0x25')](_0x3a4624[_0xa347('0x26')]);if(_0x3a4624['name']){delete _0x3a4624['name'];}_0x195e98[_0xa347('0x18')](_0x496358)[_0xa347('0x27')](_0x3a4624);};}exports[_0xa347('0x28')]=function(_0x83f097,_0x555f36){var _0x52c5f9={},_0x23d5c9={},_0x1d38b0={'count':0x0,'rows':[]};var _0x1b2ead=_[_0xa347('0x29')](db[_0xa347('0x2a')][_0xa347('0x2b')],function(_0x3530cc){return{'name':_0x3530cc['fieldName'],'type':_0x3530cc[_0xa347('0x2c')][_0xa347('0x2d')]};});_0x23d5c9[_0xa347('0x2e')]=_[_0xa347('0x29')](_0x1b2ead,_0xa347('0x2f'));_0x23d5c9[_0xa347('0x30')]=_[_0xa347('0x31')](_0x83f097[_0xa347('0x30')]);_0x23d5c9[_0xa347('0x32')]=_['intersection'](_0x23d5c9['model'],_0x23d5c9[_0xa347('0x30')]);_0x52c5f9[_0xa347('0x33')]=_['intersection'](_0x23d5c9[_0xa347('0x2e')],qs[_0xa347('0x34')](_0x83f097[_0xa347('0x30')][_0xa347('0x34')]));_0x52c5f9[_0xa347('0x33')]=_0x52c5f9[_0xa347('0x33')][_0xa347('0x35')]?_0x52c5f9[_0xa347('0x33')]:_0x23d5c9[_0xa347('0x2e')];if(!_0x83f097[_0xa347('0x30')]['hasOwnProperty'](_0xa347('0x36'))){_0x52c5f9[_0xa347('0x1b')]=qs[_0xa347('0x1b')](_0x83f097[_0xa347('0x30')]['limit']);_0x52c5f9[_0xa347('0x1e')]=qs[_0xa347('0x1e')](_0x83f097[_0xa347('0x30')][_0xa347('0x1e')]);}_0x52c5f9[_0xa347('0x37')]=qs[_0xa347('0x38')](_0x83f097['query'][_0xa347('0x38')]);_0x52c5f9[_0xa347('0x39')]=qs[_0xa347('0x32')](_[_0xa347('0x3a')](_0x83f097[_0xa347('0x30')],_0x23d5c9['filters']),_0x1b2ead);if(_0x83f097[_0xa347('0x30')][_0xa347('0x3b')]){_0x52c5f9[_0xa347('0x39')]=_[_0xa347('0x3c')](_0x52c5f9['where'],{'$or':_[_0xa347('0x29')](_0x1b2ead,function(_0x11db90){if(_0x11db90[_0xa347('0x2c')]!==_0xa347('0x3d')){var _0x3eaa96={};_0x3eaa96[_0x11db90[_0xa347('0x2f')]]={'$like':'%'+_0x83f097[_0xa347('0x30')]['filter']+'%'};return _0x3eaa96;}})});}_0x52c5f9=_[_0xa347('0x3c')]({},_0x52c5f9,_0x83f097['options']);var _0x167e22={'where':_0x52c5f9[_0xa347('0x39')]};return db[_0xa347('0x2a')][_0xa347('0x1d')](_0x167e22)[_0xa347('0x3e')](function(_0x52b1d9){_0x1d38b0['count']=_0x52b1d9;if(_0x83f097[_0xa347('0x30')]['includeAll']){_0x52c5f9[_0xa347('0x3f')]=[{'all':!![]}];}return db[_0xa347('0x2a')][_0xa347('0x40')](_0x52c5f9);})['then'](function(_0x2b7fdd){_0x1d38b0[_0xa347('0x41')]=_0x2b7fdd;return _0x1d38b0;})[_0xa347('0x3e')](respondWithFilteredResult(_0x555f36,_0x52c5f9))[_0xa347('0x42')](handleError(_0x555f36,null));};exports[_0xa347('0x43')]=function(_0x115223,_0x5675ec){var _0x19f3a6={'raw':!![],'where':{'id':_0x115223['params']['id']}},_0x430d7a={};_0x430d7a[_0xa347('0x2e')]=_[_0xa347('0x31')](db[_0xa347('0x2a')][_0xa347('0x2b')]);_0x430d7a[_0xa347('0x30')]=_[_0xa347('0x31')](_0x115223['query']);_0x430d7a[_0xa347('0x32')]=_[_0xa347('0x44')](_0x430d7a['model'],_0x430d7a[_0xa347('0x30')]);_0x19f3a6[_0xa347('0x33')]=_[_0xa347('0x44')](_0x430d7a[_0xa347('0x2e')],qs[_0xa347('0x34')](_0x115223[_0xa347('0x30')][_0xa347('0x34')]));_0x19f3a6[_0xa347('0x33')]=_0x19f3a6[_0xa347('0x33')][_0xa347('0x35')]?_0x19f3a6['attributes']:_0x430d7a[_0xa347('0x2e')];if(_0x115223[_0xa347('0x30')][_0xa347('0x45')]){_0x19f3a6['include']=[{'all':!![]}];}_0x19f3a6=_[_0xa347('0x3c')]({},_0x19f3a6,_0x115223[_0xa347('0x46')]);return db[_0xa347('0x2a')][_0xa347('0x47')](_0x19f3a6)[_0xa347('0x3e')](handleEntityNotFound(_0x5675ec,null))['then'](respondWithResult(_0x5675ec,null))['catch'](handleError(_0x5675ec,null));};exports[_0xa347('0x48')]=function(_0x19e8f3,_0x1b4ee3){return db[_0xa347('0x2a')][_0xa347('0x48')](_0x19e8f3['body'],{})[_0xa347('0x3e')](respondWithResult(_0x1b4ee3,0xc9))['catch'](handleError(_0x1b4ee3,null));};exports[_0xa347('0x24')]=function(_0x424ca6,_0x444f29){if(_0x424ca6['body']['id']){delete _0x424ca6[_0xa347('0x49')]['id'];}return db[_0xa347('0x2a')][_0xa347('0x47')]({'where':{'id':_0x424ca6[_0xa347('0x4a')]['id']}})[_0xa347('0x3e')](handleEntityNotFound(_0x444f29,null))[_0xa347('0x3e')](saveUpdates(_0x424ca6['body'],null))[_0xa347('0x3e')](respondWithResult(_0x444f29,null))[_0xa347('0x42')](handleError(_0x444f29,null));};exports['destroy']=function(_0x5c02ca,_0x590d55){return db[_0xa347('0x2a')][_0xa347('0x47')]({'where':{'id':_0x5c02ca[_0xa347('0x4a')]['id']}})[_0xa347('0x3e')](handleEntityNotFound(_0x590d55,null))[_0xa347('0x3e')](removeEntity(_0x590d55,null))[_0xa347('0x42')](handleError(_0x590d55,null));};
\ No newline at end of file