Built motion from commit da617fac.|2.6.6
[motion2.git] / server / api / squareReport / squareReport.controller.js
index 23c884d..c9489cc 100644 (file)
@@ -15,4 +15,4 @@
 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                        *
 // *                                                                       *
 // *************************************************************************
-var _0xfd1e=['length','includeAll','find','create','body','destroy','describe','html-pdf','eml-format','rimraf','request-promise','bluebird','mustache','util','sox','to-csv','ejs','lodash','squel','crypto','desk.js','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/environment','../../mysqldb','sendStatus','status','end','json','count','offset','limit','apply','save','update','then','name','send','map','SquareReport','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','fields','attributes','hasOwnProperty','nolimit','sort','where','pick','merge','VIRTUAL','filter','options','findAll','rows','catch','show','params'];(function(_0x102c14,_0x5839b9){var _0xdf57b4=function(_0x288d50){while(--_0x288d50){_0x102c14['push'](_0x102c14['shift']());}};_0xdf57b4(++_0x5839b9);}(_0xfd1e,0x1a5));var _0xefd1=function(_0x3b4a24,_0x434a1c){_0x3b4a24=_0x3b4a24-0x0;var _0x27e8da=_0xfd1e[_0x3b4a24];return _0x27e8da;};'use strict';var pdf=require(_0xefd1('0x0'));var emlformat=require(_0xefd1('0x1'));var rimraf=require(_0xefd1('0x2'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0xefd1('0x3'));var moment=require('moment');var BPromise=require(_0xefd1('0x4'));var Mustache=require(_0xefd1('0x5'));var util=require(_0xefd1('0x6'));var path=require('path');var sox=require(_0xefd1('0x7'));var csv=require(_0xefd1('0x8'));var ejs=require(_0xefd1('0x9'));var fs=require('fs');var _=require(_0xefd1('0xa'));var squel=require(_0xefd1('0xb'));var crypto=require(_0xefd1('0xc'));var jsforce=require('jsforce');var deskjs=require(_0xefd1('0xd'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0xefd1('0xe'));var authService=require(_0xefd1('0xf'));var qs=require(_0xefd1('0x10'));var as=require(_0xefd1('0x11'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xefd1('0x12'))(_0xefd1('0x13'));var utils=require('../../config/utils');var config=require(_0xefd1('0x14'));var db=require(_0xefd1('0x15'))['db'];function respondWithStatusCode(_0x47d6a4,_0x3bd001){_0x3bd001=_0x3bd001||0xcc;return function(_0x3ce109){if(_0x3ce109){return _0x47d6a4[_0xefd1('0x16')](_0x3bd001);}return _0x47d6a4[_0xefd1('0x17')](_0x3bd001)[_0xefd1('0x18')]();};}function respondWithResult(_0x4cd767,_0x3aabe6){_0x3aabe6=_0x3aabe6||0xc8;return function(_0x33af77){if(_0x33af77){return _0x4cd767[_0xefd1('0x17')](_0x3aabe6)[_0xefd1('0x19')](_0x33af77);}};}function respondWithFilteredResult(_0x2855cd,_0xff8e2d){return function(_0x56bd75){if(_0x56bd75){var _0x460da8=_0x56bd75[_0xefd1('0x1a')],_0x5910ce=_0xff8e2d['offset'],_0x4a8b54=_0xff8e2d[_0xefd1('0x1b')]+_0xff8e2d[_0xefd1('0x1c')],_0x4c0819;if(_0x4a8b54>=_0x460da8){_0x4a8b54=_0x460da8;_0x4c0819=0xc8;}else{_0x4c0819=0xce;}_0x2855cd[_0xefd1('0x17')](_0x4c0819);return _0x2855cd['set']('Content-Range',_0x5910ce+'-'+_0x4a8b54+'/'+_0x460da8)[_0xefd1('0x19')](_0x56bd75);}return null;};}function patchUpdates(_0x3e5363){return function(_0x14b354){try{jsonpatch[_0xefd1('0x1d')](_0x14b354,_0x3e5363,!![]);}catch(_0x2169a0){return BPromise['reject'](_0x2169a0);}return _0x14b354[_0xefd1('0x1e')]();};}function saveUpdates(_0x22946a,_0x301d16){return function(_0x5f3c01){if(_0x5f3c01){return _0x5f3c01[_0xefd1('0x1f')](_0x22946a)[_0xefd1('0x20')](function(_0x267d98){return _0x267d98;});}return null;};}function removeEntity(_0x49336f,_0x3b9563){return function(_0x29aebf){if(_0x29aebf){return _0x29aebf['destroy']()['then'](function(){_0x49336f[_0xefd1('0x17')](0xcc)[_0xefd1('0x18')]();});}};}function handleEntityNotFound(_0x52807f,_0x43dc1a){return function(_0x438e21){if(!_0x438e21){_0x52807f[_0xefd1('0x16')](0x194);}return _0x438e21;};}function handleError(_0x6dfc2f,_0x947ee6){_0x947ee6=_0x947ee6||0x1f4;return function(_0xe6c3f4){logger['error'](_0xe6c3f4['stack']);if(_0xe6c3f4['name']){delete _0xe6c3f4[_0xefd1('0x21')];}_0x6dfc2f[_0xefd1('0x17')](_0x947ee6)[_0xefd1('0x22')](_0xe6c3f4);};}exports['index']=function(_0x143e39,_0x2b32fb){var _0x2a914e={},_0x164634={},_0x339f3c={'count':0x0,'rows':[]};var _0x554a93=_[_0xefd1('0x23')](db[_0xefd1('0x24')][_0xefd1('0x25')],function(_0x210b5b){return{'name':_0x210b5b[_0xefd1('0x26')],'type':_0x210b5b[_0xefd1('0x27')][_0xefd1('0x28')]};});_0x164634[_0xefd1('0x29')]=_[_0xefd1('0x23')](_0x554a93,_0xefd1('0x21'));_0x164634[_0xefd1('0x2a')]=_[_0xefd1('0x2b')](_0x143e39['query']);_0x164634[_0xefd1('0x2c')]=_[_0xefd1('0x2d')](_0x164634[_0xefd1('0x29')],_0x164634[_0xefd1('0x2a')]);_0x2a914e['attributes']=_[_0xefd1('0x2d')](_0x164634['model'],qs['fields'](_0x143e39[_0xefd1('0x2a')][_0xefd1('0x2e')]));_0x2a914e[_0xefd1('0x2f')]=_0x2a914e[_0xefd1('0x2f')]['length']?_0x2a914e[_0xefd1('0x2f')]:_0x164634['model'];if(!_0x143e39[_0xefd1('0x2a')][_0xefd1('0x30')](_0xefd1('0x31'))){_0x2a914e[_0xefd1('0x1c')]=qs[_0xefd1('0x1c')](_0x143e39[_0xefd1('0x2a')][_0xefd1('0x1c')]);_0x2a914e[_0xefd1('0x1b')]=qs[_0xefd1('0x1b')](_0x143e39[_0xefd1('0x2a')][_0xefd1('0x1b')]);}_0x2a914e['order']=qs[_0xefd1('0x32')](_0x143e39[_0xefd1('0x2a')][_0xefd1('0x32')]);_0x2a914e[_0xefd1('0x33')]=qs[_0xefd1('0x2c')](_[_0xefd1('0x34')](_0x143e39['query'],_0x164634[_0xefd1('0x2c')]),_0x554a93);if(_0x143e39['query']['filter']){_0x2a914e['where']=_[_0xefd1('0x35')](_0x2a914e[_0xefd1('0x33')],{'$or':_[_0xefd1('0x23')](_0x554a93,function(_0x2876c0){if(_0x2876c0[_0xefd1('0x27')]!==_0xefd1('0x36')){var _0x1ae384={};_0x1ae384[_0x2876c0[_0xefd1('0x21')]]={'$like':'%'+_0x143e39[_0xefd1('0x2a')][_0xefd1('0x37')]+'%'};return _0x1ae384;}})});}_0x2a914e=_[_0xefd1('0x35')]({},_0x2a914e,_0x143e39[_0xefd1('0x38')]);var _0x4c7e16={'where':_0x2a914e['where']};return db['SquareReport'][_0xefd1('0x1a')](_0x4c7e16)[_0xefd1('0x20')](function(_0x5f2f68){_0x339f3c[_0xefd1('0x1a')]=_0x5f2f68;if(_0x143e39['query']['includeAll']){_0x2a914e['include']=[{'all':!![]}];}return db[_0xefd1('0x24')][_0xefd1('0x39')](_0x2a914e);})[_0xefd1('0x20')](function(_0x311d88){_0x339f3c[_0xefd1('0x3a')]=_0x311d88;return _0x339f3c;})[_0xefd1('0x20')](respondWithFilteredResult(_0x2b32fb,_0x2a914e))[_0xefd1('0x3b')](handleError(_0x2b32fb,null));};exports[_0xefd1('0x3c')]=function(_0x40eeda,_0xad179b){var _0x496834={'raw':!![],'where':{'id':_0x40eeda[_0xefd1('0x3d')]['id']}},_0x1bc5bc={};_0x1bc5bc[_0xefd1('0x29')]=_['keys'](db[_0xefd1('0x24')][_0xefd1('0x25')]);_0x1bc5bc[_0xefd1('0x2a')]=_[_0xefd1('0x2b')](_0x40eeda[_0xefd1('0x2a')]);_0x1bc5bc[_0xefd1('0x2c')]=_['intersection'](_0x1bc5bc[_0xefd1('0x29')],_0x1bc5bc[_0xefd1('0x2a')]);_0x496834[_0xefd1('0x2f')]=_[_0xefd1('0x2d')](_0x1bc5bc[_0xefd1('0x29')],qs[_0xefd1('0x2e')](_0x40eeda[_0xefd1('0x2a')][_0xefd1('0x2e')]));_0x496834[_0xefd1('0x2f')]=_0x496834['attributes'][_0xefd1('0x3e')]?_0x496834[_0xefd1('0x2f')]:_0x1bc5bc[_0xefd1('0x29')];if(_0x40eeda['query'][_0xefd1('0x3f')]){_0x496834['include']=[{'all':!![]}];}_0x496834=_[_0xefd1('0x35')]({},_0x496834,_0x40eeda[_0xefd1('0x38')]);return db[_0xefd1('0x24')][_0xefd1('0x40')](_0x496834)[_0xefd1('0x20')](handleEntityNotFound(_0xad179b,null))[_0xefd1('0x20')](respondWithResult(_0xad179b,null))['catch'](handleError(_0xad179b,null));};exports[_0xefd1('0x41')]=function(_0x4e8e62,_0xecf284){return db[_0xefd1('0x24')]['create'](_0x4e8e62[_0xefd1('0x42')],{})[_0xefd1('0x20')](respondWithResult(_0xecf284,0xc9))[_0xefd1('0x3b')](handleError(_0xecf284,null));};exports[_0xefd1('0x1f')]=function(_0x5681c6,_0x200fdc){if(_0x5681c6[_0xefd1('0x42')]['id']){delete _0x5681c6[_0xefd1('0x42')]['id'];}return db[_0xefd1('0x24')]['find']({'where':{'id':_0x5681c6[_0xefd1('0x3d')]['id']}})['then'](handleEntityNotFound(_0x200fdc,null))[_0xefd1('0x20')](saveUpdates(_0x5681c6[_0xefd1('0x42')],null))[_0xefd1('0x20')](respondWithResult(_0x200fdc,null))['catch'](handleError(_0x200fdc,null));};exports[_0xefd1('0x43')]=function(_0x1a361c,_0x1490ef){return db[_0xefd1('0x24')][_0xefd1('0x40')]({'where':{'id':_0x1a361c[_0xefd1('0x3d')]['id']}})[_0xefd1('0x20')](handleEntityNotFound(_0x1490ef,null))['then'](removeEntity(_0x1490ef,null))[_0xefd1('0x3b')](handleError(_0x1490ef,null));};exports[_0xefd1('0x44')]=function(_0x581b5a,_0xca395d){return db[_0xefd1('0x24')][_0xefd1('0x44')]()[_0xefd1('0x20')](respondWithResult(_0xca395d,null))[_0xefd1('0x3b')](handleError(_0xca395d,null));};
\ No newline at end of file
+var _0x45e6=['Content-Range','apply','reject','save','destroy','then','error','stack','name','send','index','map','SquareReport','rawAttributes','fieldName','type','model','keys','query','filters','intersection','attributes','fields','sort','where','pick','filter','merge','options','includeAll','findAll','rows','show','params','length','include','find','catch','create','body','describe','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/environment','../../config/license/util','sendStatus','status','json','offset','undefined','limit','count'];(function(_0x4546eb,_0x3aafa0){var _0x2035d4=function(_0x4a92f0){while(--_0x4a92f0){_0x4546eb['push'](_0x4546eb['shift']());}};_0x2035d4(++_0x3aafa0);}(_0x45e6,0x1a5));var _0x645e=function(_0x44946b,_0xf874ec){_0x44946b=_0x44946b-0x0;var _0x249bc4=_0x45e6[_0x44946b];return _0x249bc4;};'use strict';var emlformat=require(_0x645e('0x0'));var rimraf=require(_0x645e('0x1'));var zipdir=require(_0x645e('0x2'));var jsonpatch=require(_0x645e('0x3'));var rp=require(_0x645e('0x4'));var moment=require(_0x645e('0x5'));var BPromise=require(_0x645e('0x6'));var Mustache=require(_0x645e('0x7'));var util=require(_0x645e('0x8'));var path=require(_0x645e('0x9'));var sox=require(_0x645e('0xa'));var csv=require(_0x645e('0xb'));var ejs=require(_0x645e('0xc'));var fs=require('fs');var fs_extra=require(_0x645e('0xd'));var _=require(_0x645e('0xe'));var squel=require(_0x645e('0xf'));var crypto=require('crypto');var jsforce=require(_0x645e('0x10'));var deskjs=require(_0x645e('0x11'));var toCsv=require(_0x645e('0xb'));var querystring=require(_0x645e('0x12'));var Papa=require(_0x645e('0x13'));var Redis=require(_0x645e('0x14'));var authService=require(_0x645e('0x15'));var qs=require(_0x645e('0x16'));var as=require(_0x645e('0x17'));var hardwareService=require(_0x645e('0x18'));var logger=require(_0x645e('0x19'))('api');var utils=require('../../config/utils');var config=require(_0x645e('0x1a'));var licenseUtil=require(_0x645e('0x1b'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x56cb52,_0x22a5b8){_0x22a5b8=_0x22a5b8||0xcc;return function(_0x52c03c){if(_0x52c03c){return _0x56cb52[_0x645e('0x1c')](_0x22a5b8);}return _0x56cb52['status'](_0x22a5b8)['end']();};}function respondWithResult(_0x4faf90,_0x15a3d6){_0x15a3d6=_0x15a3d6||0xc8;return function(_0x10927e){if(_0x10927e){return _0x4faf90[_0x645e('0x1d')](_0x15a3d6)[_0x645e('0x1e')](_0x10927e);}};}function respondWithFilteredResult(_0x148c56,_0x7a6906){return function(_0x19f319){if(_0x19f319){var _0xfe883c=typeof _0x7a6906[_0x645e('0x1f')]===_0x645e('0x20')&&typeof _0x7a6906[_0x645e('0x21')]===_0x645e('0x20');var _0x71a8c1=_0x19f319[_0x645e('0x22')];var _0x39ef95=_0xfe883c?0x0:_0x7a6906[_0x645e('0x1f')];var _0x1e584a=_0xfe883c?_0x19f319[_0x645e('0x22')]:_0x7a6906['offset']+_0x7a6906['limit'];var _0xb352be;if(_0x1e584a>=_0x71a8c1){_0x1e584a=_0x71a8c1;_0xb352be=0xc8;}else{_0xb352be=0xce;}_0x148c56[_0x645e('0x1d')](_0xb352be);return _0x148c56['set'](_0x645e('0x23'),_0x39ef95+'-'+_0x1e584a+'/'+_0x71a8c1)[_0x645e('0x1e')](_0x19f319);}return null;};}function patchUpdates(_0x3ace63){return function(_0x384a08){try{jsonpatch[_0x645e('0x24')](_0x384a08,_0x3ace63,!![]);}catch(_0x4c44e6){return BPromise[_0x645e('0x25')](_0x4c44e6);}return _0x384a08[_0x645e('0x26')]();};}function saveUpdates(_0x50d48c,_0x4fa282){return function(_0x59627e){if(_0x59627e){return _0x59627e['update'](_0x50d48c)['then'](function(_0x1243b3){return _0x1243b3;});}return null;};}function removeEntity(_0x261742,_0x2cbc97){return function(_0x47fa6e){if(_0x47fa6e){return _0x47fa6e[_0x645e('0x27')]()[_0x645e('0x28')](function(){_0x261742[_0x645e('0x1d')](0xcc)['end']();});}};}function handleEntityNotFound(_0x224a28,_0x2451ee){return function(_0x29daa4){if(!_0x29daa4){_0x224a28['sendStatus'](0x194);}return _0x29daa4;};}function handleError(_0x551c2f,_0x39e96d){_0x39e96d=_0x39e96d||0x1f4;return function(_0x134314){logger[_0x645e('0x29')](_0x134314[_0x645e('0x2a')]);if(_0x134314[_0x645e('0x2b')]){delete _0x134314['name'];}_0x551c2f[_0x645e('0x1d')](_0x39e96d)[_0x645e('0x2c')](_0x134314);};}exports[_0x645e('0x2d')]=function(_0x7698bd,_0x4ed822){var _0x204c4b={},_0x5cf92a={},_0x26c302={'count':0x0,'rows':[]};var _0x443b87=_[_0x645e('0x2e')](db[_0x645e('0x2f')][_0x645e('0x30')],function(_0x1d82d3){return{'name':_0x1d82d3[_0x645e('0x31')],'type':_0x1d82d3[_0x645e('0x32')]['key']};});_0x5cf92a[_0x645e('0x33')]=_[_0x645e('0x2e')](_0x443b87,_0x645e('0x2b'));_0x5cf92a['query']=_[_0x645e('0x34')](_0x7698bd[_0x645e('0x35')]);_0x5cf92a[_0x645e('0x36')]=_[_0x645e('0x37')](_0x5cf92a[_0x645e('0x33')],_0x5cf92a[_0x645e('0x35')]);_0x204c4b[_0x645e('0x38')]=_['intersection'](_0x5cf92a[_0x645e('0x33')],qs[_0x645e('0x39')](_0x7698bd[_0x645e('0x35')][_0x645e('0x39')]));_0x204c4b[_0x645e('0x38')]=_0x204c4b[_0x645e('0x38')]['length']?_0x204c4b[_0x645e('0x38')]:_0x5cf92a[_0x645e('0x33')];if(!_0x7698bd[_0x645e('0x35')]['hasOwnProperty']('nolimit')){_0x204c4b[_0x645e('0x21')]=qs[_0x645e('0x21')](_0x7698bd[_0x645e('0x35')][_0x645e('0x21')]);_0x204c4b['offset']=qs[_0x645e('0x1f')](_0x7698bd['query'][_0x645e('0x1f')]);}_0x204c4b['order']=qs['sort'](_0x7698bd['query'][_0x645e('0x3a')]);_0x204c4b[_0x645e('0x3b')]=qs[_0x645e('0x36')](_[_0x645e('0x3c')](_0x7698bd['query'],_0x5cf92a[_0x645e('0x36')]),_0x443b87);if(_0x7698bd[_0x645e('0x35')][_0x645e('0x3d')]){_0x204c4b['where']=_[_0x645e('0x3e')](_0x204c4b[_0x645e('0x3b')],{'$or':_[_0x645e('0x2e')](_0x443b87,function(_0x53c77e){if(_0x53c77e[_0x645e('0x32')]!=='VIRTUAL'){var _0x3329b9={};_0x3329b9[_0x53c77e[_0x645e('0x2b')]]={'$like':'%'+_0x7698bd[_0x645e('0x35')][_0x645e('0x3d')]+'%'};return _0x3329b9;}})});}_0x204c4b=_['merge']({},_0x204c4b,_0x7698bd[_0x645e('0x3f')]);var _0x5dab4c={'where':_0x204c4b[_0x645e('0x3b')]};return db['SquareReport'][_0x645e('0x22')](_0x5dab4c)['then'](function(_0x4938bb){_0x26c302[_0x645e('0x22')]=_0x4938bb;if(_0x7698bd[_0x645e('0x35')][_0x645e('0x40')]){_0x204c4b['include']=[{'all':!![]}];}return db[_0x645e('0x2f')][_0x645e('0x41')](_0x204c4b);})[_0x645e('0x28')](function(_0x3aa135){_0x26c302[_0x645e('0x42')]=_0x3aa135;return _0x26c302;})[_0x645e('0x28')](respondWithFilteredResult(_0x4ed822,_0x204c4b))['catch'](handleError(_0x4ed822,null));};exports[_0x645e('0x43')]=function(_0x3513ad,_0x516d58){var _0x41a301={'raw':!![],'where':{'id':_0x3513ad[_0x645e('0x44')]['id']}},_0x36f0e0={};_0x36f0e0['model']=_[_0x645e('0x34')](db[_0x645e('0x2f')][_0x645e('0x30')]);_0x36f0e0[_0x645e('0x35')]=_[_0x645e('0x34')](_0x3513ad[_0x645e('0x35')]);_0x36f0e0[_0x645e('0x36')]=_[_0x645e('0x37')](_0x36f0e0[_0x645e('0x33')],_0x36f0e0['query']);_0x41a301[_0x645e('0x38')]=_['intersection'](_0x36f0e0[_0x645e('0x33')],qs[_0x645e('0x39')](_0x3513ad[_0x645e('0x35')]['fields']));_0x41a301[_0x645e('0x38')]=_0x41a301[_0x645e('0x38')][_0x645e('0x45')]?_0x41a301[_0x645e('0x38')]:_0x36f0e0[_0x645e('0x33')];if(_0x3513ad[_0x645e('0x35')][_0x645e('0x40')]){_0x41a301[_0x645e('0x46')]=[{'all':!![]}];}_0x41a301=_[_0x645e('0x3e')]({},_0x41a301,_0x3513ad[_0x645e('0x3f')]);return db[_0x645e('0x2f')][_0x645e('0x47')](_0x41a301)['then'](handleEntityNotFound(_0x516d58,null))[_0x645e('0x28')](respondWithResult(_0x516d58,null))[_0x645e('0x48')](handleError(_0x516d58,null));};exports[_0x645e('0x49')]=function(_0xa8f07c,_0x52297a){return db[_0x645e('0x2f')][_0x645e('0x49')](_0xa8f07c['body'],{})[_0x645e('0x28')](respondWithResult(_0x52297a,0xc9))[_0x645e('0x48')](handleError(_0x52297a,null));};exports['update']=function(_0x2686fe,_0xf01bb4){if(_0x2686fe['body']['id']){delete _0x2686fe['body']['id'];}return db[_0x645e('0x2f')][_0x645e('0x47')]({'where':{'id':_0x2686fe[_0x645e('0x44')]['id']}})[_0x645e('0x28')](handleEntityNotFound(_0xf01bb4,null))[_0x645e('0x28')](saveUpdates(_0x2686fe[_0x645e('0x4a')],null))[_0x645e('0x28')](respondWithResult(_0xf01bb4,null))[_0x645e('0x48')](handleError(_0xf01bb4,null));};exports['destroy']=function(_0x32c102,_0xf98132){return db['SquareReport']['find']({'where':{'id':_0x32c102['params']['id']}})[_0x645e('0x28')](handleEntityNotFound(_0xf98132,null))[_0x645e('0x28')](removeEntity(_0xf98132,null))[_0x645e('0x48')](handleError(_0xf98132,null));};exports[_0x645e('0x4b')]=function(_0x3f2241,_0x264ec4){return db[_0x645e('0x2f')][_0x645e('0x4b')]()['then'](respondWithResult(_0x264ec4,null))['catch'](handleError(_0x264ec4,null));};
\ No newline at end of file