Built motion from commit (unavailable).|2.5.12
[motion2.git] / server / api / squareReportDetail / squareReportDetail.controller.js
index d9cfab3..f4897d1 100644 (file)
@@ -15,4 +15,4 @@
 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                        *
 // *                                                                       *
 // *************************************************************************
-var _0x3594=['apply','save','then','destroy','stack','name','index','map','SquareDetailsReport','fieldName','type','key','query','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','VIRTUAL','merge','includeAll','include','findAll','rows','catch','keys','rawAttributes','options','find','create','body','update','params','describe','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','sox','ejs','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','end','status','json','count','offset','limit','set','Content-Range'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x3594,0x15e));var _0x4359=function(_0x219b65,_0x58dc2b){_0x219b65=_0x219b65-0x0;var _0x5c7a14=_0x3594[_0x219b65];return _0x5c7a14;};'use strict';var pdf=require('html-pdf');var emlformat=require('eml-format');var rimraf=require(_0x4359('0x0'));var zipdir=require(_0x4359('0x1'));var jsonpatch=require(_0x4359('0x2'));var rp=require(_0x4359('0x3'));var moment=require('moment');var BPromise=require(_0x4359('0x4'));var Mustache=require(_0x4359('0x5'));var util=require(_0x4359('0x6'));var path=require('path');var sox=require(_0x4359('0x7'));var csv=require('to-csv');var ejs=require(_0x4359('0x8'));var fs=require('fs');var _=require(_0x4359('0x9'));var squel=require(_0x4359('0xa'));var crypto=require(_0x4359('0xb'));var jsforce=require(_0x4359('0xc'));var deskjs=require(_0x4359('0xd'));var toCsv=require(_0x4359('0xe'));var querystring=require(_0x4359('0xf'));var Papa=require('papaparse');var Redis=require(_0x4359('0x10'));var authService=require(_0x4359('0x11'));var qs=require(_0x4359('0x12'));var as=require(_0x4359('0x13'));var hardwareService=require(_0x4359('0x14'));var logger=require(_0x4359('0x15'))(_0x4359('0x16'));var utils=require(_0x4359('0x17'));var config=require(_0x4359('0x18'));var licenseUtil=require(_0x4359('0x19'));var db=require(_0x4359('0x1a'))['db'];function respondWithStatusCode(_0x5991e3,_0x50ec18){_0x50ec18=_0x50ec18||0xcc;return function(_0x390922){if(_0x390922){return _0x5991e3['sendStatus'](_0x50ec18);}return _0x5991e3['status'](_0x50ec18)[_0x4359('0x1b')]();};}function respondWithResult(_0x4fe7e6,_0x1cc174){_0x1cc174=_0x1cc174||0xc8;return function(_0x48fbeb){if(_0x48fbeb){return _0x4fe7e6[_0x4359('0x1c')](_0x1cc174)[_0x4359('0x1d')](_0x48fbeb);}};}function respondWithFilteredResult(_0x47ac68,_0x168c52){return function(_0x5175f5){if(_0x5175f5){var _0x396494=_0x5175f5[_0x4359('0x1e')],_0x3a7467=_0x168c52[_0x4359('0x1f')],_0x32e537=_0x168c52[_0x4359('0x1f')]+_0x168c52[_0x4359('0x20')],_0x68ba1;if(_0x32e537>=_0x396494){_0x32e537=_0x396494;_0x68ba1=0xc8;}else{_0x68ba1=0xce;}_0x47ac68[_0x4359('0x1c')](_0x68ba1);return _0x47ac68[_0x4359('0x21')](_0x4359('0x22'),_0x3a7467+'-'+_0x32e537+'/'+_0x396494)['json'](_0x5175f5);}return null;};}function patchUpdates(_0x3ffd3d){return function(_0x412337){try{jsonpatch[_0x4359('0x23')](_0x412337,_0x3ffd3d,!![]);}catch(_0x2530b2){return BPromise['reject'](_0x2530b2);}return _0x412337[_0x4359('0x24')]();};}function saveUpdates(_0x2f24a3,_0x3a8ff6){return function(_0xacae0d){if(_0xacae0d){return _0xacae0d['update'](_0x2f24a3)[_0x4359('0x25')](function(_0x1cdc27){return _0x1cdc27;});}return null;};}function removeEntity(_0x3c38b4,_0x3f3c08){return function(_0x526666){if(_0x526666){return _0x526666[_0x4359('0x26')]()['then'](function(){_0x3c38b4['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x23f4fb,_0x4d3387){return function(_0x4bf601){if(!_0x4bf601){_0x23f4fb['sendStatus'](0x194);}return _0x4bf601;};}function handleError(_0x21524b,_0x398a21){_0x398a21=_0x398a21||0x1f4;return function(_0x2b2c4f){logger['error'](_0x2b2c4f[_0x4359('0x27')]);if(_0x2b2c4f[_0x4359('0x28')]){delete _0x2b2c4f['name'];}_0x21524b[_0x4359('0x1c')](_0x398a21)['send'](_0x2b2c4f);};}exports[_0x4359('0x29')]=function(_0x179e28,_0x4ecda8){var _0x270c99={},_0x39fb91={},_0x4c5078={'count':0x0,'rows':[]};var _0x28953b=_[_0x4359('0x2a')](db[_0x4359('0x2b')]['rawAttributes'],function(_0x4c8da6){return{'name':_0x4c8da6[_0x4359('0x2c')],'type':_0x4c8da6[_0x4359('0x2d')][_0x4359('0x2e')]};});_0x39fb91['model']=_[_0x4359('0x2a')](_0x28953b,'name');_0x39fb91[_0x4359('0x2f')]=_['keys'](_0x179e28[_0x4359('0x2f')]);_0x39fb91[_0x4359('0x30')]=_[_0x4359('0x31')](_0x39fb91[_0x4359('0x32')],_0x39fb91[_0x4359('0x2f')]);_0x270c99[_0x4359('0x33')]=_['intersection'](_0x39fb91[_0x4359('0x32')],qs[_0x4359('0x34')](_0x179e28['query']['fields']));_0x270c99['attributes']=_0x270c99[_0x4359('0x33')][_0x4359('0x35')]?_0x270c99[_0x4359('0x33')]:_0x39fb91['model'];if(!_0x179e28[_0x4359('0x2f')][_0x4359('0x36')](_0x4359('0x37'))){_0x270c99[_0x4359('0x20')]=qs['limit'](_0x179e28['query'][_0x4359('0x20')]);_0x270c99['offset']=qs[_0x4359('0x1f')](_0x179e28[_0x4359('0x2f')]['offset']);}_0x270c99[_0x4359('0x38')]=qs[_0x4359('0x39')](_0x179e28['query']['sort']);_0x270c99[_0x4359('0x3a')]=qs[_0x4359('0x30')](_[_0x4359('0x3b')](_0x179e28[_0x4359('0x2f')],_0x39fb91[_0x4359('0x30')]),_0x28953b);if(_0x179e28[_0x4359('0x2f')][_0x4359('0x3c')]){_0x270c99[_0x4359('0x3a')]=_['merge'](_0x270c99[_0x4359('0x3a')],{'$or':_[_0x4359('0x2a')](_0x28953b,function(_0x46065f){if(_0x46065f[_0x4359('0x2d')]!==_0x4359('0x3d')){var _0x494898={};_0x494898[_0x46065f[_0x4359('0x28')]]={'$like':'%'+_0x179e28[_0x4359('0x2f')][_0x4359('0x3c')]+'%'};return _0x494898;}})});}_0x270c99=_[_0x4359('0x3e')]({},_0x270c99,_0x179e28['options']);var _0x29b4fd={'where':_0x270c99['where']};return db['SquareDetailsReport']['count'](_0x29b4fd)[_0x4359('0x25')](function(_0x3bd272){_0x4c5078[_0x4359('0x1e')]=_0x3bd272;if(_0x179e28[_0x4359('0x2f')][_0x4359('0x3f')]){_0x270c99[_0x4359('0x40')]=[{'all':!![]}];}return db[_0x4359('0x2b')][_0x4359('0x41')](_0x270c99);})[_0x4359('0x25')](function(_0x2e2671){_0x4c5078[_0x4359('0x42')]=_0x2e2671;return _0x4c5078;})[_0x4359('0x25')](respondWithFilteredResult(_0x4ecda8,_0x270c99))[_0x4359('0x43')](handleError(_0x4ecda8,null));};exports['show']=function(_0x4dce81,_0x139c68){var _0x3553f9={'raw':!![],'where':{'id':_0x4dce81['params']['id']}},_0x2da6aa={};_0x2da6aa[_0x4359('0x32')]=_[_0x4359('0x44')](db[_0x4359('0x2b')][_0x4359('0x45')]);_0x2da6aa[_0x4359('0x2f')]=_['keys'](_0x4dce81[_0x4359('0x2f')]);_0x2da6aa['filters']=_['intersection'](_0x2da6aa[_0x4359('0x32')],_0x2da6aa['query']);_0x3553f9[_0x4359('0x33')]=_[_0x4359('0x31')](_0x2da6aa['model'],qs[_0x4359('0x34')](_0x4dce81[_0x4359('0x2f')][_0x4359('0x34')]));_0x3553f9['attributes']=_0x3553f9[_0x4359('0x33')][_0x4359('0x35')]?_0x3553f9[_0x4359('0x33')]:_0x2da6aa[_0x4359('0x32')];if(_0x4dce81[_0x4359('0x2f')][_0x4359('0x3f')]){_0x3553f9[_0x4359('0x40')]=[{'all':!![]}];}_0x3553f9=_[_0x4359('0x3e')]({},_0x3553f9,_0x4dce81[_0x4359('0x46')]);return db['SquareDetailsReport'][_0x4359('0x47')](_0x3553f9)[_0x4359('0x25')](handleEntityNotFound(_0x139c68,null))[_0x4359('0x25')](respondWithResult(_0x139c68,null))[_0x4359('0x43')](handleError(_0x139c68,null));};exports[_0x4359('0x48')]=function(_0x5b9018,_0x28b5e8){return db[_0x4359('0x2b')][_0x4359('0x48')](_0x5b9018[_0x4359('0x49')],{})[_0x4359('0x25')](respondWithResult(_0x28b5e8,0xc9))['catch'](handleError(_0x28b5e8,null));};exports[_0x4359('0x4a')]=function(_0x1a0812,_0xdea796){if(_0x1a0812[_0x4359('0x49')]['id']){delete _0x1a0812[_0x4359('0x49')]['id'];}return db[_0x4359('0x2b')][_0x4359('0x47')]({'where':{'id':_0x1a0812[_0x4359('0x4b')]['id']}})[_0x4359('0x25')](handleEntityNotFound(_0xdea796,null))[_0x4359('0x25')](saveUpdates(_0x1a0812[_0x4359('0x49')],null))[_0x4359('0x25')](respondWithResult(_0xdea796,null))['catch'](handleError(_0xdea796,null));};exports[_0x4359('0x26')]=function(_0x793399,_0x573664){return db[_0x4359('0x2b')][_0x4359('0x47')]({'where':{'id':_0x793399['params']['id']}})[_0x4359('0x25')](handleEntityNotFound(_0x573664,null))[_0x4359('0x25')](removeEntity(_0x573664,null))[_0x4359('0x43')](handleError(_0x573664,null));};exports[_0x4359('0x4c')]=function(_0x23ba52,_0x58bd46){return db[_0x4359('0x2b')]['describe']()[_0x4359('0x25')](respondWithResult(_0x58bd46,null))[_0x4359('0x43')](handleError(_0x58bd46,null));};
\ No newline at end of file
+var _0xc8b4=['include','findAll','rows','show','params','length','includeAll','find','catch','create','body','destroy','describe','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','to-csv','ejs','lodash','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','offset','limit','set','json','reject','then','error','name','send','index','map','rawAttributes','fieldName','type','key','keys','intersection','model','query','attributes','fields','hasOwnProperty','nolimit','order','sort','filters','pick','filter','where','merge','VIRTUAL','options','SquareDetailsReport','count'];(function(_0x1f8438,_0x949ab){var _0x7a0260=function(_0x7ce368){while(--_0x7ce368){_0x1f8438['push'](_0x1f8438['shift']());}};_0x7a0260(++_0x949ab);}(_0xc8b4,0x13d));var _0x4c8b=function(_0x4efe2e,_0x3a32d9){_0x4efe2e=_0x4efe2e-0x0;var _0x12a419=_0xc8b4[_0x4efe2e];return _0x12a419;};'use strict';var pdf=require(_0x4c8b('0x0'));var emlformat=require(_0x4c8b('0x1'));var rimraf=require(_0x4c8b('0x2'));var zipdir=require(_0x4c8b('0x3'));var jsonpatch=require(_0x4c8b('0x4'));var rp=require(_0x4c8b('0x5'));var moment=require(_0x4c8b('0x6'));var BPromise=require(_0x4c8b('0x7'));var Mustache=require('mustache');var util=require(_0x4c8b('0x8'));var path=require(_0x4c8b('0x9'));var sox=require('sox');var csv=require(_0x4c8b('0xa'));var ejs=require(_0x4c8b('0xb'));var fs=require('fs');var _=require(_0x4c8b('0xc'));var squel=require('squel');var crypto=require(_0x4c8b('0xd'));var jsforce=require(_0x4c8b('0xe'));var deskjs=require(_0x4c8b('0xf'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x4c8b('0x10'));var Redis=require(_0x4c8b('0x11'));var authService=require(_0x4c8b('0x12'));var qs=require(_0x4c8b('0x13'));var as=require(_0x4c8b('0x14'));var hardwareService=require(_0x4c8b('0x15'));var logger=require('../../config/logger')(_0x4c8b('0x16'));var utils=require(_0x4c8b('0x17'));var config=require(_0x4c8b('0x18'));var licenseUtil=require('../../config/license/util');var db=require(_0x4c8b('0x19'))['db'];function respondWithStatusCode(_0x399a45,_0x11b0cb){_0x11b0cb=_0x11b0cb||0xcc;return function(_0x2bc62b){if(_0x2bc62b){return _0x399a45[_0x4c8b('0x1a')](_0x11b0cb);}return _0x399a45[_0x4c8b('0x1b')](_0x11b0cb)[_0x4c8b('0x1c')]();};}function respondWithResult(_0x276a28,_0x2d6abb){_0x2d6abb=_0x2d6abb||0xc8;return function(_0x4816c8){if(_0x4816c8){return _0x276a28[_0x4c8b('0x1b')](_0x2d6abb)['json'](_0x4816c8);}};}function respondWithFilteredResult(_0x3d67b5,_0x790a59){return function(_0x4aba85){if(_0x4aba85){var _0x20db7f=_0x4aba85['count'],_0x324405=_0x790a59[_0x4c8b('0x1d')],_0x4721ab=_0x790a59[_0x4c8b('0x1d')]+_0x790a59[_0x4c8b('0x1e')],_0x212de0;if(_0x4721ab>=_0x20db7f){_0x4721ab=_0x20db7f;_0x212de0=0xc8;}else{_0x212de0=0xce;}_0x3d67b5['status'](_0x212de0);return _0x3d67b5[_0x4c8b('0x1f')]('Content-Range',_0x324405+'-'+_0x4721ab+'/'+_0x20db7f)[_0x4c8b('0x20')](_0x4aba85);}return null;};}function patchUpdates(_0x502fdf){return function(_0x4992e2){try{jsonpatch['apply'](_0x4992e2,_0x502fdf,!![]);}catch(_0x2b44ab){return BPromise[_0x4c8b('0x21')](_0x2b44ab);}return _0x4992e2['save']();};}function saveUpdates(_0x599748,_0x46a85c){return function(_0x35b14b){if(_0x35b14b){return _0x35b14b['update'](_0x599748)[_0x4c8b('0x22')](function(_0x5936b1){return _0x5936b1;});}return null;};}function removeEntity(_0x328797,_0x57fb29){return function(_0xf7208f){if(_0xf7208f){return _0xf7208f['destroy']()['then'](function(){_0x328797['status'](0xcc)[_0x4c8b('0x1c')]();});}};}function handleEntityNotFound(_0x12f467,_0x5b5f55){return function(_0x2a9c4b){if(!_0x2a9c4b){_0x12f467['sendStatus'](0x194);}return _0x2a9c4b;};}function handleError(_0x5c09d6,_0x4ce7af){_0x4ce7af=_0x4ce7af||0x1f4;return function(_0x5ba3ba){logger[_0x4c8b('0x23')](_0x5ba3ba['stack']);if(_0x5ba3ba[_0x4c8b('0x24')]){delete _0x5ba3ba['name'];}_0x5c09d6['status'](_0x4ce7af)[_0x4c8b('0x25')](_0x5ba3ba);};}exports[_0x4c8b('0x26')]=function(_0x512f90,_0x3f09e4){var _0xc5f3da={},_0x43f952={},_0x221701={'count':0x0,'rows':[]};var _0x214ddc=_[_0x4c8b('0x27')](db['SquareDetailsReport'][_0x4c8b('0x28')],function(_0x3eae5a){return{'name':_0x3eae5a[_0x4c8b('0x29')],'type':_0x3eae5a[_0x4c8b('0x2a')][_0x4c8b('0x2b')]};});_0x43f952['model']=_['map'](_0x214ddc,_0x4c8b('0x24'));_0x43f952['query']=_[_0x4c8b('0x2c')](_0x512f90['query']);_0x43f952['filters']=_[_0x4c8b('0x2d')](_0x43f952[_0x4c8b('0x2e')],_0x43f952[_0x4c8b('0x2f')]);_0xc5f3da[_0x4c8b('0x30')]=_['intersection'](_0x43f952[_0x4c8b('0x2e')],qs[_0x4c8b('0x31')](_0x512f90[_0x4c8b('0x2f')][_0x4c8b('0x31')]));_0xc5f3da[_0x4c8b('0x30')]=_0xc5f3da[_0x4c8b('0x30')]['length']?_0xc5f3da['attributes']:_0x43f952[_0x4c8b('0x2e')];if(!_0x512f90[_0x4c8b('0x2f')][_0x4c8b('0x32')](_0x4c8b('0x33'))){_0xc5f3da[_0x4c8b('0x1e')]=qs['limit'](_0x512f90[_0x4c8b('0x2f')][_0x4c8b('0x1e')]);_0xc5f3da['offset']=qs['offset'](_0x512f90[_0x4c8b('0x2f')]['offset']);}_0xc5f3da[_0x4c8b('0x34')]=qs['sort'](_0x512f90['query'][_0x4c8b('0x35')]);_0xc5f3da['where']=qs[_0x4c8b('0x36')](_[_0x4c8b('0x37')](_0x512f90[_0x4c8b('0x2f')],_0x43f952[_0x4c8b('0x36')]),_0x214ddc);if(_0x512f90[_0x4c8b('0x2f')][_0x4c8b('0x38')]){_0xc5f3da[_0x4c8b('0x39')]=_[_0x4c8b('0x3a')](_0xc5f3da['where'],{'$or':_[_0x4c8b('0x27')](_0x214ddc,function(_0x1a951e){if(_0x1a951e[_0x4c8b('0x2a')]!==_0x4c8b('0x3b')){var _0x3fb8c7={};_0x3fb8c7[_0x1a951e[_0x4c8b('0x24')]]={'$like':'%'+_0x512f90['query']['filter']+'%'};return _0x3fb8c7;}})});}_0xc5f3da=_['merge']({},_0xc5f3da,_0x512f90[_0x4c8b('0x3c')]);var _0x3423e6={'where':_0xc5f3da[_0x4c8b('0x39')]};return db[_0x4c8b('0x3d')][_0x4c8b('0x3e')](_0x3423e6)[_0x4c8b('0x22')](function(_0x2d48ee){_0x221701[_0x4c8b('0x3e')]=_0x2d48ee;if(_0x512f90[_0x4c8b('0x2f')]['includeAll']){_0xc5f3da[_0x4c8b('0x3f')]=[{'all':!![]}];}return db[_0x4c8b('0x3d')][_0x4c8b('0x40')](_0xc5f3da);})[_0x4c8b('0x22')](function(_0x1859a4){_0x221701[_0x4c8b('0x41')]=_0x1859a4;return _0x221701;})[_0x4c8b('0x22')](respondWithFilteredResult(_0x3f09e4,_0xc5f3da))['catch'](handleError(_0x3f09e4,null));};exports[_0x4c8b('0x42')]=function(_0x552a1e,_0x333300){var _0x5f0702={'raw':!![],'where':{'id':_0x552a1e[_0x4c8b('0x43')]['id']}},_0x34ca7d={};_0x34ca7d[_0x4c8b('0x2e')]=_[_0x4c8b('0x2c')](db[_0x4c8b('0x3d')][_0x4c8b('0x28')]);_0x34ca7d[_0x4c8b('0x2f')]=_['keys'](_0x552a1e[_0x4c8b('0x2f')]);_0x34ca7d[_0x4c8b('0x36')]=_[_0x4c8b('0x2d')](_0x34ca7d[_0x4c8b('0x2e')],_0x34ca7d['query']);_0x5f0702[_0x4c8b('0x30')]=_[_0x4c8b('0x2d')](_0x34ca7d[_0x4c8b('0x2e')],qs[_0x4c8b('0x31')](_0x552a1e['query']['fields']));_0x5f0702[_0x4c8b('0x30')]=_0x5f0702['attributes'][_0x4c8b('0x44')]?_0x5f0702[_0x4c8b('0x30')]:_0x34ca7d['model'];if(_0x552a1e[_0x4c8b('0x2f')][_0x4c8b('0x45')]){_0x5f0702[_0x4c8b('0x3f')]=[{'all':!![]}];}_0x5f0702=_[_0x4c8b('0x3a')]({},_0x5f0702,_0x552a1e['options']);return db['SquareDetailsReport'][_0x4c8b('0x46')](_0x5f0702)[_0x4c8b('0x22')](handleEntityNotFound(_0x333300,null))['then'](respondWithResult(_0x333300,null))[_0x4c8b('0x47')](handleError(_0x333300,null));};exports[_0x4c8b('0x48')]=function(_0x51098f,_0x1e804e){return db['SquareDetailsReport'][_0x4c8b('0x48')](_0x51098f[_0x4c8b('0x49')],{})[_0x4c8b('0x22')](respondWithResult(_0x1e804e,0xc9))[_0x4c8b('0x47')](handleError(_0x1e804e,null));};exports['update']=function(_0x47119,_0x191508){if(_0x47119['body']['id']){delete _0x47119[_0x4c8b('0x49')]['id'];}return db[_0x4c8b('0x3d')][_0x4c8b('0x46')]({'where':{'id':_0x47119[_0x4c8b('0x43')]['id']}})[_0x4c8b('0x22')](handleEntityNotFound(_0x191508,null))[_0x4c8b('0x22')](saveUpdates(_0x47119[_0x4c8b('0x49')],null))[_0x4c8b('0x22')](respondWithResult(_0x191508,null))['catch'](handleError(_0x191508,null));};exports[_0x4c8b('0x4a')]=function(_0x50729d,_0x5790a3){return db['SquareDetailsReport'][_0x4c8b('0x46')]({'where':{'id':_0x50729d[_0x4c8b('0x43')]['id']}})[_0x4c8b('0x22')](handleEntityNotFound(_0x5790a3,null))[_0x4c8b('0x22')](removeEntity(_0x5790a3,null))[_0x4c8b('0x47')](handleError(_0x5790a3,null));};exports[_0x4c8b('0x4b')]=function(_0x356453,_0x486135){return db['SquareDetailsReport'][_0x4c8b('0x4b')]()[_0x4c8b('0x22')](respondWithResult(_0x486135,null))[_0x4c8b('0x47')](handleError(_0x486135,null));};
\ No newline at end of file