Built motion from commit 639a1a7f.|2.6.19
[motion2.git] / server / api / memberReport / memberReport.controller.js
index e5cdd7c..eed7f9a 100644 (file)
@@ -15,4 +15,4 @@
 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                        *
 // *                                                                       *
 // *************************************************************************
-var _0x48c9=['name','send','index','map','MemberReport','rawAttributes','fieldName','type','query','keys','intersection','model','attributes','fields','hasOwnProperty','nolimit','order','sort','filters','filter','where','merge','VIRTUAL','includeAll','include','findAll','rows','catch','show','params','length','options','find','create','body','update','describe','eml-format','rimraf','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','sendStatus','status','end','json','count','offset','limit','set','Content-Range','apply','reject','save','then','destroy','error','stack'];(function(_0x3cfb38,_0x4e8697){var _0x5c0c91=function(_0x3c6b50){while(--_0x3c6b50){_0x3cfb38['push'](_0x3cfb38['shift']());}};_0x5c0c91(++_0x4e8697);}(_0x48c9,0xc5));var _0x948c=function(_0x213065,_0x3afd09){_0x213065=_0x213065-0x0;var _0x50a790=_0x48c9[_0x213065];return _0x50a790;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x948c('0x0'));var rimraf=require(_0x948c('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x948c('0x2'));var moment=require(_0x948c('0x3'));var BPromise=require(_0x948c('0x4'));var Mustache=require(_0x948c('0x5'));var util=require(_0x948c('0x6'));var path=require(_0x948c('0x7'));var sox=require(_0x948c('0x8'));var csv=require(_0x948c('0x9'));var ejs=require(_0x948c('0xa'));var fs=require('fs');var _=require(_0x948c('0xb'));var squel=require('squel');var crypto=require(_0x948c('0xc'));var jsforce=require(_0x948c('0xd'));var deskjs=require(_0x948c('0xe'));var toCsv=require(_0x948c('0x9'));var querystring=require(_0x948c('0xf'));var Papa=require(_0x948c('0x10'));var Redis=require(_0x948c('0x11'));var authService=require(_0x948c('0x12'));var qs=require(_0x948c('0x13'));var as=require(_0x948c('0x14'));var hardwareService=require(_0x948c('0x15'));var logger=require(_0x948c('0x16'))(_0x948c('0x17'));var utils=require(_0x948c('0x18'));var config=require(_0x948c('0x19'));var licenseUtil=require(_0x948c('0x1a'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x54b6be,_0x119898){_0x119898=_0x119898||0xcc;return function(_0x366452){if(_0x366452){return _0x54b6be[_0x948c('0x1b')](_0x119898);}return _0x54b6be[_0x948c('0x1c')](_0x119898)[_0x948c('0x1d')]();};}function respondWithResult(_0x384e59,_0x316d53){_0x316d53=_0x316d53||0xc8;return function(_0x2d0424){if(_0x2d0424){return _0x384e59[_0x948c('0x1c')](_0x316d53)[_0x948c('0x1e')](_0x2d0424);}};}function respondWithFilteredResult(_0x26806b,_0x2d89d5){return function(_0x113fd1){if(_0x113fd1){var _0x4596bf=_0x113fd1[_0x948c('0x1f')],_0x277225=_0x2d89d5[_0x948c('0x20')],_0x348397=_0x2d89d5[_0x948c('0x20')]+_0x2d89d5[_0x948c('0x21')],_0x573be4;if(_0x348397>=_0x4596bf){_0x348397=_0x4596bf;_0x573be4=0xc8;}else{_0x573be4=0xce;}_0x26806b[_0x948c('0x1c')](_0x573be4);return _0x26806b[_0x948c('0x22')](_0x948c('0x23'),_0x277225+'-'+_0x348397+'/'+_0x4596bf)[_0x948c('0x1e')](_0x113fd1);}return null;};}function patchUpdates(_0x3a3b82){return function(_0x474dd7){try{jsonpatch[_0x948c('0x24')](_0x474dd7,_0x3a3b82,!![]);}catch(_0x3ceba9){return BPromise[_0x948c('0x25')](_0x3ceba9);}return _0x474dd7[_0x948c('0x26')]();};}function saveUpdates(_0x150c92,_0x22fa9e){return function(_0x1411c6){if(_0x1411c6){return _0x1411c6['update'](_0x150c92)[_0x948c('0x27')](function(_0x393fa4){return _0x393fa4;});}return null;};}function removeEntity(_0x25d993,_0x1fe4c0){return function(_0x8984b1){if(_0x8984b1){return _0x8984b1[_0x948c('0x28')]()[_0x948c('0x27')](function(){_0x25d993[_0x948c('0x1c')](0xcc)[_0x948c('0x1d')]();});}};}function handleEntityNotFound(_0x698389,_0x5cdf47){return function(_0x5edd0c){if(!_0x5edd0c){_0x698389[_0x948c('0x1b')](0x194);}return _0x5edd0c;};}function handleError(_0x4a2e28,_0x31d464){_0x31d464=_0x31d464||0x1f4;return function(_0x48e70c){logger[_0x948c('0x29')](_0x48e70c[_0x948c('0x2a')]);if(_0x48e70c[_0x948c('0x2b')]){delete _0x48e70c[_0x948c('0x2b')];}_0x4a2e28['status'](_0x31d464)[_0x948c('0x2c')](_0x48e70c);};}exports[_0x948c('0x2d')]=function(_0x399fc0,_0x49a328){var _0x546f29={},_0x4762b8={},_0x3810ae={'count':0x0,'rows':[]};var _0x5d1e89=_[_0x948c('0x2e')](db[_0x948c('0x2f')][_0x948c('0x30')],function(_0xa5c5a7){return{'name':_0xa5c5a7[_0x948c('0x31')],'type':_0xa5c5a7[_0x948c('0x32')]['key']};});_0x4762b8['model']=_[_0x948c('0x2e')](_0x5d1e89,_0x948c('0x2b'));_0x4762b8[_0x948c('0x33')]=_[_0x948c('0x34')](_0x399fc0[_0x948c('0x33')]);_0x4762b8['filters']=_[_0x948c('0x35')](_0x4762b8[_0x948c('0x36')],_0x4762b8[_0x948c('0x33')]);_0x546f29[_0x948c('0x37')]=_[_0x948c('0x35')](_0x4762b8[_0x948c('0x36')],qs[_0x948c('0x38')](_0x399fc0[_0x948c('0x33')]['fields']));_0x546f29[_0x948c('0x37')]=_0x546f29[_0x948c('0x37')]['length']?_0x546f29[_0x948c('0x37')]:_0x4762b8[_0x948c('0x36')];if(!_0x399fc0['query'][_0x948c('0x39')](_0x948c('0x3a'))){_0x546f29[_0x948c('0x21')]=qs[_0x948c('0x21')](_0x399fc0['query']['limit']);_0x546f29['offset']=qs[_0x948c('0x20')](_0x399fc0[_0x948c('0x33')][_0x948c('0x20')]);}_0x546f29[_0x948c('0x3b')]=qs[_0x948c('0x3c')](_0x399fc0['query'][_0x948c('0x3c')]);_0x546f29['where']=qs[_0x948c('0x3d')](_['pick'](_0x399fc0['query'],_0x4762b8[_0x948c('0x3d')]),_0x5d1e89);if(_0x399fc0['query'][_0x948c('0x3e')]){_0x546f29[_0x948c('0x3f')]=_[_0x948c('0x40')](_0x546f29[_0x948c('0x3f')],{'$or':_[_0x948c('0x2e')](_0x5d1e89,function(_0x3db2f0){if(_0x3db2f0[_0x948c('0x32')]!==_0x948c('0x41')){var _0x261d1e={};_0x261d1e[_0x3db2f0[_0x948c('0x2b')]]={'$like':'%'+_0x399fc0[_0x948c('0x33')][_0x948c('0x3e')]+'%'};return _0x261d1e;}})});}_0x546f29=_[_0x948c('0x40')]({},_0x546f29,_0x399fc0['options']);var _0x17f181={'where':_0x546f29[_0x948c('0x3f')]};return db['MemberReport']['count'](_0x17f181)[_0x948c('0x27')](function(_0x3fbd03){_0x3810ae[_0x948c('0x1f')]=_0x3fbd03;if(_0x399fc0[_0x948c('0x33')][_0x948c('0x42')]){_0x546f29[_0x948c('0x43')]=[{'all':!![]}];}return db[_0x948c('0x2f')][_0x948c('0x44')](_0x546f29);})[_0x948c('0x27')](function(_0x82f457){_0x3810ae[_0x948c('0x45')]=_0x82f457;return _0x3810ae;})[_0x948c('0x27')](respondWithFilteredResult(_0x49a328,_0x546f29))[_0x948c('0x46')](handleError(_0x49a328,null));};exports[_0x948c('0x47')]=function(_0x48351d,_0x33a197){var _0x24fc6f={'raw':!![],'where':{'id':_0x48351d[_0x948c('0x48')]['id']}},_0xf768e9={};_0xf768e9[_0x948c('0x36')]=_[_0x948c('0x34')](db[_0x948c('0x2f')][_0x948c('0x30')]);_0xf768e9[_0x948c('0x33')]=_[_0x948c('0x34')](_0x48351d['query']);_0xf768e9[_0x948c('0x3d')]=_[_0x948c('0x35')](_0xf768e9['model'],_0xf768e9[_0x948c('0x33')]);_0x24fc6f[_0x948c('0x37')]=_['intersection'](_0xf768e9['model'],qs[_0x948c('0x38')](_0x48351d[_0x948c('0x33')][_0x948c('0x38')]));_0x24fc6f[_0x948c('0x37')]=_0x24fc6f[_0x948c('0x37')][_0x948c('0x49')]?_0x24fc6f[_0x948c('0x37')]:_0xf768e9[_0x948c('0x36')];if(_0x48351d[_0x948c('0x33')]['includeAll']){_0x24fc6f['include']=[{'all':!![]}];}_0x24fc6f=_[_0x948c('0x40')]({},_0x24fc6f,_0x48351d[_0x948c('0x4a')]);return db[_0x948c('0x2f')][_0x948c('0x4b')](_0x24fc6f)[_0x948c('0x27')](handleEntityNotFound(_0x33a197,null))['then'](respondWithResult(_0x33a197,null))[_0x948c('0x46')](handleError(_0x33a197,null));};exports[_0x948c('0x4c')]=function(_0x21e364,_0x39bb35){return db['MemberReport'][_0x948c('0x4c')](_0x21e364[_0x948c('0x4d')],{})['then'](respondWithResult(_0x39bb35,0xc9))[_0x948c('0x46')](handleError(_0x39bb35,null));};exports[_0x948c('0x4e')]=function(_0x2a99dd,_0x589f68){if(_0x2a99dd['body']['id']){delete _0x2a99dd['body']['id'];}return db[_0x948c('0x2f')][_0x948c('0x4b')]({'where':{'id':_0x2a99dd[_0x948c('0x48')]['id']}})[_0x948c('0x27')](handleEntityNotFound(_0x589f68,null))[_0x948c('0x27')](saveUpdates(_0x2a99dd['body'],null))[_0x948c('0x27')](respondWithResult(_0x589f68,null))[_0x948c('0x46')](handleError(_0x589f68,null));};exports[_0x948c('0x28')]=function(_0x290c63,_0x50c6a7){return db[_0x948c('0x2f')]['find']({'where':{'id':_0x290c63[_0x948c('0x48')]['id']}})[_0x948c('0x27')](handleEntityNotFound(_0x50c6a7,null))['then'](removeEntity(_0x50c6a7,null))[_0x948c('0x46')](handleError(_0x50c6a7,null));};exports[_0x948c('0x4f')]=function(_0x97fbc,_0x50c6e9){return db['MemberReport'][_0x948c('0x4f')]()[_0x948c('0x27')](respondWithResult(_0x50c6e9,null))[_0x948c('0x46')](handleError(_0x50c6e9,null));};
\ No newline at end of file
+var _0x55ca=['merge','filter','includeAll','include','findAll','rawAttributes','options','create','body','find','params','catch','destroy','describe','eml-format','rimraf','moment','bluebird','util','path','sox','to-csv','ejs','fs-extra','lodash','crypto','jsforce','querystring','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','json','offset','undefined','limit','count','reject','update','then','end','sendStatus','error','stack','name','send','index','map','MemberReport','type','key','model','query','keys','filters','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','where'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0x55ca,0x126));var _0xa55c=function(_0x1d24eb,_0x12295b){_0x1d24eb=_0x1d24eb-0x0;var _0x1dc576=_0x55ca[_0x1d24eb];return _0x1dc576;};'use strict';var emlformat=require(_0xa55c('0x0'));var rimraf=require(_0xa55c('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0xa55c('0x2'));var BPromise=require(_0xa55c('0x3'));var Mustache=require('mustache');var util=require(_0xa55c('0x4'));var path=require(_0xa55c('0x5'));var sox=require(_0xa55c('0x6'));var csv=require(_0xa55c('0x7'));var ejs=require(_0xa55c('0x8'));var fs=require('fs');var fs_extra=require(_0xa55c('0x9'));var _=require(_0xa55c('0xa'));var squel=require('squel');var crypto=require(_0xa55c('0xb'));var jsforce=require(_0xa55c('0xc'));var deskjs=require('desk.js');var toCsv=require(_0xa55c('0x7'));var querystring=require(_0xa55c('0xd'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0xa55c('0xe'));var qs=require(_0xa55c('0xf'));var as=require(_0xa55c('0x10'));var hardwareService=require(_0xa55c('0x11'));var logger=require(_0xa55c('0x12'))(_0xa55c('0x13'));var utils=require(_0xa55c('0x14'));var config=require(_0xa55c('0x15'));var licenseUtil=require(_0xa55c('0x16'));var db=require(_0xa55c('0x17'))['db'];function respondWithStatusCode(_0x5d47ff,_0x59d84a){_0x59d84a=_0x59d84a||0xcc;return function(_0x2a35be){if(_0x2a35be){return _0x5d47ff['sendStatus'](_0x59d84a);}return _0x5d47ff['status'](_0x59d84a)['end']();};}function respondWithResult(_0x18ee85,_0x3930e4){_0x3930e4=_0x3930e4||0xc8;return function(_0x462cd6){if(_0x462cd6){return _0x18ee85[_0xa55c('0x18')](_0x3930e4)[_0xa55c('0x19')](_0x462cd6);}};}function respondWithFilteredResult(_0x247e77,_0x4e0b2f){return function(_0x3ccf65){if(_0x3ccf65){var _0x3dcf4f=typeof _0x4e0b2f[_0xa55c('0x1a')]===_0xa55c('0x1b')&&typeof _0x4e0b2f[_0xa55c('0x1c')]===_0xa55c('0x1b');var _0x51590e=_0x3ccf65[_0xa55c('0x1d')];var _0x24783b=_0x3dcf4f?0x0:_0x4e0b2f['offset'];var _0x3d4c9e=_0x3dcf4f?_0x3ccf65[_0xa55c('0x1d')]:_0x4e0b2f[_0xa55c('0x1a')]+_0x4e0b2f[_0xa55c('0x1c')];var _0x23a1ae;if(_0x3d4c9e>=_0x51590e){_0x3d4c9e=_0x51590e;_0x23a1ae=0xc8;}else{_0x23a1ae=0xce;}_0x247e77[_0xa55c('0x18')](_0x23a1ae);return _0x247e77['set']('Content-Range',_0x24783b+'-'+_0x3d4c9e+'/'+_0x51590e)[_0xa55c('0x19')](_0x3ccf65);}return null;};}function patchUpdates(_0x3776ac){return function(_0xade4c4){try{jsonpatch['apply'](_0xade4c4,_0x3776ac,!![]);}catch(_0x383d92){return BPromise[_0xa55c('0x1e')](_0x383d92);}return _0xade4c4['save']();};}function saveUpdates(_0x187a87,_0x133096){return function(_0x940f28){if(_0x940f28){return _0x940f28[_0xa55c('0x1f')](_0x187a87)[_0xa55c('0x20')](function(_0x49ed04){return _0x49ed04;});}return null;};}function removeEntity(_0x1fc828,_0x504c24){return function(_0x5ba836){if(_0x5ba836){return _0x5ba836['destroy']()[_0xa55c('0x20')](function(){_0x1fc828['status'](0xcc)[_0xa55c('0x21')]();});}};}function handleEntityNotFound(_0x190757,_0x3f64de){return function(_0xf0e574){if(!_0xf0e574){_0x190757[_0xa55c('0x22')](0x194);}return _0xf0e574;};}function handleError(_0x170ba4,_0x1da633){_0x1da633=_0x1da633||0x1f4;return function(_0x11e7f7){logger[_0xa55c('0x23')](_0x11e7f7[_0xa55c('0x24')]);if(_0x11e7f7[_0xa55c('0x25')]){delete _0x11e7f7['name'];}_0x170ba4[_0xa55c('0x18')](_0x1da633)[_0xa55c('0x26')](_0x11e7f7);};}exports[_0xa55c('0x27')]=function(_0x906caa,_0x5d940d){var _0x1377b0={},_0x22f6b6={},_0x1b8388={'count':0x0,'rows':[]};var _0x201941=_[_0xa55c('0x28')](db[_0xa55c('0x29')]['rawAttributes'],function(_0x23e698){return{'name':_0x23e698['fieldName'],'type':_0x23e698[_0xa55c('0x2a')][_0xa55c('0x2b')]};});_0x22f6b6[_0xa55c('0x2c')]=_[_0xa55c('0x28')](_0x201941,'name');_0x22f6b6[_0xa55c('0x2d')]=_[_0xa55c('0x2e')](_0x906caa[_0xa55c('0x2d')]);_0x22f6b6[_0xa55c('0x2f')]=_[_0xa55c('0x30')](_0x22f6b6[_0xa55c('0x2c')],_0x22f6b6[_0xa55c('0x2d')]);_0x1377b0[_0xa55c('0x31')]=_[_0xa55c('0x30')](_0x22f6b6[_0xa55c('0x2c')],qs[_0xa55c('0x32')](_0x906caa['query']['fields']));_0x1377b0[_0xa55c('0x31')]=_0x1377b0[_0xa55c('0x31')]['length']?_0x1377b0[_0xa55c('0x31')]:_0x22f6b6[_0xa55c('0x2c')];if(!_0x906caa[_0xa55c('0x2d')][_0xa55c('0x33')](_0xa55c('0x34'))){_0x1377b0[_0xa55c('0x1c')]=qs[_0xa55c('0x1c')](_0x906caa[_0xa55c('0x2d')][_0xa55c('0x1c')]);_0x1377b0['offset']=qs['offset'](_0x906caa['query'][_0xa55c('0x1a')]);}_0x1377b0[_0xa55c('0x35')]=qs[_0xa55c('0x36')](_0x906caa['query'][_0xa55c('0x36')]);_0x1377b0['where']=qs[_0xa55c('0x2f')](_['pick'](_0x906caa[_0xa55c('0x2d')],_0x22f6b6[_0xa55c('0x2f')]),_0x201941);if(_0x906caa[_0xa55c('0x2d')]['filter']){_0x1377b0[_0xa55c('0x37')]=_[_0xa55c('0x38')](_0x1377b0['where'],{'$or':_[_0xa55c('0x28')](_0x201941,function(_0x194e78){if(_0x194e78['type']!=='VIRTUAL'){var _0x235f6b={};_0x235f6b[_0x194e78['name']]={'$like':'%'+_0x906caa[_0xa55c('0x2d')][_0xa55c('0x39')]+'%'};return _0x235f6b;}})});}_0x1377b0=_['merge']({},_0x1377b0,_0x906caa['options']);var _0x5e50b6={'where':_0x1377b0['where']};return db[_0xa55c('0x29')][_0xa55c('0x1d')](_0x5e50b6)[_0xa55c('0x20')](function(_0x99c4f8){_0x1b8388[_0xa55c('0x1d')]=_0x99c4f8;if(_0x906caa['query'][_0xa55c('0x3a')]){_0x1377b0[_0xa55c('0x3b')]=[{'all':!![]}];}return db[_0xa55c('0x29')][_0xa55c('0x3c')](_0x1377b0);})[_0xa55c('0x20')](function(_0x23cef5){_0x1b8388['rows']=_0x23cef5;return _0x1b8388;})[_0xa55c('0x20')](respondWithFilteredResult(_0x5d940d,_0x1377b0))['catch'](handleError(_0x5d940d,null));};exports['show']=function(_0x404e7f,_0x1f63d8){var _0x496920={'raw':!![],'where':{'id':_0x404e7f['params']['id']}},_0x2bd98b={};_0x2bd98b['model']=_[_0xa55c('0x2e')](db[_0xa55c('0x29')][_0xa55c('0x3d')]);_0x2bd98b['query']=_[_0xa55c('0x2e')](_0x404e7f[_0xa55c('0x2d')]);_0x2bd98b['filters']=_[_0xa55c('0x30')](_0x2bd98b['model'],_0x2bd98b[_0xa55c('0x2d')]);_0x496920[_0xa55c('0x31')]=_['intersection'](_0x2bd98b[_0xa55c('0x2c')],qs[_0xa55c('0x32')](_0x404e7f['query'][_0xa55c('0x32')]));_0x496920[_0xa55c('0x31')]=_0x496920[_0xa55c('0x31')]['length']?_0x496920[_0xa55c('0x31')]:_0x2bd98b['model'];if(_0x404e7f[_0xa55c('0x2d')][_0xa55c('0x3a')]){_0x496920[_0xa55c('0x3b')]=[{'all':!![]}];}_0x496920=_['merge']({},_0x496920,_0x404e7f[_0xa55c('0x3e')]);return db[_0xa55c('0x29')]['find'](_0x496920)[_0xa55c('0x20')](handleEntityNotFound(_0x1f63d8,null))[_0xa55c('0x20')](respondWithResult(_0x1f63d8,null))['catch'](handleError(_0x1f63d8,null));};exports[_0xa55c('0x3f')]=function(_0xd3fe78,_0x52f9a7){return db[_0xa55c('0x29')][_0xa55c('0x3f')](_0xd3fe78[_0xa55c('0x40')],{})[_0xa55c('0x20')](respondWithResult(_0x52f9a7,0xc9))['catch'](handleError(_0x52f9a7,null));};exports[_0xa55c('0x1f')]=function(_0x58a7ea,_0x2157d6){if(_0x58a7ea[_0xa55c('0x40')]['id']){delete _0x58a7ea[_0xa55c('0x40')]['id'];}return db['MemberReport'][_0xa55c('0x41')]({'where':{'id':_0x58a7ea[_0xa55c('0x42')]['id']}})['then'](handleEntityNotFound(_0x2157d6,null))[_0xa55c('0x20')](saveUpdates(_0x58a7ea[_0xa55c('0x40')],null))[_0xa55c('0x20')](respondWithResult(_0x2157d6,null))[_0xa55c('0x43')](handleError(_0x2157d6,null));};exports[_0xa55c('0x44')]=function(_0x1c84d9,_0x1e1293){return db[_0xa55c('0x29')][_0xa55c('0x41')]({'where':{'id':_0x1c84d9[_0xa55c('0x42')]['id']}})['then'](handleEntityNotFound(_0x1e1293,null))[_0xa55c('0x20')](removeEntity(_0x1e1293,null))[_0xa55c('0x43')](handleError(_0x1e1293,null));};exports[_0xa55c('0x45')]=function(_0x4f73b6,_0x4c3095){return db[_0xa55c('0x29')]['describe']()[_0xa55c('0x20')](respondWithResult(_0x4c3095,null))['catch'](handleError(_0x4c3095,null));};
\ No newline at end of file