Built motion from commit (unavailable).|2.5.25
[motion2.git] / server / api / mailQueueReport / mailQueueReport.controller.js
index 95d9e5f..16e6829 100644 (file)
@@ -15,4 +15,4 @@
 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                        *
 // *                                                                       *
 // *************************************************************************
-var _0x3aa1=['find','create','body','eml-format','rimraf','request-promise','moment','bluebird','mustache','util','sox','ejs','lodash','squel','jsforce','desk.js','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../mysqldb','sendStatus','status','end','json','count','offset','limit','set','apply','reject','save','update','destroy','error','stack','name','send','index','MailQueueReport','rawAttributes','fieldName','model','map','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','type','VIRTUAL','merge','options','then','include','findAll','rows','catch','show','params'];(function(_0x5c51f2,_0x526de8){var _0x45cd05=function(_0x3cbb19){while(--_0x3cbb19){_0x5c51f2['push'](_0x5c51f2['shift']());}};_0x45cd05(++_0x526de8);}(_0x3aa1,0xdb));var _0x13aa=function(_0x5831e0,_0x158ec4){_0x5831e0=_0x5831e0-0x0;var _0x5af09c=_0x3aa1[_0x5831e0];return _0x5af09c;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x13aa('0x0'));var rimraf=require(_0x13aa('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x13aa('0x2'));var moment=require(_0x13aa('0x3'));var BPromise=require(_0x13aa('0x4'));var Mustache=require(_0x13aa('0x5'));var util=require(_0x13aa('0x6'));var path=require('path');var sox=require(_0x13aa('0x7'));var csv=require('to-csv');var ejs=require(_0x13aa('0x8'));var fs=require('fs');var _=require(_0x13aa('0x9'));var squel=require(_0x13aa('0xa'));var crypto=require('crypto');var jsforce=require(_0x13aa('0xb'));var deskjs=require(_0x13aa('0xc'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x13aa('0xd'));var Redis=require(_0x13aa('0xe'));var authService=require('../../components/auth/service');var qs=require(_0x13aa('0xf'));var as=require(_0x13aa('0x10'));var hardwareService=require(_0x13aa('0x11'));var logger=require(_0x13aa('0x12'))('api');var utils=require(_0x13aa('0x13'));var config=require('../../config/environment');var db=require(_0x13aa('0x14'))['db'];function respondWithStatusCode(_0x343f0f,_0x56fbca){_0x56fbca=_0x56fbca||0xcc;return function(_0x1d03f9){if(_0x1d03f9){return _0x343f0f[_0x13aa('0x15')](_0x56fbca);}return _0x343f0f[_0x13aa('0x16')](_0x56fbca)[_0x13aa('0x17')]();};}function respondWithResult(_0x29725a,_0x558f7e){_0x558f7e=_0x558f7e||0xc8;return function(_0x1df399){if(_0x1df399){return _0x29725a[_0x13aa('0x16')](_0x558f7e)[_0x13aa('0x18')](_0x1df399);}};}function respondWithFilteredResult(_0x2b79f8,_0x3b87c1){return function(_0x463e09){if(_0x463e09){var _0x3be142=_0x463e09[_0x13aa('0x19')],_0x1da6ea=_0x3b87c1['offset'],_0x4451ae=_0x3b87c1[_0x13aa('0x1a')]+_0x3b87c1[_0x13aa('0x1b')],_0x3b038b;if(_0x4451ae>=_0x3be142){_0x4451ae=_0x3be142;_0x3b038b=0xc8;}else{_0x3b038b=0xce;}_0x2b79f8[_0x13aa('0x16')](_0x3b038b);return _0x2b79f8[_0x13aa('0x1c')]('Content-Range',_0x1da6ea+'-'+_0x4451ae+'/'+_0x3be142)[_0x13aa('0x18')](_0x463e09);}return null;};}function patchUpdates(_0x489593){return function(_0x695cc4){try{jsonpatch[_0x13aa('0x1d')](_0x695cc4,_0x489593,!![]);}catch(_0x3e986d){return BPromise[_0x13aa('0x1e')](_0x3e986d);}return _0x695cc4[_0x13aa('0x1f')]();};}function saveUpdates(_0x303bce,_0x29add1){return function(_0xfc6b44){if(_0xfc6b44){return _0xfc6b44[_0x13aa('0x20')](_0x303bce)['then'](function(_0x3ccf98){return _0x3ccf98;});}return null;};}function removeEntity(_0x407ff9,_0x5efae2){return function(_0x5053b7){if(_0x5053b7){return _0x5053b7[_0x13aa('0x21')]()['then'](function(){_0x407ff9[_0x13aa('0x16')](0xcc)['end']();});}};}function handleEntityNotFound(_0x18ba92,_0x57e8fb){return function(_0x19d9ce){if(!_0x19d9ce){_0x18ba92['sendStatus'](0x194);}return _0x19d9ce;};}function handleError(_0x213ad7,_0x5bb914){_0x5bb914=_0x5bb914||0x1f4;return function(_0x34127f){logger[_0x13aa('0x22')](_0x34127f[_0x13aa('0x23')]);if(_0x34127f['name']){delete _0x34127f[_0x13aa('0x24')];}_0x213ad7['status'](_0x5bb914)[_0x13aa('0x25')](_0x34127f);};}exports[_0x13aa('0x26')]=function(_0x47c067,_0x577cab){var _0x4a5963={},_0x55e7f7={},_0x31a1f0={'count':0x0,'rows':[]};var _0x4875ec=_['map'](db[_0x13aa('0x27')][_0x13aa('0x28')],function(_0x38286c){return{'name':_0x38286c[_0x13aa('0x29')],'type':_0x38286c['type']['key']};});_0x55e7f7[_0x13aa('0x2a')]=_[_0x13aa('0x2b')](_0x4875ec,_0x13aa('0x24'));_0x55e7f7[_0x13aa('0x2c')]=_[_0x13aa('0x2d')](_0x47c067[_0x13aa('0x2c')]);_0x55e7f7[_0x13aa('0x2e')]=_[_0x13aa('0x2f')](_0x55e7f7[_0x13aa('0x2a')],_0x55e7f7['query']);_0x4a5963[_0x13aa('0x30')]=_[_0x13aa('0x2f')](_0x55e7f7['model'],qs[_0x13aa('0x31')](_0x47c067[_0x13aa('0x2c')]['fields']));_0x4a5963[_0x13aa('0x30')]=_0x4a5963[_0x13aa('0x30')][_0x13aa('0x32')]?_0x4a5963[_0x13aa('0x30')]:_0x55e7f7[_0x13aa('0x2a')];if(!_0x47c067['query'][_0x13aa('0x33')](_0x13aa('0x34'))){_0x4a5963[_0x13aa('0x1b')]=qs[_0x13aa('0x1b')](_0x47c067[_0x13aa('0x2c')]['limit']);_0x4a5963[_0x13aa('0x1a')]=qs[_0x13aa('0x1a')](_0x47c067[_0x13aa('0x2c')]['offset']);}_0x4a5963[_0x13aa('0x35')]=qs[_0x13aa('0x36')](_0x47c067[_0x13aa('0x2c')]['sort']);_0x4a5963[_0x13aa('0x37')]=qs['filters'](_[_0x13aa('0x38')](_0x47c067[_0x13aa('0x2c')],_0x55e7f7[_0x13aa('0x2e')]),_0x4875ec);if(_0x47c067[_0x13aa('0x2c')][_0x13aa('0x39')]){_0x4a5963[_0x13aa('0x37')]=_['merge'](_0x4a5963['where'],{'$or':_['map'](_0x4875ec,function(_0x1afebe){if(_0x1afebe[_0x13aa('0x3a')]!==_0x13aa('0x3b')){var _0x447853={};_0x447853[_0x1afebe[_0x13aa('0x24')]]={'$like':'%'+_0x47c067[_0x13aa('0x2c')][_0x13aa('0x39')]+'%'};return _0x447853;}})});}_0x4a5963=_[_0x13aa('0x3c')]({},_0x4a5963,_0x47c067[_0x13aa('0x3d')]);var _0x5316={'where':_0x4a5963[_0x13aa('0x37')]};return db[_0x13aa('0x27')][_0x13aa('0x19')](_0x5316)[_0x13aa('0x3e')](function(_0x40f4eb){_0x31a1f0[_0x13aa('0x19')]=_0x40f4eb;if(_0x47c067[_0x13aa('0x2c')]['includeAll']){_0x4a5963[_0x13aa('0x3f')]=[{'all':!![]}];}return db[_0x13aa('0x27')][_0x13aa('0x40')](_0x4a5963);})[_0x13aa('0x3e')](function(_0x4e15a7){_0x31a1f0[_0x13aa('0x41')]=_0x4e15a7;return _0x31a1f0;})['then'](respondWithFilteredResult(_0x577cab,_0x4a5963))[_0x13aa('0x42')](handleError(_0x577cab,null));};exports[_0x13aa('0x43')]=function(_0x57948e,_0x1c1a47){var _0x5c777f={'raw':!![],'where':{'id':_0x57948e[_0x13aa('0x44')]['id']}},_0x44bfa9={};_0x44bfa9[_0x13aa('0x2a')]=_[_0x13aa('0x2d')](db['MailQueueReport'][_0x13aa('0x28')]);_0x44bfa9[_0x13aa('0x2c')]=_[_0x13aa('0x2d')](_0x57948e[_0x13aa('0x2c')]);_0x44bfa9[_0x13aa('0x2e')]=_[_0x13aa('0x2f')](_0x44bfa9['model'],_0x44bfa9[_0x13aa('0x2c')]);_0x5c777f[_0x13aa('0x30')]=_['intersection'](_0x44bfa9['model'],qs[_0x13aa('0x31')](_0x57948e[_0x13aa('0x2c')][_0x13aa('0x31')]));_0x5c777f[_0x13aa('0x30')]=_0x5c777f['attributes'][_0x13aa('0x32')]?_0x5c777f[_0x13aa('0x30')]:_0x44bfa9['model'];if(_0x57948e['query']['includeAll']){_0x5c777f[_0x13aa('0x3f')]=[{'all':!![]}];}_0x5c777f=_[_0x13aa('0x3c')]({},_0x5c777f,_0x57948e[_0x13aa('0x3d')]);return db['MailQueueReport'][_0x13aa('0x45')](_0x5c777f)[_0x13aa('0x3e')](handleEntityNotFound(_0x1c1a47,null))[_0x13aa('0x3e')](respondWithResult(_0x1c1a47,null))[_0x13aa('0x42')](handleError(_0x1c1a47,null));};exports[_0x13aa('0x46')]=function(_0x5b8743,_0x2c6ecf){return db['MailQueueReport'][_0x13aa('0x46')](_0x5b8743[_0x13aa('0x47')],{})[_0x13aa('0x3e')](respondWithResult(_0x2c6ecf,0xc9))[_0x13aa('0x42')](handleError(_0x2c6ecf,null));};exports[_0x13aa('0x20')]=function(_0x3cec96,_0x19cc64){if(_0x3cec96[_0x13aa('0x47')]['id']){delete _0x3cec96['body']['id'];}return db['MailQueueReport']['find']({'where':{'id':_0x3cec96['params']['id']}})['then'](handleEntityNotFound(_0x19cc64,null))['then'](saveUpdates(_0x3cec96['body'],null))['then'](respondWithResult(_0x19cc64,null))['catch'](handleError(_0x19cc64,null));};exports[_0x13aa('0x21')]=function(_0x2a7e9,_0x5d7551){return db['MailQueueReport'][_0x13aa('0x45')]({'where':{'id':_0x2a7e9[_0x13aa('0x44')]['id']}})['then'](handleEntityNotFound(_0x5d7551,null))[_0x13aa('0x3e')](removeEntity(_0x5d7551,null))[_0x13aa('0x42')](handleError(_0x5d7551,null));};exports['describe']=function(_0xaa5121,_0x19de30){return db[_0x13aa('0x27')]['describe']()[_0x13aa('0x3e')](respondWithResult(_0x19de30,null))[_0x13aa('0x42')](handleError(_0x19de30,null));};
\ No newline at end of file
+var _0xff0a=['json','count','offset','set','reject','save','update','then','destroy','error','stack','name','index','map','MailQueueReport','rawAttributes','fieldName','type','key','keys','query','filters','intersection','model','attributes','hasOwnProperty','nolimit','limit','order','sort','where','pick','filter','merge','VIRTUAL','include','findAll','catch','show','params','fields','length','includeAll','options','create','body','find','describe','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/parsers/advancedSearch','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end'];(function(_0xf5f88f,_0x3f59cb){var _0x15dec0=function(_0xf34d70){while(--_0xf34d70){_0xf5f88f['push'](_0xf5f88f['shift']());}};_0x15dec0(++_0x3f59cb);}(_0xff0a,0x7d));var _0xaff0=function(_0x40220a,_0x22feb1){_0x40220a=_0x40220a-0x0;var _0x3903cc=_0xff0a[_0x40220a];return _0x3903cc;};'use strict';var pdf=require(_0xaff0('0x0'));var emlformat=require(_0xaff0('0x1'));var rimraf=require(_0xaff0('0x2'));var zipdir=require(_0xaff0('0x3'));var jsonpatch=require(_0xaff0('0x4'));var rp=require(_0xaff0('0x5'));var moment=require(_0xaff0('0x6'));var BPromise=require(_0xaff0('0x7'));var Mustache=require(_0xaff0('0x8'));var util=require('util');var path=require(_0xaff0('0x9'));var sox=require(_0xaff0('0xa'));var csv=require(_0xaff0('0xb'));var ejs=require(_0xaff0('0xc'));var fs=require('fs');var _=require(_0xaff0('0xd'));var squel=require(_0xaff0('0xe'));var crypto=require(_0xaff0('0xf'));var jsforce=require(_0xaff0('0x10'));var deskjs=require(_0xaff0('0x11'));var toCsv=require(_0xaff0('0xb'));var querystring=require(_0xaff0('0x12'));var Papa=require('papaparse');var Redis=require(_0xaff0('0x13'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0xaff0('0x14'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xaff0('0x15'))(_0xaff0('0x16'));var utils=require('../../config/utils');var config=require(_0xaff0('0x17'));var licenseUtil=require(_0xaff0('0x18'));var db=require(_0xaff0('0x19'))['db'];function respondWithStatusCode(_0x269abc,_0x5ef795){_0x5ef795=_0x5ef795||0xcc;return function(_0x35a888){if(_0x35a888){return _0x269abc[_0xaff0('0x1a')](_0x5ef795);}return _0x269abc[_0xaff0('0x1b')](_0x5ef795)[_0xaff0('0x1c')]();};}function respondWithResult(_0x56d860,_0x4da5ad){_0x4da5ad=_0x4da5ad||0xc8;return function(_0xee67fc){if(_0xee67fc){return _0x56d860[_0xaff0('0x1b')](_0x4da5ad)[_0xaff0('0x1d')](_0xee67fc);}};}function respondWithFilteredResult(_0x41777d,_0x8672c5){return function(_0x14488a){if(_0x14488a){var _0x5e83d2=_0x14488a[_0xaff0('0x1e')],_0x1653f7=_0x8672c5[_0xaff0('0x1f')],_0x45ed99=_0x8672c5[_0xaff0('0x1f')]+_0x8672c5['limit'],_0x10b5fd;if(_0x45ed99>=_0x5e83d2){_0x45ed99=_0x5e83d2;_0x10b5fd=0xc8;}else{_0x10b5fd=0xce;}_0x41777d[_0xaff0('0x1b')](_0x10b5fd);return _0x41777d[_0xaff0('0x20')]('Content-Range',_0x1653f7+'-'+_0x45ed99+'/'+_0x5e83d2)[_0xaff0('0x1d')](_0x14488a);}return null;};}function patchUpdates(_0x136d85){return function(_0x26e314){try{jsonpatch['apply'](_0x26e314,_0x136d85,!![]);}catch(_0x1680a2){return BPromise[_0xaff0('0x21')](_0x1680a2);}return _0x26e314[_0xaff0('0x22')]();};}function saveUpdates(_0x226709,_0x596530){return function(_0x5c4b67){if(_0x5c4b67){return _0x5c4b67[_0xaff0('0x23')](_0x226709)[_0xaff0('0x24')](function(_0x4b58d0){return _0x4b58d0;});}return null;};}function removeEntity(_0x217c1a,_0xe7dd23){return function(_0x219057){if(_0x219057){return _0x219057[_0xaff0('0x25')]()[_0xaff0('0x24')](function(){_0x217c1a[_0xaff0('0x1b')](0xcc)[_0xaff0('0x1c')]();});}};}function handleEntityNotFound(_0xebcb67,_0x1f6f57){return function(_0x10f090){if(!_0x10f090){_0xebcb67['sendStatus'](0x194);}return _0x10f090;};}function handleError(_0x5574af,_0x56279e){_0x56279e=_0x56279e||0x1f4;return function(_0x4ce88c){logger[_0xaff0('0x26')](_0x4ce88c[_0xaff0('0x27')]);if(_0x4ce88c[_0xaff0('0x28')]){delete _0x4ce88c[_0xaff0('0x28')];}_0x5574af['status'](_0x56279e)['send'](_0x4ce88c);};}exports[_0xaff0('0x29')]=function(_0x1a935f,_0x410996){var _0x4574c7={},_0xc0669b={},_0x3bb631={'count':0x0,'rows':[]};var _0x198530=_[_0xaff0('0x2a')](db[_0xaff0('0x2b')][_0xaff0('0x2c')],function(_0x396885){return{'name':_0x396885[_0xaff0('0x2d')],'type':_0x396885[_0xaff0('0x2e')][_0xaff0('0x2f')]};});_0xc0669b['model']=_[_0xaff0('0x2a')](_0x198530,_0xaff0('0x28'));_0xc0669b['query']=_[_0xaff0('0x30')](_0x1a935f[_0xaff0('0x31')]);_0xc0669b[_0xaff0('0x32')]=_[_0xaff0('0x33')](_0xc0669b[_0xaff0('0x34')],_0xc0669b[_0xaff0('0x31')]);_0x4574c7[_0xaff0('0x35')]=_[_0xaff0('0x33')](_0xc0669b[_0xaff0('0x34')],qs['fields'](_0x1a935f['query']['fields']));_0x4574c7[_0xaff0('0x35')]=_0x4574c7[_0xaff0('0x35')]['length']?_0x4574c7['attributes']:_0xc0669b[_0xaff0('0x34')];if(!_0x1a935f[_0xaff0('0x31')][_0xaff0('0x36')](_0xaff0('0x37'))){_0x4574c7['limit']=qs['limit'](_0x1a935f[_0xaff0('0x31')][_0xaff0('0x38')]);_0x4574c7[_0xaff0('0x1f')]=qs[_0xaff0('0x1f')](_0x1a935f[_0xaff0('0x31')][_0xaff0('0x1f')]);}_0x4574c7[_0xaff0('0x39')]=qs[_0xaff0('0x3a')](_0x1a935f[_0xaff0('0x31')][_0xaff0('0x3a')]);_0x4574c7[_0xaff0('0x3b')]=qs[_0xaff0('0x32')](_[_0xaff0('0x3c')](_0x1a935f[_0xaff0('0x31')],_0xc0669b['filters']),_0x198530);if(_0x1a935f['query'][_0xaff0('0x3d')]){_0x4574c7[_0xaff0('0x3b')]=_[_0xaff0('0x3e')](_0x4574c7[_0xaff0('0x3b')],{'$or':_[_0xaff0('0x2a')](_0x198530,function(_0x21975e){if(_0x21975e[_0xaff0('0x2e')]!==_0xaff0('0x3f')){var _0x2958f1={};_0x2958f1[_0x21975e['name']]={'$like':'%'+_0x1a935f['query'][_0xaff0('0x3d')]+'%'};return _0x2958f1;}})});}_0x4574c7=_[_0xaff0('0x3e')]({},_0x4574c7,_0x1a935f['options']);var _0x4e56ac={'where':_0x4574c7[_0xaff0('0x3b')]};return db[_0xaff0('0x2b')][_0xaff0('0x1e')](_0x4e56ac)[_0xaff0('0x24')](function(_0x239131){_0x3bb631[_0xaff0('0x1e')]=_0x239131;if(_0x1a935f[_0xaff0('0x31')]['includeAll']){_0x4574c7[_0xaff0('0x40')]=[{'all':!![]}];}return db['MailQueueReport'][_0xaff0('0x41')](_0x4574c7);})[_0xaff0('0x24')](function(_0x4cfa00){_0x3bb631['rows']=_0x4cfa00;return _0x3bb631;})[_0xaff0('0x24')](respondWithFilteredResult(_0x410996,_0x4574c7))[_0xaff0('0x42')](handleError(_0x410996,null));};exports[_0xaff0('0x43')]=function(_0x596eca,_0xf06cc3){var _0x2b7c24={'raw':!![],'where':{'id':_0x596eca[_0xaff0('0x44')]['id']}},_0x2ce75a={};_0x2ce75a['model']=_['keys'](db[_0xaff0('0x2b')][_0xaff0('0x2c')]);_0x2ce75a['query']=_[_0xaff0('0x30')](_0x596eca[_0xaff0('0x31')]);_0x2ce75a[_0xaff0('0x32')]=_['intersection'](_0x2ce75a[_0xaff0('0x34')],_0x2ce75a['query']);_0x2b7c24['attributes']=_['intersection'](_0x2ce75a[_0xaff0('0x34')],qs[_0xaff0('0x45')](_0x596eca['query'][_0xaff0('0x45')]));_0x2b7c24[_0xaff0('0x35')]=_0x2b7c24[_0xaff0('0x35')][_0xaff0('0x46')]?_0x2b7c24[_0xaff0('0x35')]:_0x2ce75a[_0xaff0('0x34')];if(_0x596eca['query'][_0xaff0('0x47')]){_0x2b7c24[_0xaff0('0x40')]=[{'all':!![]}];}_0x2b7c24=_[_0xaff0('0x3e')]({},_0x2b7c24,_0x596eca[_0xaff0('0x48')]);return db['MailQueueReport']['find'](_0x2b7c24)['then'](handleEntityNotFound(_0xf06cc3,null))[_0xaff0('0x24')](respondWithResult(_0xf06cc3,null))[_0xaff0('0x42')](handleError(_0xf06cc3,null));};exports[_0xaff0('0x49')]=function(_0x5bcef4,_0x24bf8b){return db[_0xaff0('0x2b')]['create'](_0x5bcef4['body'],{})[_0xaff0('0x24')](respondWithResult(_0x24bf8b,0xc9))['catch'](handleError(_0x24bf8b,null));};exports[_0xaff0('0x23')]=function(_0x2b9272,_0x5f5cda){if(_0x2b9272['body']['id']){delete _0x2b9272[_0xaff0('0x4a')]['id'];}return db[_0xaff0('0x2b')][_0xaff0('0x4b')]({'where':{'id':_0x2b9272['params']['id']}})[_0xaff0('0x24')](handleEntityNotFound(_0x5f5cda,null))[_0xaff0('0x24')](saveUpdates(_0x2b9272['body'],null))[_0xaff0('0x24')](respondWithResult(_0x5f5cda,null))[_0xaff0('0x42')](handleError(_0x5f5cda,null));};exports[_0xaff0('0x25')]=function(_0x5923c4,_0x2dc138){return db[_0xaff0('0x2b')][_0xaff0('0x4b')]({'where':{'id':_0x5923c4['params']['id']}})[_0xaff0('0x24')](handleEntityNotFound(_0x2dc138,null))[_0xaff0('0x24')](removeEntity(_0x2dc138,null))[_0xaff0('0x42')](handleError(_0x2dc138,null));};exports[_0xaff0('0x4c')]=function(_0x4c474c,_0x17a02c){return db[_0xaff0('0x2b')][_0xaff0('0x4c')]()['then'](respondWithResult(_0x17a02c,null))['catch'](handleError(_0x17a02c,null));};
\ No newline at end of file